:root{
	--bg:#fffdfd;
	--paper:#ffffff;
	--soft:#fbf4f4;
	--text:#2d2828;
	--muted:#716868;
	--dim:#9b9090;
	--line:#eadede;
	--red:#b54d4d;
	--red-dark:#8f3939;
	--max:1000px;
	--home-max:1180px;
	--article:720px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:hidden}
body{
	margin:0;
	background:var(--bg);
	color:var(--text);
	font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;
	font-size:15px;
	line-height:1.75;
	-webkit-font-smoothing:antialiased;
}
button,input{font:inherit}
a{color:inherit;text-decoration:none}
::selection{background:#f3dada;color:var(--text)}
.site_header{
	position:sticky;
	top:0;
	z-index:20;
	display:flex;
	align-items:center;
	gap:32px;
	width:min(calc(100% - 48px),var(--max));
	height:68px;
	margin:0 auto;
	background:rgba(255,253,253,.96);
	border-bottom:1px solid var(--line);
}
.brand{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:700}
.brand_mark,.brand_cursor{display:none}
.site_nav{display:flex;align-items:stretch;gap:26px;height:100%;margin-left:auto}
.site_nav a{display:flex;align-items:center;position:relative;color:var(--muted);font-size:14px}
.site_nav a:hover{color:var(--red-dark)}
.site_nav a.active{color:var(--text)}
.site_nav a.active::after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--red)}
.header_actions{display:contents}
.icon_button{display:none}
.menu_button{display:none;width:36px;height:36px;margin-left:auto;padding:0;border:0;background:transparent;color:var(--text);align-items:center;justify-content:center;cursor:pointer}
.menu_button svg{width:20px;height:20px}
.mobile_nav{display:none}
main{width:min(calc(100% - 48px),var(--max));margin:0 auto}
.home_profile{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:56px;align-items:end;padding:88px 0 72px;border-bottom:1px solid var(--line)}
.home_profile h1,.page_header h1,.taxonomy_header h1{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:46px;line-height:1.15;font-weight:700}
.home_school{margin:14px 0 0;color:var(--muted)}
.home_direction{display:grid;gap:3px;margin:28px 0 0}
.home_direction strong{font-size:17px;font-weight:500}
.plain_links{display:flex;gap:22px;margin-top:26px;color:var(--red-dark);font-size:14px}
.plain_links a,.section_heading>a,.taxonomy_links a,.site_footer a,.source_link{text-decoration:underline;text-decoration-color:#d8b7b7;text-underline-offset:5px}
.plain_links a:hover,.section_heading>a:hover,.taxonomy_links a:hover,.site_footer a:hover,.source_link:hover{color:var(--red-dark);text-decoration-color:var(--red)}
.home_summary{display:grid;gap:5px;margin:0;color:var(--dim);font-size:13px;text-align:right}
.home_summary strong{color:inherit;font-weight:500}
.section_block{padding:58px 0;border-bottom:1px solid var(--line)}
.section_heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:20px}
.section_heading h2{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:25px;font-weight:700}
.section_heading>a{color:var(--muted);font-size:13px}
.writing_list,.project_list,.article_list{border-top:1px solid var(--line)}
.writing_item{display:grid;grid-template-columns:104px minmax(0,1fr) 130px;gap:20px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line)}
.writing_item>span{color:var(--dim);font-family:Consolas,monospace;font-size:12px}
.writing_item strong{font-size:15px;font-weight:500}
.writing_item em{color:var(--muted);font-size:12px;font-style:normal;text-align:right}
.writing_item svg{display:none}
.writing_item:hover strong,.project_row:hover h3{color:var(--red-dark)}
.project_row{display:grid;grid-template-columns:38px minmax(0,1fr) 70px;gap:18px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}
.project_number{padding-top:2px;color:var(--dim);font-family:Consolas,monospace;font-size:12px}
.project_row h3{margin:0 0 3px;font-size:16px;font-weight:600}
.project_row p{margin:0;color:var(--muted);font-size:13px}
.project_row small{display:block;margin-top:8px;color:var(--dim);font:11px/1.5 Consolas,monospace}
.project_status{padding-top:3px;color:var(--dim);font-size:12px;text-align:right}
.project_status.done{color:var(--red-dark)}
.project_row_featured{grid-template-columns:38px minmax(0,1fr) 70px 18px}
.project_row_featured>svg{width:15px;margin-top:4px;color:var(--red-dark)}
.project_tags,.project_note{display:none}
.home_shell{width:min(calc(100% - 48px),var(--home-max))}
.home_dashboard{display:grid;grid-template-columns:minmax(280px,34fr) minmax(0,66fr);gap:58px;align-items:start;min-height:calc(100vh - 145px);height:auto;padding:54px 0 72px;overflow:visible}
.home_identity_panel{position:sticky;top:96px;height:calc(100vh - 194px);min-height:560px;padding-right:42px;border-right:1px solid var(--line);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#decaca transparent}
.home_identity_head{text-align:center}
.home_avatar{width:112px;height:112px;margin:0 auto 18px;overflow:hidden;border-radius:50%}
.home_avatar img{width:100%;height:100%;object-fit:cover}
.home_identity_head h1{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:30px;line-height:1.2}
.home_identity_head>p{margin:8px 0 0;color:var(--muted);font-size:12px}
.home_direction{display:grid;gap:5px;width:max-content;max-width:100%;margin:19px auto 0;text-align:left}
.home_positioning{max-width:290px;margin:20px auto 0;color:var(--muted);font-size:12px;line-height:1.7;text-align:left}
.home_direction strong{display:grid;grid-template-columns:24px minmax(0,1fr);gap:2px 8px;align-items:start;font-size:13px;font-weight:500}
.home_direction strong span{color:var(--red-dark);font:11px Consolas,monospace}
.home_direction strong b{font-weight:600}
.home_direction strong small{grid-column:2;color:var(--muted);font-size:11px;line-height:1.45}
.home_contact_links{margin-top:22px}
.home_metrics{display:flex;justify-content:center;gap:18px;margin:18px 0 0;color:var(--dim);font-size:11px}
.home_metrics strong{color:inherit;font-weight:500}
.home_stack{margin-top:27px;padding-top:20px;border-top:1px solid var(--line)}
.home_stack_header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.home_stack_header h2{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:21px}
.home_stack_header span{color:var(--dim);font:10px Consolas,monospace;letter-spacing:.08em}
.home_stack_groups{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;border-top:1px solid var(--line)}
.home_stack_group{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}
.home_stack_group>b{padding-top:2px;color:var(--red-dark);font:10px Consolas,monospace;font-weight:400}
.home_stack_group h3{margin:0 0 2px;color:var(--red-dark);font-size:11px;font-weight:600}
.home_stack_group p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.home_toolchain,.home_future{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.home_toolchain span,.home_future span{display:block;margin-bottom:2px;color:var(--red-dark);font-size:11px;font-weight:600}
.home_content_panel{min-width:0;height:calc(100vh - 194px);min-height:420px;overflow-y:auto;padding-right:18px;scrollbar-width:thin;scrollbar-color:#decaca transparent}
.home_section{padding:40px 0;border-bottom:1px solid var(--line)}
.home_section:first-child{padding-top:0}
.home_section .section_heading{margin-bottom:16px}
.home_section .section_heading>span{color:var(--dim);font-size:11px}
.home_now_block{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home_now_label{color:var(--red-dark);font:10px Consolas,monospace;letter-spacing:.08em}
.home_now_block h3{margin:5px 0 4px;font-size:17px;font-weight:600}
.home_now_block p{max-width:560px;margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.home_now_status{display:flex;align-items:center;gap:6px;padding-top:3px;color:var(--red-dark);font-size:12px;white-space:nowrap}
.home_now_status i{width:6px;height:6px;border-radius:50%;background:var(--red)}
.home_update_row{display:grid;grid-template-columns:92px minmax(0,1fr) 18px;gap:16px;align-items:center;width:100%;padding:17px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.home_update_row time{color:var(--dim);font-family:Consolas,monospace;font-size:11px}
.home_update_row span{display:grid;gap:2px}
.home_update_row strong{font-size:14px;font-weight:500}
.home_update_row small{color:var(--muted);font-size:12px}
.home_update_row svg{width:15px;height:15px;color:var(--red-dark)}
.home_update_row:hover strong{color:var(--red-dark)}
.site_footer{display:flex;align-items:center;gap:18px;width:min(calc(100% - 48px),var(--max));margin:0 auto;padding:25px 0 42px;color:var(--dim);font-size:12px}
.site_footer a:last-child{margin-left:auto}
.footer_rule{display:none}
.site_stats strong{color:inherit;font-weight:500}
.blog_shell,.taxonomy_shell{max-width:820px}
.page_header,.taxonomy_header{padding:68px 0 30px;border-bottom:1px solid var(--line)}
.page_header h1,.taxonomy_header h1{font-size:38px}
.page_header p,.taxonomy_header p{margin:10px 0 0;color:var(--muted);font-size:14px}
.page_header p strong{font-weight:500}
.section_kicker,.eyebrow{display:none}
.blog_toolbar{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 0;border-bottom:1px solid var(--line)}
.blog_toolbar nav{display:flex;gap:22px}
.blog_toolbar nav a{color:var(--muted);font-size:13px}
.blog_toolbar nav a:hover,.blog_toolbar nav a.active{color:var(--red-dark)}
.blog_toolbar nav span{color:var(--dim);font-size:11px}
.blog_search{display:flex;align-items:center;gap:7px;padding-bottom:3px;border-bottom:1px solid var(--line);color:var(--dim)}
.blog_search svg{width:14px;height:14px}
.blog_search input{width:150px;padding:0;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}
.blog_search_status{margin:13px 0 -1px;color:var(--dim);font-size:11px;text-align:right}
.article_row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:22px;padding:23px 0;border-bottom:1px solid var(--line)}
.article_date{padding-top:3px;color:var(--dim);font-family:Consolas,monospace;font-size:12px}
.article_main h2{margin:2px 0 6px;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:19px;line-height:1.45;font-weight:700}
.article_main p{display:-webkit-box;margin:0;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.75;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.article_label{color:var(--red-dark);font-size:12px}
.article_row_tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;color:var(--dim);font-size:11px}
.article_row_tags span::before{content:"#";margin-right:2px;color:#c88c8c}
.article_time{grid-column:2;color:var(--dim);font-size:11px}
.article_time svg{display:none}
.article_row:hover h2{color:var(--red-dark)}
.article_empty{padding:30px 0;color:var(--muted)}
.taxonomy_index,.taxonomy_list,.archive_list{padding:26px 0 44px}
.taxonomy_index_row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}
.taxonomy_index_row:first-child{border-top:1px solid var(--line)}
.taxonomy_index_row small{color:var(--dim);font-size:12px}
.taxonomy_index_row svg{display:none}
.taxonomy_index_row:hover span{color:var(--red-dark)}
.taxonomy_article{display:grid;grid-template-columns:94px minmax(0,1fr);gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.taxonomy_article:first-child{border-top:1px solid var(--line)}
.taxonomy_article>time{padding-top:3px;color:var(--dim);font-family:Consolas,monospace;font-size:11px}
.taxonomy_article h2{margin:3px 0 5px;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:18px;line-height:1.5}
.taxonomy_article p{display:-webkit-box;margin:0;overflow:hidden;color:var(--muted);font-size:13px;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.taxonomy_article_meta{color:var(--red-dark);font-size:11px}
.taxonomy_article_tags{display:block;margin-top:7px;color:var(--dim);font-size:11px;word-spacing:7px}
.taxonomy_article_time{display:none}
.taxonomy_links{display:flex;gap:20px;padding:22px 0 58px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.taxonomy_links svg{display:none}
.tag_cloud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 38px;padding:26px 0 48px}
.tag_cloud_item{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);color:var(--text);font-size:14px!important}
.tag_cloud_item small{color:var(--dim);font-size:11px}
.tag_cloud_item:hover{color:var(--red-dark)}
.archive_year{display:grid;grid-template-columns:80px minmax(0,1fr);gap:24px;padding:8px 0 24px}
.archive_year>h2{margin:0;color:var(--red-dark);font-family:Georgia,serif;font-size:21px}
.archive_month{grid-column:2}
.archive_month h3{margin:0;padding:0 0 7px;color:var(--dim);font-size:12px;font-weight:500}
.archive_month a{display:flex;justify-content:space-between;gap:24px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.archive_month time{color:var(--dim);font-family:Consolas,monospace;font-size:11px}
.archive_month a:hover span{color:var(--red-dark)}
.article_shell{max-width:980px}
.article_page{padding:64px 0 86px}
.article_header{max-width:var(--article);padding-bottom:30px;border-bottom:1px solid var(--line)}
.article_meta,.project_meta{display:flex;flex-wrap:wrap;gap:7px 15px;color:var(--dim);font-size:12px}
.article_meta .status_badge,.project_meta .status_badge{color:var(--red-dark)}
.article_header h1,.project_header h1{margin:18px 0 14px;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:42px;line-height:1.25;font-weight:700}
.article_lead,.project_lead{margin:0;color:var(--muted);font-size:16px;line-height:1.85}
.article_prerequisite{margin:20px 0 0;padding:13px 16px;background:var(--soft);border-left:2px solid #d39a9a;color:var(--muted)}
.article_prerequisite span{display:block;margin-bottom:3px;color:var(--red-dark);font-size:12px}
.article_prerequisite p{margin:0;font-size:13px}
.source_link{display:inline-block;margin-top:20px;color:var(--muted);font-size:13px}
.article_layout{display:grid;grid-template-columns:minmax(0,var(--article)) 190px;gap:50px;align-items:start;padding-top:36px}
.article_body{grid-column:1;grid-row:1;min-width:0}
.article_toc{grid-column:2;grid-row:1;position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto;padding-left:18px;border-left:1px solid var(--line)}
.article_toc_label{display:block;margin-bottom:10px;color:var(--text);font-size:12px;font-weight:600}
.article_toc a{display:block;padding:4px 0;color:var(--dim);font-size:11px;line-height:1.55}
.article_toc a:hover{color:var(--red-dark)}
.article_toc .toc_level_3{padding-left:12px}
.article_body h2{margin:44px 0 14px;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:27px;line-height:1.35}
.article_body h3{margin:32px 0 11px;font-size:19px}
.article_body p{margin:15px 0;color:#514949;font-size:16px;line-height:1.95}
.article_body strong{color:var(--text)}
.article_body a{color:var(--red-dark);text-decoration:underline;text-underline-offset:3px}
.article_body blockquote{margin:22px 0;padding:12px 17px;background:var(--soft);border-left:2px solid #d39a9a;color:var(--muted)}
.article_body blockquote p{margin:0}
.article_body ul,.article_body ol{padding-left:24px;color:#514949}
.article_body li{margin:7px 0;padding-left:3px}
.article_body hr{margin:34px 0;border:0;border-top:1px solid var(--line)}
.article_body img{max-width:100%;height:auto;border:1px solid var(--line)}
.code_block,.architecture_block{margin:22px 0;padding:18px;overflow:auto;background:#272222;border:0;border-radius:3px;color:#f4ecec;font:13px/1.75 Consolas,monospace;white-space:pre}
.code_block_wrap{position:relative}
.code_copy_button{position:absolute;top:30px;right:10px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #574b4b;border-radius:3px;background:#302929;color:#cabbbb;cursor:pointer;opacity:0}
.code_block_wrap:hover .code_copy_button,.code_copy_button:focus{opacity:1}
.code_copy_button svg{width:14px;height:14px}
.table_wrap{margin:24px 0;overflow:auto}
.article_body table,.project_table{width:100%;min-width:520px;border-collapse:collapse;font-size:14px}
.article_body th,.article_body td,.project_table th,.project_table td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}
.article_body th,.project_table th{background:var(--soft);color:var(--text)}
.article_body td,.project_table td{color:var(--muted)}
.article_tags{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);color:var(--dim);font-size:12px}
.article_tags>span{color:var(--text);font-weight:600}
.article_tags a::before{content:"#";margin-right:2px;color:#c88c8c}
.article_pager{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:var(--article);margin:52px 0 0;padding-top:20px;border-top:1px solid var(--line)}
.article_pager_side{display:flex;min-width:0}
.article_pager_side_next{justify-content:flex-end;text-align:right}
.article_pager_button{display:none}
.article_pager_label{display:block;color:var(--dim);font-size:11px;font-weight:400}
.article_pager_title{display:block;margin-top:4px;overflow:hidden;color:var(--text);font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.article_pager_side:hover .article_pager_title{color:var(--red-dark)}
.article_pager_side.is-hidden{visibility:hidden}
.reading_progress{position:fixed;top:0;left:0;z-index:40;width:100%;height:2px;pointer-events:none}
.reading_progress span{display:block;width:0;height:100%;background:var(--red)}
.project_intro{max-width:760px;padding:68px 0 34px;border-bottom:1px solid var(--line)}
.project_intro h1{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:38px}
.project_intro h1 br{display:none}
.project_intro h1 em{font-style:normal}
.project_intro>p:last-child{margin:13px 0 0;color:var(--muted);font-size:14px}
.project_archive{padding:24px 0 60px;border-bottom:1px solid var(--line);counter-reset:project}
.project_group_label{padding:0 0 10px;color:var(--red-dark);font-size:12px;font-weight:600}
.project_archive_row{counter-increment:project;display:grid;grid-template-columns:36px minmax(0,1fr) 110px;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.project_archive_row::before{content:counter(project,decimal-leading-zero);padding-top:4px;color:var(--dim);font-family:Consolas,monospace;font-size:11px}
.project_archive_row>div{grid-column:2}
.project_archive_row h2{margin:0 0 4px;font-size:17px;font-weight:600;white-space:normal}
.project_archive_row p{margin:0;color:var(--muted);font-size:13px}
.project_archive_meta{grid-column:3;grid-row:1;color:var(--red-dark);font-size:12px;text-align:right}
.project_archive_tags{grid-column:2;margin-top:8px;color:var(--dim);font-size:11px}
.project_archive_row>svg{display:none}
.project_archive_row:hover h2{color:var(--red-dark)}
.project_archive_row>div,.project_archive_meta,.project_archive_tags{min-width:0}
.project_archive_row h2,.project_archive_row p,.project_archive_tags{overflow-wrap:break-word;word-break:normal}
.project_archive_note{max-width:700px;color:var(--muted)}
.project_shell{max-width:900px}
.project_page{padding:64px 0 86px}
.project_header{max-width:780px;padding-bottom:30px;border-bottom:1px solid var(--line)}
.project_header h1{font-size:42px}
.project_facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.project_fact{padding:14px 16px 14px 0;border-right:1px solid var(--line)}
.project_fact+.project_fact{padding-left:16px}
.project_fact:last-child{border-right:0}
.project_fact span{display:block;color:var(--dim);font-size:11px}
.project_fact strong{display:block;margin-top:4px;font-size:13px;font-weight:500}
.project_section{max-width:var(--article);padding-top:38px}
.project_section h2{margin:0 0 12px;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:25px}
.project_section h3{margin:26px 0 9px;font-size:18px}
.project_section p{margin:13px 0;color:#514949;font-size:15px;line-height:1.9}
.project_section ul{padding-left:22px;color:#514949}
.project_section li{margin:7px 0}
.project_section a{color:var(--red-dark);text-decoration:underline;text-underline-offset:3px}
.project_footer_links{display:flex;gap:20px;max-width:var(--article);margin-top:42px;padding-top:20px;border-top:1px solid var(--line)}
.button{display:inline-flex;align-items:center;gap:6px;color:var(--red-dark);font-size:13px;text-decoration:underline;text-decoration-color:#d8b7b7;text-underline-offset:5px}
.button svg{width:14px;height:14px}
.about_shell{max-width:960px}
.about_page{display:grid;grid-template-columns:250px minmax(0,1fr);gap:58px;height:calc(100vh - 68px);min-height:590px;padding:62px 0;overflow:hidden}
.about_identity{position:sticky;top:0;text-align:center}
.about_avatar{width:120px;height:120px;margin:0 auto 20px;overflow:hidden;border-radius:50%}
.about_avatar img{width:100%;height:100%;object-fit:cover}
.about_identity h1{margin:0;font-family:Georgia,serif;font-size:27px}
.about_identity p{margin:8px 0 0;color:var(--muted);font-size:13px}
.contact_links{display:grid;justify-items:start;gap:9px;width:max-content;margin:24px auto 0;color:var(--muted);font-size:12px;text-align:left}
.contact_links a{display:flex;align-items:center;gap:7px}
.contact_links a:hover{color:var(--red-dark)}
.contact_links svg{width:14px;height:14px}
.about_content{height:100%;padding:0 22px 0 38px;overflow-y:auto;border-left:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#decaca transparent}
.about_content h2{margin:0 0 22px;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:30px;line-height:1.2}
.stack_groups{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;border-top:1px solid var(--line)}
.stack_group{padding:18px 0;border-bottom:1px solid var(--line)}
.stack_group_label{display:block;margin-bottom:8px;color:var(--red-dark);font-size:13px;font-weight:600}
.stack_group_items{display:flex;flex-wrap:wrap;gap:5px 13px}
.stack_item{color:var(--muted);font-size:13px}
.home_log_card{display:block;width:100%;margin:28px auto 0;padding:12px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--muted);text-align:left;cursor:pointer}
.home_log_card span,.home_log_card strong{display:block;font-size:11px;font-weight:400}
.home_log_card strong{margin:2px 0;color:var(--text)}
.home_log_card svg,.home_log_kicker{display:none!important}
.log_overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:22px;background:rgba(66,48,48,.28)}
.log_overlay[hidden]{display:none}
.log_modal{width:min(650px,100%);max-height:calc(100vh - 44px);padding:26px;overflow:auto;background:var(--paper);border:1px solid var(--line)}
.log_modal_head{display:flex;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.log_modal_head h2{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:25px}
.log_modal_head .icon_button{display:flex;width:32px;height:32px;padding:0;border:0;background:transparent;color:var(--muted)}
.log_list{display:grid}
.log_item{display:grid;grid-template-columns:95px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.log_item time{color:var(--red-dark);font-family:Consolas,monospace;font-size:11px}
.log_item h3{margin:0 0 4px;font-size:14px}
.log_item p{margin:0;color:var(--muted);font-size:13px}
@media(max-width:760px){
	.site_header{width:calc(100% - 36px);height:60px}
	.site_nav{display:none}
	.menu_button{display:flex}
	.mobile_nav{position:sticky;top:60px;z-index:19;padding:4px 18px 10px;background:var(--bg);border-bottom:1px solid var(--line)}
	.mobile_nav.open{display:grid}
	.mobile_nav a{padding:10px 0;color:var(--muted);font-size:14px}
	.mobile_nav a.active{color:var(--red-dark)}
	main,.site_footer{width:calc(100% - 36px)}
	.home_profile{grid-template-columns:1fr;gap:34px;padding:60px 0 48px}
	.home_profile h1{font-size:40px}
	.home_stack_groups{grid-template-columns:1fr}
	.home_direction strong{font-size:16px}
	.home_now_block{grid-template-columns:1fr;gap:10px}
	.home_now_status{padding-top:0}
	.home_summary{text-align:left}
	.section_block{padding:46px 0}
	.writing_item{grid-template-columns:82px minmax(0,1fr);gap:12px}
	.writing_item em{grid-column:2;text-align:left}
	.project_row{grid-template-columns:28px minmax(0,1fr)}
	.project_row_featured{grid-template-columns:28px minmax(0,1fr)}
	.project_row_featured>svg{grid-column:2;grid-row:1;margin-top:7px;margin-left:auto}
	.project_status{grid-column:2;text-align:left}
	.site_footer{flex-wrap:wrap}
	.site_footer a:last-child{margin-left:0}
	.page_header,.taxonomy_header{padding-top:50px}
	.blog_toolbar{display:block}
	.blog_toolbar nav{gap:18px;overflow-x:auto;white-space:nowrap}
	.blog_search{margin-top:20px}
	.blog_search input{width:100%}
	.article_row,.taxonomy_article{grid-template-columns:1fr;gap:5px}
	.article_time{grid-column:1}
	.tag_cloud{grid-template-columns:1fr}
	.archive_year{grid-template-columns:1fr;gap:8px}
	.archive_month{grid-column:1}
	.article_page,.project_page{padding:48px 0 66px}
	.article_header h1,.project_header h1{font-size:32px}
	.article_layout{display:block;padding-top:28px}
	.article_toc{position:static;margin-bottom:30px;padding:14px 0;border-top:1px solid var(--line);border-right:0;border-bottom:1px solid var(--line);border-left:0}
	.article_toc a{display:none}
	.article_toc_label{margin:0}
	.article_toc_label::after{content:"（正文目录已收起）";color:var(--dim);font-weight:400}
	.article_body h2{font-size:24px}
	.article_body p{font-size:15px}
	.article_pager{gap:18px}
	.project_intro{padding-top:50px}
	.project_archive{width:100%;min-width:0}
	.project_archive_row{display:grid;grid-template-columns:28px minmax(0,1fr);width:100%;min-width:0;gap:12px;padding:18px 0}
	.project_archive_row::before{grid-column:1;grid-row:1 / span 3}
	.project_archive_row>div{grid-column:2;grid-row:1;min-width:0;width:100%}
	.project_archive_meta{grid-column:2;grid-row:2;text-align:left;min-width:0;width:100%;line-height:1.55}
	.project_archive_tags{grid-column:2;grid-row:3;min-width:0;width:100%;line-height:1.55}
	.project_facts{grid-template-columns:1fr}
	.project_fact,.project_fact+.project_fact{padding:12px 0;border-right:0;border-bottom:1px solid var(--line)}
	.project_fact:last-child{border-bottom:0}
	.about_page{display:block;height:auto;min-height:0;padding:48px 0 66px;overflow:visible}
	.about_identity{position:static;margin-bottom:42px}
	.about_content{height:auto;padding:32px 0 0;overflow:visible;border-top:1px solid var(--line);border-left:0}
	.stack_groups{grid-template-columns:1fr}
	.log_item{grid-template-columns:1fr;gap:5px}
}
@media(max-width:900px){
	.home_dashboard{grid-template-columns:1fr;gap:42px;height:auto;min-height:0;padding:46px 0 66px;overflow:visible}
	.home_identity_panel{position:static;height:auto;min-height:0;padding-right:0;border-right:0;overflow:visible}
	.home_identity_head{padding-bottom:4px}
	.home_stack{max-width:620px;margin-right:auto;margin-left:auto}
	.home_contact_links{justify-items:center}
	.home_direction{margin-right:auto;margin-left:auto}
	.home_content_panel{height:auto;min-height:0;max-height:none;overflow:visible;padding-right:0;border-top:1px solid var(--line)}
	.home_content_panel .home_section:first-child{padding-top:40px}
}
@media(max-width:420px){
	.home_profile h1{font-size:36px}
	.home_school{font-size:13px}
	.writing_item{grid-template-columns:1fr}
	.writing_item em{grid-column:1}
	.section_heading{align-items:flex-start}
	.article_header h1,.project_header h1{font-size:29px;overflow-wrap:anywhere}
	.article_pager{grid-template-columns:1fr}
	.article_pager_side_next{justify-content:flex-start;text-align:left}
	.home_update_row{grid-template-columns:1fr 18px;gap:6px 12px}
	.home_update_row time{grid-column:1}
	.home_update_row span{grid-column:1}
	.home_update_row svg{grid-column:2;grid-row:1 / span 2}
}

/* 首页移动端最终收口：让右侧内容恢复完整宽度，避免桌面网格挤压正文。 */
@media(max-width:900px){
	.home_shell{width:calc(100% - 36px);max-width:none;min-width:0}
	.home_dashboard{display:block;width:100%;min-width:0}
	.home_identity_panel,.home_content_panel{width:100%;min-width:0}
	.home_content_panel{border-top:1px solid var(--line)}
	.home_content_panel .home_section{width:100%;min-width:0}
	.home_content_panel .project_list{width:100%;min-width:0}
	.home_content_panel .project_row,.home_content_panel .project_row_featured{
		display:grid;
		grid-template-columns:28px minmax(0,1fr);
		width:100%;
		min-width:0;
		gap:12px;
	}
	.home_content_panel .project_row>div{grid-column:2;grid-row:1;min-width:0;width:100%}
	.home_content_panel .project_number{grid-column:1;grid-row:1;padding-top:3px}
	.home_content_panel .project_status{grid-column:2;grid-row:2;text-align:left;min-width:0}
	.home_content_panel .project_row_featured>svg{grid-column:2;grid-row:1;justify-self:end;margin:4px 0 0;width:15px}
	.home_content_panel .project_row h3,.home_content_panel .project_row p,.home_content_panel .project_row small{min-width:0;max-width:100%;overflow-wrap:break-word;word-break:normal}
}
