/*
Theme Name: Fromwork Journal
Theme URI: https://fromwork.cn
Author: Fromwork Studio
Author URI: https://fromwork.cn
Description: 极简、杂志气质的个人简历与作品集主题。以宋体为骨，靠留白、细线与字号对比建立质感，所有文案、简历条目与作品均可在后台编辑替换。
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fromwork
Tags: portfolio, resume, minimal, editorial, custom-menu, featured-images, custom-colors, translation-ready, block-styles
*/

/* =========================================================
   1. 设计令牌 —— 全站唯一的视觉常量来源，改动只改这里
   ========================================================= */
:root {
	--paper: #faf9f6;
	--paper-2: #f2efe9;
	--paper-3: #ebe7df;
	--ink: #16161a;
	--ink-2: #4a4a51;
	/* 辅助文字：在纸白上对比度约 4.7:1，11px 小字也满足 WCAG AA */
	--ink-3: #6e6e76;
	--rule: #e2ded5;
	--rule-strong: #cfc9bd;
	/* 赭石：纸白上对比度约 4.9:1 */
	--accent: #9a5f3e;

	--serif: "Songti SC", "STSong", "Source Han Serif SC", "Noto Serif SC", "SimSun", "Times New Roman", serif;
	--sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;
	--latin: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;

	--max: 1240px;
	--gut: clamp(20px, 5.2vw, 72px);
	--sp-1: 8px;
	--sp-2: 16px;
	--sp-3: 24px;
	--sp-4: 40px;
	--sp-5: 64px;
	--sp-6: 104px;
	--sp-7: 152px;

	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--dur: 620ms;
}

/* =========================================================
   2. 基础重置
   ========================================================= */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.78;
	letter-spacing: 0.008em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img,
svg,
video { max-width: 100%; height: auto; display: block; }

a {
	color: inherit;
	text-decoration: none;
	transition: color 240ms var(--ease), opacity 240ms var(--ease);
}

a:hover { color: var(--accent); }

::selection {
	background: var(--ink);
	color: var(--paper);
}

:focus-visible {
	outline: 1.5px solid var(--accent);
	outline-offset: 4px;
}

hr {
	border: 0;
	border-top: 1px solid var(--rule);
	margin: var(--sp-4) 0;
}

/* =========================================================
   3. 排版
   ========================================================= */
h1, h2, h3, h4 {
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.16;
	letter-spacing: -0.012em;
	margin: 0;
	color: var(--ink);
}

h1 { font-size: clamp(34px, 5.2vw, 62px); }
h2 { font-size: clamp(26px, 3.2vw, 40px); }
h3 { font-size: clamp(20px, 2vw, 25px); }
h4 { font-size: clamp(17px, 1.5vw, 19px); }

p { margin: 0 0 1.15em; }

.fw-lede {
	font-family: var(--serif);
	font-size: clamp(17px, 1.9vw, 22px);
	line-height: 1.66;
	color: var(--ink-2);
	letter-spacing: 0.004em;
	text-wrap: pretty;
}

/* 章节小标 —— 全站统一的「杂志栏目」记号 */
.fw-kicker {
	display: flex;
	align-items: baseline;
	gap: 14px;
	font-family: var(--sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin: 0 0 var(--sp-3);
}

.fw-kicker__num {
	font-family: var(--latin);
	font-size: 12px;
	letter-spacing: 0.1em;
	color: var(--accent);
	font-variant-numeric: tabular-nums;
}

.fw-kicker::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--rule);
	transform: translateY(-3px);
}

.fw-mono {
	font-family: var(--latin);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}

/* =========================================================
   4. 布局骨架
   ========================================================= */
.fw-wrap {
	width: 100%;
	max-width: var(--max);
	margin: 0 auto;
	padding-left: var(--gut);
	padding-right: var(--gut);
}

.fw-section {
	padding: clamp(56px, 9vw, 128px) 0;
	border-top: 1px solid var(--rule);
}

/* 锚点跳转时给吸顶页眉留出空间 */
section[id],
div[id] { scroll-margin-top: 88px; }

.fw-section--tight { padding: clamp(34px, 4vw, 56px) 0; }
.fw-section--plain { border-top: 0; }

/* 入场动画：只有当 JS 正常执行（html 上有 .js）时才隐藏内容。
   这样脚本被拦截、报错或用户禁用 JS 时，内容依然完整可见。 */
.js .fw-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 760ms var(--ease), transform 760ms var(--ease);
}

