.hero-title{height:0;overflow:hidden;margin:0;padding:0;visibility:hidden}.hero-section{margin-bottom:var(--space-24)}.narrative-text>p:first-child img,.narrative-text img[alt=自拍]{display:block;width:100%;height:420px;object-fit:cover;object-position:center 70%;border-radius:4px;margin-bottom:var(--space-12)}.narrative-text h2{font-family:var(--font-body);font-size:var(--text-2xl);font-weight:700;color:var(--color-text-heading);line-height:var(--leading-tight);margin-top:var(--space-16);margin-bottom:var(--space-6);letter-spacing:var(--tracking-tight)}.narrative-text{font-size:var(--text-md);color:var(--color-text-primary);line-height:var(--leading-relaxed);max-width:640px}.narrative-text p{margin-bottom:var(--space-5);font-size:var(--text-md);line-height:var(--leading-relaxed)}.narrative-text a{color:var(--color-text-primary);text-decoration:underline;text-decoration-color:var(--color-border-subtle);text-underline-offset:3px;transition:color var(--duration-fast),text-decoration-color var(--duration-fast)}.narrative-text a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.narrative-text p:has(>strong:first-child>a){color:var(--color-text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed);margin-bottom:var(--space-5)}.narrative-text p>strong:first-child>a{text-decoration:none;color:var(--color-text-heading);font-weight:600;transition:color var(--duration-fast)}.narrative-text p>strong:first-child>a:hover{color:var(--color-accent)}.narrative-text blockquote{border:none;border-left:2px solid var(--color-accent);background:var(--color-bg-subtle);padding:var(--space-4)var(--space-6);margin:var(--space-8)0;font-style:italic}.narrative-text blockquote p{color:var(--color-text-secondary);font-size:var(--text-base);margin-bottom:var(--space-3)}.narrative-text blockquote p:last-child{margin-bottom:0}.narrative-text blockquote a{color:var(--color-text-secondary)}.narrative-text blockquote a:hover{color:var(--color-accent)}.section-divider{border:none;text-align:left;margin:var(--space-24)0;padding:0}.section-divider::before{content:"———";color:var(--color-border-subtle);letter-spacing:.3em}.timeline-section{margin-bottom:var(--space-24)}.timeline-title{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-10)}.timeline{display:grid;grid-template-columns:100px 1fr;gap:var(--space-8)var(--space-10);align-items:start;margin:0;padding:0}.timeline-year{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);text-align:right;margin-top:4px;letter-spacing:var(--tracking-wide);font-variant-numeric:tabular-nums}.timeline-content{margin:0;padding:0}.timeline-content h3{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;color:var(--color-text-heading);margin-bottom:var(--space-2)}.timeline-content p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.skills-section{margin-bottom:var(--space-24)}.skills-title{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-6)}.skills-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-3)}.skill-tag{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);padding:var(--space-2)var(--space-4);border-radius:2px;letter-spacing:var(--tracking-wide);transition:color var(--duration-fast),border-color var(--duration-fast)}.skill-tag:hover{color:var(--color-accent);border-color:var(--color-accent)}.contact-cta{margin-top:var(--space-24);padding-top:var(--space-12);border-top:1px solid var(--color-border-subtle)}.contact-label{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-4)}.contact-link{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text-heading);font-weight:600;transition:color var(--duration-fast)}.contact-link:hover{color:var(--color-accent)}.contact-link:active{color:var(--color-accent);opacity:.7}@media(max-width:639px){.timeline{grid-template-columns:1fr;gap:var(--space-6)}.timeline-year{text-align:left}}