:root{--color-canvas: #f7f9fb;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-text: #1d3341;--color-text-muted: #556b75;--color-text-subtle: #68808d;--color-line: #d8e2e5;--color-line-strong: #b7c8ce;--color-accent: #217895;--color-accent-strong: #1d3341;--color-accent-soft: rgb(33 120 149 / 8%);--color-on-accent: #ffffff;--color-focus: #217895;--color-selection: rgb(33 120 149 / 14%);--color-disabled: #9aaab1;--color-disabled-surface: #edf2f3;--font-family-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;--font-family-display: "Avenir Next", Inter, ui-sans-serif, system-ui, "Microsoft YaHei", sans-serif;--font-family-meta: ui-monospace, SFMono-Regular, Consolas, monospace;--font-family-mono: ui-monospace, SFMono-Regular, Consolas, monospace;--font-size-display: clamp(3.25rem, 8vw, 6rem);--font-size-h1: clamp(2.75rem, 7vw, 5rem);--font-size-h2: 2rem;--font-size-h3: 1.25rem;--font-size-body-lg: 1.125rem;--font-size-body: 1rem;--font-size-body-sm: .875rem;--font-size-meta: .75rem;--font-size-label: .75rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-display: .98;--line-height-heading: 1.15;--line-height-body: 1.65;--line-height-meta: 1.4;--tracking-display: -.055em;--tracking-meta: .08em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--layout-page-max: 1120px;--layout-content-max: 980px;--layout-prose-max: 35em;--layout-gutter-mobile: 16px;--layout-gutter-desktop: 32px;--layout-title-offset-desktop: var(--space-9);--layout-title-offset-mobile: var(--space-8);--layout-section-gap: 64px;--layout-grid-gap: 24px;--layout-row-min-height: 88px;--radius-none: 0;--radius-sm: 8px;--radius-md: 14px;--radius-pill: 999px;--border-width-thin: 1px;--border-width-strong: 2px;--shadow-none: none;--shadow-soft: 0 10px 28px rgb(29 51 65 / 10%);--focus-width: 2px;--focus-offset: 4px;--header-background: rgb(255 255 255 / 72%);--header-backdrop-filter: blur(18px);--header-border: #d8e2e5;--size-control-sm: 36px;--size-control-md: 44px;--size-control-lg: 52px;--size-target-min: 44px;--motion-duration-fast: .12s;--motion-duration-base: .18s;--motion-duration-slow: .22s;--motion-ease-standard: ease-out}@media(prefers-reduced-motion:reduce){:root{--motion-duration-fast: 0ms;--motion-duration-base: 0ms;--motion-duration-slow: 0ms}}:root{--bg: var(--color-canvas);--surface: var(--color-surface);--surface-strong: var(--color-surface-raised);--text: var(--color-text);--muted: var(--color-text-muted);--line: var(--color-line);--accent: var(--color-accent);--accent-strong: var(--color-accent-strong);--shadow: var(--shadow-soft);font-family:var(--font-family-body);--legacy-font-stack: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);scroll-behavior:smooth}body{font-family:var(--font-family-body);margin:0;min-width:320px;line-height:var(--line-height-body)}html:has(.home-page),html:has(.archive-page),html:has(.archive-detail-page),html:has(.now-page),html:has(.about-page),html:has(.contact-page){background:var(--color-canvas)}body:has(.home-page),body:has(.archive-page),body:has(.archive-detail-page),body:has(.now-page),body:has(.about-page),body:has(.contact-page){--bg: var(--color-canvas);--surface: var(--color-surface);--surface-strong: var(--color-surface-raised);--text: var(--color-text);--muted: var(--color-text-muted);--line: var(--color-line);--accent: var(--color-accent);--accent-strong: var(--color-accent-strong);background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}:where(a,button):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}p,h1,h2,h3{margin:0}ul{margin:0;padding-left:1.1rem}.site-footer,main{width:min(var(--layout-page-max),calc(100% - var(--layout-gutter-desktop) - var(--layout-gutter-desktop)));margin-inline:auto}.site-header{background:var(--header-background);backdrop-filter:var(--header-backdrop-filter);display:flex;align-items:center;justify-content:space-between;gap:24px;left:0;margin-inline:auto;padding:18px max(var(--layout-gutter-desktop),calc((100vw - var(--layout-page-max)) / 2));position:sticky;right:0;top:0;width:100%;z-index:20}.brand{display:flex;flex-direction:column;line-height:1.1;font-weight:750}.brand small{color:var(--muted);font-size:.76rem;font-weight:500}.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.nav a{border:1px solid transparent;border-radius:var(--radius-md);color:var(--muted);font-size:.94rem;padding:8px 12px}.nav a:hover,.nav a.active{border-color:transparent;color:var(--text);background:#ffffffb8}.hero,.page-hero{padding:48px 0}.page-hero{display:grid;gap:10px;max-width:var(--layout-content-max)}.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:48px;align-items:end;padding-top:40px}.hero-copy{display:grid;gap:18px}.eyebrow{color:var(--color-accent);font-size:.78rem;font-weight:800;letter-spacing:var(--tracking-meta);text-transform:uppercase}h1{font-family:var(--font-family-display);font-size:var(--font-size-display);line-height:var(--line-height-display);letter-spacing:var(--tracking-display)}.hero h1{font-family:var(--font-family-display);--legacy-font-stack: "Noto Serif SC", "Songti SC", "SimSun", Georgia, "Times New Roman", serif;font-weight:800}.page-hero h1{font-family:var(--font-family-display);--legacy-font-stack: "Noto Serif SC", "Songti SC", "SimSun", Georgia, "Times New Roman", serif;font-size:var(--font-size-h1);font-weight:800;line-height:var(--line-height-heading)}.page-hero .eyebrow{font-size:1.08rem}.page-hero p:not(.eyebrow){font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.8}h2{font-family:var(--font-family-display);--legacy-font-stack: "Noto Serif SC", "Songti SC", "SimSun", Georgia, "Times New Roman", serif;font-size:var(--font-size-h2);font-weight:800;line-height:var(--line-height-heading);letter-spacing:var(--tracking-display)}h3{font-family:var(--font-family-display);--legacy-font-stack: "Noto Serif SC", "Songti SC", "SimSun", Georgia, "Times New Roman", serif;font-size:var(--font-size-h3);font-weight:800;line-height:var(--line-height-heading)}.headline{color:var(--accent-strong);font-size:clamp(1.25rem,3vw,1.7rem);font-weight:700}.hero-copy>p:not(.eyebrow):not(.headline),.page-hero p,.section-intro p,.project-card p,.work-card p,.project-detail p,.about-grid p,.empty-state p,.site-footer p,.qr-placeholder p,.contact-link-main small{color:var(--muted)}.button-row{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}.button{align-items:center;background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius-md);display:inline-flex;font-weight:700;justify-content:center;min-height:var(--size-control-md);padding:10px 16px}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--color-on-accent)}.button.ghost{background:transparent}.button.disabled{color:var(--muted);cursor:default}.text-link{color:var(--accent-strong);font-weight:800}.portrait-panel,.stat-card,.project-card,.work-card,.empty-state,.project-detail,.about-grid article,.qr-placeholder,.contact-link{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.portrait-panel{align-self:start;box-shadow:var(--shadow-soft);margin-top:24px;overflow:hidden;padding:0}.portrait-panel img{aspect-ratio:1;display:block;height:auto;object-fit:cover;object-position:center 36%;width:100%}.section{padding:48px 0}.page-hero+.section{padding-top:0}.section-intro{display:grid;gap:10px;margin-bottom:24px;max-width:760px}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.stat-card{min-height:154px;padding:18px}.stat-card strong{color:var(--accent-strong);display:block;font-size:clamp(1.7rem,4vw,2.3rem);line-height:1.1}.stat-card span{display:block;font-weight:800;margin-top:8px}.stat-card p{color:var(--muted);font-size:.9rem;margin-top:8px}.card-grid{display:grid;gap:16px}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.section-action{display:flex;justify-content:center;padding-top:22px}.project-card,.work-card{display:grid;gap:18px;padding:22px}.project-card h3{font-family:var(--font-family-display);--legacy-font-stack: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;font-size:clamp(1.28rem,2vw,1.6rem);font-weight:850;line-height:1.25}.work-card h3{font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.25}.work-cover{aspect-ratio:16 / 10;border-radius:var(--radius-md);display:block;height:auto;object-fit:cover;width:100%}.work-cover.contain{aspect-ratio:1;background:var(--color-canvas);object-fit:contain}.project-card.compact{min-height:370px}.role,.reflection{border-left:3px solid var(--accent);padding-left:12px}.pill-list,.metric-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}.project-card .pill-list{align-items:flex-start;flex-direction:column}.pill-list li,.metric-list li{background:#21789514;border:1px solid rgba(33,120,149,.14);border-radius:999px;color:var(--accent-strong);font-size:.88rem;font-weight:700;padding:6px 10px}.meta{font-size:.92rem}.category-section{border-top:1px solid var(--line)}.category-toggle{border-top:1px solid var(--line);padding:0}.category-toggle summary{align-items:center;cursor:pointer;display:flex;gap:16px;justify-content:space-between;list-style:none;padding:26px 0;position:relative}.category-toggle summary::-webkit-details-marker{display:none}.category-toggle summary:after{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--accent-strong);content:"+";display:inline-flex;flex:0 0 auto;font-size:1.4rem;font-weight:500;height:40px;justify-content:center;line-height:1;width:40px}.category-toggle[open] summary:after{content:"-"}.category-toggle summary span{color:var(--text);font-family:var(--font-family-display);--legacy-font-stack: "Noto Serif SC", "Songti SC", "SimSun", Georgia, "Times New Roman", serif;font-size:var(--font-size-h2);font-weight:850;line-height:1.15}.category-toggle summary small{color:var(--muted);font-size:.95rem;margin-left:auto}.category-toggle-body{padding-bottom:42px}.empty-state{padding:24px}.proof-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.proof-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.proof-card img{background:#fff;display:block;height:auto;width:100%}.proof-card div{display:grid;gap:8px;padding:18px}.proof-card p{color:var(--muted)}.project-detail-list{display:grid;gap:24px;padding-bottom:56px}.project-detail{display:grid;gap:22px;padding:28px}.project-detail>div:first-child{display:grid;gap:8px}.detail-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid article{border-top:1px solid var(--line);display:grid;gap:10px;padding-top:16px}.about-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid article{display:grid;gap:10px;padding:24px}.contact-layout{display:grid;gap:20px;grid-template-columns:320px 1fr}.qr-placeholder{display:grid;gap:12px;box-shadow:var(--shadow-soft);text-align:center;padding:24px}.qr-placeholder img{border-radius:var(--radius-md);display:block;width:100%}.qr-placeholder .contact-avatar{aspect-ratio:1;justify-self:center;max-width:78%;object-fit:cover;object-position:center 36%}.qr-placeholder span{color:var(--color-accent);font-weight:800}.qr-placeholder strong{font-size:2.2rem}.link-list{display:grid;gap:10px}.contact-link{align-items:center;display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:10px;padding:0}.contact-link-main{align-items:center;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);min-height:92px;padding:18px 0 18px 18px}.contact-link-main span{font-weight:800}.contact-link-main .contact-link-external{color:var(--accent);font-weight:700;margin-left:4px}.contact-link-main:not(.contact-link-static):hover,.contact-link-main:not(.contact-link-static):focus-visible{color:var(--accent-strong)}.contact-link-main:focus-visible,.qr-zoom-trigger:focus-visible,.qr-dialog-close:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}.contact-link.pending{color:var(--muted)}.qr-zoom-trigger{background:transparent;border:0;cursor:zoom-in;justify-self:center;padding:14px}.qr-zoom-trigger img{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-md);display:block;height:58px;object-fit:cover;width:58px}.qr-dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);max-width:min(520px,calc(100vw - 40px));padding:22px}.qr-dialog::backdrop{background:#1f252357;backdrop-filter:blur(12px)}.qr-dialog img{border-radius:var(--radius-md);display:block;max-height:min(70vh,520px);width:100%}.qr-dialog-close{background:transparent;border:0;color:var(--muted);cursor:pointer;display:block;font:inherit;margin:0 0 12px auto}.site-footer{border-top:0;display:flex;gap:16px;justify-content:space-between;padding:28px 0 40px}.site-footer p{color:var(--muted);font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;letter-spacing:.08em;line-height:1.4;margin:0;transition:color .16s ease}.site-footer p:hover{color:var(--accent)}body:has(.home-page) .site-footer,body:has(.archive-page) .site-footer,body:has(.archive-detail-page) .site-footer,body:has(.now-page) .site-footer,body:has(.about-page) .site-footer,body:has(.contact-page) .site-footer{border-color:var(--line);color:var(--muted)}@media(max-width:900px){.hero,.contact-layout,.detail-grid,.about-grid,.proof-grid,.card-grid.two,.card-grid.three{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-panel{margin-top:0}}@media(max-width:640px){.site-footer,main{width:min(var(--layout-page-max),calc(100% - var(--layout-gutter-mobile) - var(--layout-gutter-mobile)))}.site-header{align-items:flex-start;flex-direction:column}.nav{justify-content:flex-start}.hero,.page-hero{padding-top:44px}.stat-grid{grid-template-columns:1fr}.site-footer{align-items:flex-start;flex-direction:column}.category-toggle summary{align-items:flex-start;flex-direction:column;gap:12px}.category-toggle summary small{margin-left:0}.category-toggle summary:after{position:absolute;right:16px}.contact-link{grid-template-columns:1fr}.contact-link-main{grid-template-columns:1fr;padding:18px}.qr-zoom-trigger{justify-self:start;padding:0 18px 18px}.qr-zoom-trigger img{height:96px;width:96px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.site-header{--header-bg: var(--color-canvas);--header-surface: var(--color-surface);--header-text: var(--color-text);--header-muted: var(--color-text-muted);--header-line: var(--color-line);--header-accent: var(--color-accent);align-items:center;background:var(--header-background);backdrop-filter:var(--header-backdrop-filter);border-bottom:1px solid var(--header-line)}.site-header .brand{color:var(--header-text);font-size:1.05rem;letter-spacing:-.03em}.site-header .nav{gap:20px}.site-header .nav a{background:transparent;border-radius:0;color:var(--header-muted);font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;letter-spacing:.09em;padding:6px 0;text-transform:uppercase}.site-header .nav a:hover,.site-header .nav a.active{background:transparent;color:var(--header-text)}.site-header .nav a.active{box-shadow:inset 0 -2px 0 var(--header-accent)}.site-header .brand:focus-visible,.site-header .nav a:focus-visible,.site-header .nav-toggle:focus-visible{outline:2px solid var(--header-accent);outline-offset:4px}.site-header .nav-toggle{align-items:center;background:transparent;border:1px solid var(--header-line);border-radius:var(--radius-md);color:var(--header-text);cursor:pointer;display:none;font:.72rem/1 IBM Plex Mono,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;min-height:var(--size-target-min);padding:0 10px}@media(max-width:640px){.site-header{align-items:center;flex-direction:row;gap:14px;padding-inline:var(--layout-gutter-mobile)}.site-header .nav-toggle{display:inline-flex;margin-left:auto}.site-header .nav{background:var(--header-surface);border-bottom:1px solid var(--header-line);display:none;flex-direction:column;gap:0;left:0;padding:8px 16px 12px;position:absolute;right:0;top:100%}.site-header .nav[data-open=true]{display:flex}.site-header .nav a{padding:12px 0}}