.js .fw-reveal.is-in {
	opacity: 1;
	transform: none;
}

html.no-js .fw-reveal,
html.no-js .js .fw-reveal { opacity: 1; transform: none; }

/* =========================================================
   5. 页眉
   ========================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(250, 249, 246, 0.86);
	backdrop-filter: saturate(140%) blur(12px);
	-webkit-backdrop-filter: saturate(140%) blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color 300ms var(--ease), background 300ms var(--ease);
}

.site-header.is-stuck { border-bottom-color: var(--rule); }

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	height: 68px;
}

.fw-brand {
	display: flex;
	align-items: baseline;
	gap: 12px;
	min-width: 0;
}

.fw-brand__name {
	font-family: var(--serif);
	font-size: 17px;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.fw-brand__role {
	font-size: 10.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ink-3);
	white-space: nowrap;
}

.fw-nav {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.4vw, 34px);
}

.fw-nav ul {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.4vw, 34px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.fw-nav li { position: relative; }

.fw-nav a {
	font-size: 12.5px;
	letter-spacing: 0.14em;
	color: var(--ink-2);
}

.fw-nav a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -5px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 380ms var(--ease);
}

.fw-nav a:hover::after,
.fw-nav .current-menu-item > a::after { transform: scaleX(1); }

.fw-nav__mail {
	font-family: var(--latin);
	font-size: 12.5px;
	letter-spacing: 0.06em;
	color: var(--ink-2);
	border-bottom: 1px solid var(--rule-strong);
	padding-bottom: 2px;
}

/* 移动端菜单按钮 */
.fw-burger {
	display: none;
	background: none;
	border: 0;
	padding: 8px 0;
	cursor: pointer;
	color: var(--ink);
}

.fw-burger span {
	display: block;
	width: 20px;
	height: 1px;
	background: currentColor;
	margin: 5px 0;
	transition: transform 320ms var(--ease), opacity 320ms var(--ease);
}

.fw-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.fw-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.fw-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* =========================================================
   6. 首屏
   ========================================================= */
.fw-hero {
	padding: clamp(64px, 13vh, 150px) 0 clamp(48px, 7vw, 96px);
}

.fw-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: clamp(28px, 4vw, 52px);
}

.fw-hero__meta span { display: inline-flex; align-items: center; gap: 8px; }

.fw-hero__name {
	font-family: var(--serif);
	font-size: clamp(46px, 11vw, 140px);
	line-height: 0.94;
	letter-spacing: -0.028em;
	margin: 0;
}

.fw-hero__name small {
	display: block;
	font-family: var(--latin);
	font-size: clamp(13px, 1.4vw, 17px);
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-top: clamp(16px, 2vw, 26px);
	line-height: 1.4;
}

.fw-hero__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--sp-4);
	margin-top: clamp(36px, 5vw, 64px);
	padding-top: clamp(28px, 3vw, 40px);
	border-top: 1px solid var(--rule);
}

@media (min-width: 900px) {
	.fw-hero__body { grid-template-columns: 7fr 5fr; gap: var(--sp-6); }
}

.fw-hero__lede {
	font-family: var(--serif);
	font-size: clamp(19px, 2.3vw, 28px);
	line-height: 1.62;
	letter-spacing: 0.002em;
	text-wrap: pretty;
	margin: 0;
	max-width: 20em;
}

.fw-hero__aside {
	font-size: 14px;
	line-height: 1.85;
	color: var(--ink-2);
	max-width: 40ch;
}

.fw-hero__aside p:last-child { margin-bottom: 0; }

.fw-scroll {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-top: var(--sp-4);
}

.fw-scroll i {
	display: block;
	width: 44px;
	height: 1px;
	background: var(--rule-strong);
	position: relative;
	overflow: hidden;
}

.fw-scroll i::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ink-2);
	transform: translateX(-100%);
	animation: fw-scan 2.6s var(--ease) infinite;
}

@keyframes fw-scan {
	0% { transform: translateX(-100%); }
	55%, 100% { transform: translateX(100%); }
}

/* =========================================================
   7. 作品
   ========================================================= */
.fw-works {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(36px, 5vw, 72px) clamp(24px, 3.4vw, 52px);
}

.fw-works--single { grid-template-columns: minmax(0, 1fr); }

/* 偶数项下沉，制造杂志式的错落节奏。
   用 margin-top 而不是 transform：容器高度会把落差算进去，区块底部不会留空。 */
.fw-works > .fw-work:nth-child(even) { margin-top: clamp(20px, 3.4vw, 56px); }

.fw-work { display: block; }

.fw-work__media {
	position: relative;
	overflow: hidden;
	background: var(--paper-3);
	aspect-ratio: 4 / 3;
}

.fw-work__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1100ms var(--ease), filter 600ms var(--ease);
}

.fw-work:hover .fw-work__media img { transform: scale(1.035); }

.fw-work__ph {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ink-3);
	font-family: var(--latin);
	font-size: 12px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	background:
		linear-gradient(135deg, transparent 0 49.6%, var(--rule) 49.6% 50.4%, transparent 50.4% 100%),
		var(--paper-2);
}

.fw-work__caption {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--sp-2);
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid var(--rule);
	transition: border-color 300ms var(--ease);
}

.fw-work:hover .fw-work__caption { border-top-color: var(--ink); }

.fw-work__title {
	font-family: var(--serif);
	font-size: clamp(18px, 1.7vw, 22px);
	letter-spacing: 0.008em;
}

.fw-work__year {
	font-family: var(--latin);
	font-size: 12px;
	color: var(--ink-3);
	letter-spacing: 0.08em;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.fw-work__summary {
	font-size: 13.5px;
	color: var(--ink-2);
	margin: 8px 0 0;
	max-width: 40ch;
	text-wrap: pretty;
}

/* =========================================================
   8. 履历
   ========================================================= */
.fw-exp { list-style: none; margin: 0; padding: 0; }

.fw-exp__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 6px;
	padding: 26px 0;
	border-bottom: 1px solid var(--rule);
}

@media (min-width: 780px) {
	.fw-exp__item {
		grid-template-columns: 168px minmax(0, 1fr) minmax(0, 1.05fr);
		gap: var(--sp-4);
		align-items: baseline;
	}
}

.fw-exp__period {
	font-family: var(--latin);
	font-size: 12.5px;
	letter-spacing: 0.06em;
	color: var(--ink-3);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.fw-exp__role {
	font-family: var(--serif);
	font-size: 18px;
	line-height: 1.45;
}

.fw-exp__org {
	display: block;
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--accent);
	margin-top: 7px;
}

.fw-exp__desc {
	font-size: 14px;
	line-height: 1.8;
	color: var(--ink-2);
	margin: 0;
}

/* =========================================================
   9. 关于 / 技能
   ========================================================= */
.fw-about {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--sp-4);
}

@media (min-width: 900px) {
	.fw-about { grid-template-columns: 4fr 7fr; gap: var(--sp-6); }
	.fw-about__title { position: sticky; top: 108px; align-self: start; }
}

.fw-skills {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--sp-3);
	margin-top: var(--sp-4);
	padding-top: var(--sp-3);
	border-top: 1px solid var(--rule);
}

.fw-skill__label {
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 10px;
}

.fw-skill__body {
	font-size: 13.5px;
	line-height: 1.9;
	color: var(--ink-2);
}

/* =========================================================
   10. 联系
   ========================================================= */
.fw-contact {
	padding: clamp(64px, 9vw, 132px) 0;
	border-top: 1px solid var(--rule);
	background: var(--paper-2);
}

.fw-contact__mail {
	display: inline-block;
	font-family: var(--latin);
	font-size: clamp(24px, 4.6vw, 54px);
	letter-spacing: -0.01em;
	border-bottom: 1px solid var(--rule-strong);
	padding-bottom: 6px;
	transition: border-color 400ms var(--ease);
	word-break: break-all;
}

.fw-contact__mail:hover { border-bottom-color: var(--ink); }

.fw-contact__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	margin-top: var(--sp-4);
}

.fw-contact__links a {
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-2);
}

/* =========================================================
   11. 页脚
   ========================================================= */
.site-footer {
	padding: var(--sp-4) 0 calc(var(--sp-4) + 8px);
	border-top: 1px solid var(--rule);
	background: var(--paper);
}

.site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 12px var(--sp-4);
	align-items: baseline;
	justify-content: space-between;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-3);
}

.site-footer a:hover { color: var(--accent); }

/* =========================================================
   12. 文章 / 案例页
   ========================================================= */
.fw-article { padding: clamp(48px, 7vw, 104px) 0 0; }

.fw-article__head { max-width: 900px; }

.fw-article__title {
	font-size: clamp(32px, 5vw, 60px);
	line-height: 1.1;
	margin: 0 0 var(--sp-3);
}

.fw-meta-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--sp-3);
	margin: var(--sp-4) 0 0;
	padding: var(--sp-3) 0;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}

.fw-meta-grid dt {
	font-size: 10.5px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 6px;
}

.fw-meta-grid dd {
	margin: 0;
	font-family: var(--serif);
	font-size: 15.5px;
	color: var(--ink);
}

.fw-cover { margin: clamp(32px, 5vw, 64px) 0; }

.fw-cover img { width: 100%; }

.fw-caption {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--ink-3);
	margin-top: 10px;
}

/* 正文：杂志式行宽与段落呼吸 */
.fw-prose {
	max-width: 68ch;
	margin: 0 auto;
	font-size: 16.5px;
	line-height: 1.92;
	color: var(--ink-2);
}

.fw-prose > p:first-of-type { font-size: 18.5px; line-height: 1.86; color: var(--ink-2); }

.fw-prose h2,
.fw-prose h3 {
	font-family: var(--serif);
	color: var(--ink);
	margin: 2.2em 0 0.8em;
}

.fw-prose h2 { font-size: clamp(22px, 2.4vw, 30px); }
.fw-prose h3 { font-size: clamp(18px, 1.9vw, 22px); }

.fw-prose blockquote {
	margin: 2em 0;
	padding: 4px 0 4px 26px;
	border-left: 1px solid var(--accent);
	font-family: var(--serif);
	font-size: 19px;
	line-height: 1.8;
	color: var(--ink);
}

.fw-prose .wp-block-image { margin: 2.4em 0; }

.fw-prose figure figcaption {
	font-size: 12px;
	color: var(--ink-3);
	letter-spacing: 0.06em;
	text-align: left;
}

.fw-prose ul,
.fw-prose ol { padding-left: 1.2em; }

.fw-prose li { margin-bottom: 0.5em; }

.fw-prose a { border-bottom: 1px solid var(--rule-strong); }
.fw-prose a:hover { border-bottom-color: var(--accent); }

.fw-prose .alignwide {
	max-width: 1080px;
	margin-left: 50%;
	transform: translateX(-50%);
	width: 100%;
}

.fw-prose .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: 50%;
	transform: translateX(-50%);
}

.fw-next {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--sp-3);
	margin: clamp(48px, 8vw, 104px) 0 0;
	padding: var(--sp-4) 0;
	border-top: 1px solid var(--rule);
}

.fw-next__label {
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-3);
}

.fw-next__title {
	font-family: var(--serif);
	font-size: clamp(19px, 2.2vw, 26px);
}

/* =========================================================
   13. 简历页（可打印成 PDF）
   ========================================================= */
.fw-resume {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--sp-5);
	padding: clamp(48px, 7vw, 96px) 0;
}

@media (min-width: 960px) {
	.fw-resume { grid-template-columns: 320px minmax(0, 1fr); gap: var(--sp-6); }
	.fw-resume__side { position: sticky; top: 108px; align-self: start; }
}

.fw-resume__side h1 { font-size: clamp(30px, 3.4vw, 42px); }

.fw-resume__role {
	font-size: 11.5px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin-top: 12px;
}

.fw-resume__contact {
	margin-top: var(--sp-3);
	padding-top: var(--sp-3);
	border-top: 1px solid var(--rule);
	font-size: 13px;
	line-height: 2;
	color: var(--ink-2);
}

.fw-resume__contact a { border-bottom: 1px solid var(--rule); }

.fw-print {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: var(--sp-3);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-3);
	border: 1px solid var(--rule);
	padding: 9px 14px;
	cursor: pointer;
	background: transparent;
	font-family: var(--sans);
	transition: border-color 300ms var(--ease), color 300ms var(--ease);
}

.fw-print:hover { border-color: var(--ink); color: var(--ink); }

/* =========================================================
   14. 归档 / 空状态 / 404
   ========================================================= */
.fw-archive-head {
	padding: clamp(56px, 8vw, 110px) 0 clamp(24px, 3vw, 40px);
}

.fw-archive-head h1 { margin: 0; }

.fw-empty {
	padding: var(--sp-6) 0;
	text-align: left;
	color: var(--ink-3);
	font-family: var(--serif);
	font-size: 18px;
}

.fw-404 {
	min-height: 62vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--sp-6) 0;
}

.fw-404__code {
	font-family: var(--latin);
	font-size: clamp(64px, 14vw, 180px);
	line-height: 1;
	color: var(--paper-3);
	letter-spacing: -0.04em;
}

/* =========================================================
   15. 移动端
   ========================================================= */
@media (max-width: 860px) {
	.fw-nav__mail { display: none; }

	.fw-burger { display: block; }

	.fw-nav {
		position: fixed;
		inset: 68px 0 auto 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		background: var(--paper);
		border-bottom: 1px solid var(--rule);
		padding: 0 var(--gut);
		max-height: 0;
		overflow: hidden;
		transition: max-height 460ms var(--ease);
	}

	.fw-nav.is-open { max-height: 70vh; overflow: auto; }

	.fw-nav ul {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		width: 100%;
	}

	.fw-nav li { width: 100%; border-bottom: 1px solid var(--rule); }

	.fw-nav a {
		display: block;
		padding: 16px 0;
		font-size: 15px;
		letter-spacing: 0.08em;
	}

	.fw-nav a::after { display: none; }

	.fw-works { grid-template-columns: minmax(0, 1fr); }

	.fw-works > .fw-work:nth-child(even) { margin-top: 0; }

	.fw-brand__role { display: none; }
}

/* =========================================================
   16. 可访问性与偏好
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}

	.fw-reveal { opacity: 1; transform: none; }
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal !important;
}

.skip-link:focus {
	background: var(--ink);
	color: var(--paper);
	padding: 12px 20px;
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 999;
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
}

/* =========================================================
   17. 编辑器中尽量贴近前台观感
   ========================================================= */
.editor-styles-wrapper {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
}

.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3,
.editor-styles-wrapper h4 { font-family: var(--serif); font-weight: 400; }

/* =========================================================
   18. 打印：简历页直接导出 PDF
   ========================================================= */
@media print {
	:root { --paper: #ffffff; }

	@page { margin: 14mm 12mm; }

	.site-header,
	.site-footer,
	.fw-nav,
	.fw-burger,
	.fw-print,
	.fw-next,
	.fw-scroll { display: none !important; }

	body {
		background: #fff;
		color: #000;
		font-size: 9.8pt;
		line-height: 1.58;
	}

	/* 打印时单列：姓名与联系方式在顶部一行，正文紧接其下 */
	.fw-resume {
		display: block;
		padding: 0;
	}

	.fw-resume__side {
		position: static;
		margin: 0 0 10pt;
		padding: 0 0 8pt;
		border-bottom: 0.75pt solid #cfcfcf;
	}

	.fw-resume__side h1 { font-size: 21pt; line-height: 1.1; }

	.fw-resume__role { font-size: 8.5pt; margin-top: 4pt; letter-spacing: 0.18em; }

	.fw-resume__contact {
		margin-top: 8pt;
		padding-top: 8pt;
		border-top: 0;
		font-size: 9pt;
		line-height: 1.5;
		display: flex;
		flex-wrap: wrap;
		gap: 0 16pt;
	}

	.fw-resume__contact > div { display: inline-block; }

	.fw-prose {
		font-size: 9.8pt;
		line-height: 1.62;
		max-width: none;
	}

	.fw-prose > p:first-of-type { font-size: 11.5pt; line-height: 1.55; }

	.fw-prose h3 {
		font-size: 11pt;
		margin: 9pt 0 3pt;
	}

	.fw-prose p { margin: 0 0 5pt; }

	.fw-prose ul { margin: 0 0 6pt; padding-left: 1em; }
	.fw-prose li { margin-bottom: 1.5pt; }

	.fw-section {
		padding: 9pt 0 0;
		border-top-color: #ddd;
	}

	.fw-kicker { margin-bottom: 5pt; font-size: 7.5pt; letter-spacing: 0.2em; }

	.fw-exp__item {
		padding: 5pt 0;
		border-bottom: 0.5pt solid #e5e5e5;
		page-break-inside: avoid;
	}

	.fw-exp__period { font-size: 8.5pt; }
	.fw-exp__role { font-size: 10pt; }
	.fw-exp__org { font-size: 8pt; margin-top: 2pt; }
	.fw-exp__desc { font-size: 9pt; line-height: 1.5; }

	.fw-about__title { position: static; }

	a { color: #000 !important; text-decoration: none; border: 0 !important; }

	.fw-kicker { color: #666; }

	h1, h2, h3 { page-break-after: avoid; }

	/* 简历里的按钮、没有任何实际意义的外链图标都不打 */
	.fw-print { display: none !important; }
}
