:root{--color-primary: #1a365d;--color-primary-light: #2c5282;--color-accent: #c05621;--color-accent-light: #dd6b20;--color-bg: #fefefe;--color-bg-alt: #f7f5f3;--color-bg-subtle: #edf2f7;--color-surface: #ffffff;--color-border: #e2e8f0;--color-border-subtle: #edf2f7;--color-text: #1a202c;--color-text-secondary: #4a5568;--color-text-muted: #718096;--color-text-inverse: #ffffff;--color-link: #2b6cb0;--color-link-hover: #1a365d;--color-primary-strong: #1a365d;--color-primary-soft: rgba(44, 82, 130, 0.09);--color-accent-strong: #b2501f;--color-accent-soft: rgba(192, 86, 33, 0.10);--gradient-brand: linear-gradient(135deg, #1a365d 0%, #2c5282 60%, #c05621 140%);--gradient-title: linear-gradient(120deg, #1a202c 20%, #2c5282 100%);--glow-a: rgba(44, 82, 130, 0.10);--glow-b: rgba(192, 86, 33, 0.07);--gradient-line: linear-gradient(to bottom, #2c5282 0%, #4a6fa5 55%, #c05621 88%, transparent 100%);--line-spark: rgba(255, 255, 255, 0.95);--shadow-glow: rgba(26, 54, 93, 0.25);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)}[data-theme="dark"]{--color-primary: #06a623b8;--color-primary-light: #bef8d4;--color-accent: #06a623b8;--color-accent-light: #f73a37b9;--color-bg: #0d1117;--color-bg-alt: #161b22;--color-bg-subtle: #21262d;--color-surface: #1c2128;--color-border: #30363d;--color-border-subtle: #21262d;--color-text: #e6edf3;--color-text-secondary: #8b949e;--color-text-muted: #6e7681;--color-text-inverse: #0d1117;--color-link: #58a6ff;--color-link-hover: #79c0ff;--color-primary-strong: #3fd15a;--color-primary-soft: rgba(46, 160, 67, 0.15);--color-accent-strong: #3fd15a;--color-accent-soft: rgba(46, 160, 67, 0.15);--gradient-brand: linear-gradient(135deg, #1f9e3a 0%, #2ea043 55%, #3b82c4 140%);--gradient-title: linear-gradient(120deg, #e6edf3 30%, #7ee787 100%);--glow-a: rgba(46, 160, 67, 0.10);--glow-b: rgba(88, 166, 255, 0.07);--gradient-line: linear-gradient(to bottom, #3fd15a 0%, #2ea043 40%, rgba(190, 248, 212, 0.55) 85%, transparent 100%);--line-spark: #d2ffdc;--shadow-glow: rgba(46, 160, 67, 0.22);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3)}:root{--font-serif: 'Source Serif 4', 'Georgia', 'Times New Roman', serif;--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--font-mono: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;--font-handwritten: 'Shadows Into Light', cursive;--text-xs: 0.75rem;--text-sm: 0.875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--container-max: 1200px;--content-max: 720px;--sidebar-width: 280px;--radius-sm: 0.25rem;--radius-md: 0.375rem;--radius-lg: 0.5rem;--radius-xl: 0.75rem;--radius-full: 9999px;--transition-fast: 150ms ease;--transition-base: 200ms ease;--transition-slow: 300ms ease}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);background-color:var(--color-bg);background-image:radial-gradient(1100px 520px at 90% -8%, var(--glow-a), transparent 65%),radial-gradient(800px 480px at -12% 6%, var(--glow-b), transparent 65%);background-repeat:no-repeat;min-height:100vh;display:flex;flex-direction:column;transition:background-color var(--transition-base),color var(--transition-base)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-text);margin-top:0}h1{font-size:var(--text-4xl);margin-bottom:var(--space-6)}@media (max-width: 640px){h1{font-size:var(--text-3xl)}}h2{font-size:var(--text-2xl);margin-bottom:var(--space-4);margin-top:var(--space-10)}h3{font-size:var(--text-xl);margin-bottom:var(--space-3);margin-top:var(--space-8)}h4{font-size:var(--text-lg);margin-bottom:var(--space-2);margin-top:var(--space-6)}p{margin-bottom:var(--space-4);max-width:65ch}@media (min-width: 641px){.hero-description,.project-description,.timeline-description,.page-content p,.page-content li{text-align:justify;hyphens:auto;-webkit-hyphens:auto}}a{color:var(--color-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-link-hover);text-decoration:underline}ul,ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}li{margin-bottom:var(--space-2)}img{max-width:100%;height:auto;display:block}code{font-family:var(--font-mono);font-size:0.9em;background-color:var(--color-bg-subtle);padding:0.125rem 0.375rem;border-radius:var(--radius-sm)}pre{font-family:var(--font-mono);font-size:var(--text-sm);background-color:var(--color-bg-alt);padding:var(--space-4);border-radius:var(--radius-md);overflow-x:auto;margin-bottom:var(--space-4)}pre code{background:none;padding:0;font-size:inherit}blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-4);margin:var(--space-6) 0;font-style:italic;color:var(--color-text-secondary)}hr{border:none;height:1px;background:var(--color-border);margin:var(--space-8) 0}table{width:100%;border-collapse:collapse;margin-bottom:var(--space-6);font-size:var(--text-sm)}th,td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}th{font-weight:var(--font-semibold);background-color:var(--color-bg-alt)}::selection{background-color:var(--color-primary);color:var(--color-text-inverse)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:var(--space-4);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:1000;font-size:var(--text-sm)}.skip-link:focus{top:var(--space-4)}strong{font-weight:var(--font-semibold)}em{font-style:italic}small{font-size:var(--text-sm)}mark{background-color:#fef3c7;padding:0 0.125rem;border-radius:var(--radius-sm)}[data-theme="dark"] mark{background-color:#78350f}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}@media (max-width: 640px){.container{padding:0 var(--space-4)}}.site-header{position:sticky;top:0;z-index:100;background-color:var(--color-bg);border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:rgba(254,254,254,0.75)}[data-theme="dark"] .site-header{background-color:rgba(13,17,23,0.75)}.navbar{display:flex;align-items:center;justify-content:space-between;height:64px}.site-logo{display:flex;align-items:center;text-decoration:none;color:var(--color-text)}.site-logo:hover{text-decoration:none}.logo-text{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 var(--space-3);font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--font-bold);letter-spacing:0.02em;color:#fff;background:var(--gradient-brand);border-radius:var(--radius-lg);box-shadow:0 4px 12px -4px var(--glow-a),var(--shadow-sm);transition:transform var(--transition-fast)}.site-logo:hover .logo-text{transform:rotate(-3deg) scale(1.04)}.nav-menu{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:var(--space-1)}.nav-item{margin:0}.nav-link{display:block;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.nav-link:hover{color:var(--color-text);background-color:var(--color-bg-subtle);text-decoration:none}.nav-link.is-active{color:var(--color-primary-strong);background-color:var(--color-primary-soft)}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--space-2);margin-right:calc(-1 * var(--space-2))}.hamburger{display:block;width:24px;height:2px;background-color:var(--color-text);position:relative;transition:var(--transition-fast)}.hamburger::before,.hamburger::after{content:'';position:absolute;left:0;width:100%;height:2px;background-color:var(--color-text);transition:var(--transition-fast)}.hamburger::before{top:-7px}.hamburger::after{bottom:-7px}.theme-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.theme-toggle:hover{color:var(--color-text);background-color:var(--color-bg-subtle)}.theme-toggle .icon-sun{display:block}.theme-toggle .icon-moon{display:none}[data-theme="dark"] .theme-toggle .icon-sun{display:none}[data-theme="dark"] .theme-toggle .icon-moon{display:block}@media (max-width: 768px){.nav-toggle{display:block}.nav-menu{position:fixed;top:64px;left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;gap:0;padding:var(--space-4);background-color:var(--color-bg);border-top:1px solid var(--color-border);transform:translateX(100%);visibility:hidden;transition:transform var(--transition-base),visibility 0s linear var(--transition-base);overflow-y:auto}.nav-menu.is-open{transform:translateX(0);visibility:visible;transition:transform var(--transition-base),visibility 0s}.nav-toggle[aria-expanded="true"] .hamburger{background-color:transparent}.nav-toggle[aria-expanded="true"] .hamburger::before{top:0;transform:rotate(45deg)}.nav-toggle[aria-expanded="true"] .hamburger::after{bottom:0;transform:rotate(-45deg)}.nav-link{padding:var(--space-3) var(--space-4);font-size:var(--text-base)}.nav-item--theme{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border)}}.site-main{flex:1;padding:var(--space-12) 0}@media (max-width: 640px){.site-main{padding:var(--space-8) 0}}.page{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}@media (max-width: 640px){.page{padding:0 var(--space-4)}}.page-header{position:relative;margin-bottom:var(--space-10);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-border)}.page-header::after{content:'';position:absolute;left:0;bottom:-2px;width:72px;height:3px;border-radius:2px;background:var(--gradient-brand)}.page-title{font-size:clamp(2.25rem, 4.5vw, 3rem);font-weight:var(--font-bold);letter-spacing:-0.02em;margin-bottom:var(--space-3);background:var(--gradient-title);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.page-subtitle{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:60ch}.page-content{max-width:var(--content-max)}.page-content.full-width{max-width:none}.site-footer{background-color:var(--color-bg-alt);border-top:1px solid var(--color-border);padding:var(--space-10) 0 var(--space-8);margin-top:auto}.footer-content{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8)}@media (max-width: 640px){.footer-content{flex-direction:column;gap:var(--space-6)}}.footer-info .footer-name{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.footer-info .footer-affiliation{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.footer-links{display:flex;gap:var(--space-3)}.footer-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);color:var(--color-text-secondary);background-color:var(--color-bg);transition:all var(--transition-fast);border:1px solid var(--color-border)}.footer-link:hover{color:var(--color-primary-strong);background-color:var(--color-primary-soft);border-color:transparent;transform:translateY(-2px);text-decoration:none}.footer-link svg{width:18px;height:18px}.footer-bottom{padding-top:var(--space-6);border-top:1px solid var(--color-border)}.footer-copyright{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.home{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}@media (max-width: 640px){.home{padding:0 var(--space-4)}}.hero{display:grid;grid-template-columns:1fr 320px;gap:var(--space-16);align-items:center;margin-bottom:var(--space-12);padding-top:var(--space-4)}@media (max-width: 900px){.hero{grid-template-columns:1fr;gap:var(--space-8)}}.hero-content{order:1}@media (max-width: 900px){.hero-content{order:2}}.hero-tagline{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:0.1em;color:var(--color-accent-strong);background-color:var(--color-accent-soft);border-radius:var(--radius-full);margin-bottom:var(--space-5)}.hero-tagline::before{content:'';width:7px;height:7px;border-radius:50%;background-color:currentColor;box-shadow:0 0 0 0 currentColor;animation:pulse-dot 2.4s ease-out infinite}@keyframes pulse-dot{0%{box-shadow:0 0 0 0 var(--color-accent-soft)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}.hero-title{font-size:clamp(2.5rem, 5.5vw, 3.75rem);font-weight:var(--font-bold);letter-spacing:-0.025em;margin-bottom:var(--space-4);line-height:1.05;color:var(--color-text)}.hero-subtitle{font-size:var(--text-xl);font-weight:var(--font-medium);color:var(--color-text);margin-bottom:var(--space-6);max-width:50ch}.hero-description{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-6);max-width:55ch}.hero-image-wrapper{order:2;position:relative;isolation:isolate}.hero-image-wrapper::after{content:'';position:absolute;inset:-18%;background:radial-gradient(closest-side, var(--glow-a), transparent);z-index:-2}@media (max-width: 900px){.hero-image-wrapper{order:1;max-width:250px;margin:0 auto}}.hero-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:28px;background-color:var(--color-bg-subtle);box-shadow:0 0 0 1px var(--color-border),var(--shadow-lg)}[data-theme="dark"] .hero-image{filter:brightness(0.88)}.hero-links{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.post{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}@media (max-width: 640px){.post{padding:0 var(--space-4)}}.post-header{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.post-title{margin-bottom:var(--space-3)}.post-meta{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}.post-content{max-width:var(--content-max)}.post-footer{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.post-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-6)}.post-navigation{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media (max-width: 640px){.post-navigation{grid-template-columns:1fr}}.nav-prev,.nav-next{padding:var(--space-4);background-color:var(--color-bg-alt);border-radius:var(--radius-lg);text-decoration:none;transition:all var(--transition-fast)}.nav-prev:hover,.nav-next:hover{background-color:var(--color-bg-subtle);text-decoration:none;transform:translateY(-2px)}.nav-next{text-align:right}.nav-label{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.05em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.nav-title{display:block;font-weight:var(--font-medium);color:var(--color-text)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;border-radius:var(--radius-lg);border:none;cursor:pointer;transition:all var(--transition-fast)}.btn:hover{text-decoration:none;transform:translateY(-2px)}.btn svg{width:16px;height:16px;flex-shrink:0}.btn-primary{background:var(--gradient-brand);color:#fff;box-shadow:0 4px 10px -6px var(--shadow-glow),var(--shadow-sm)}.btn-primary:hover{color:#fff;filter:brightness(1.08);box-shadow:0 6px 12px -6px var(--shadow-glow),var(--shadow-sm)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--color-primary-strong);color:var(--color-primary-strong)}.btn-accent{background-color:var(--color-accent);color:var(--color-text-inverse)}.btn-accent:hover{background-color:var(--color-accent-light);color:var(--color-text-inverse)}.btn-ghost{background-color:transparent;color:var(--color-text)}.btn-ghost:hover{background-color:var(--color-bg-subtle)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2);margin-top:0}.card-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-3)}.card-content{color:var(--color-text-secondary);font-size:var(--text-sm)}.tag{display:inline-block;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary-strong);background-color:var(--color-primary-soft);border-radius:var(--radius-full)}.tag-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.tag-accent{background-color:var(--color-accent);color:var(--color-text-inverse)}.section{margin-bottom:var(--space-16)}.section:last-child{margin-bottom:0}.section-title{font-size:var(--text-3xl);font-weight:var(--font-bold);letter-spacing:-0.015em;margin-bottom:var(--space-8);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);position:relative}.section-title::after{content:'';position:absolute;bottom:-2px;left:0;width:56px;height:3px;border-radius:2px;background:var(--gradient-brand)}@media (max-width: 640px){.section-title{font-size:var(--text-2xl)}}.project-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:var(--space-6)}.project-card{position:relative;overflow:hidden;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-6) var(--space-6);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.project-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-brand)}.project-card:hover{transform:translateY(-4px);border-color:var(--color-primary-soft);box-shadow:var(--shadow-lg)}.project-icon{width:48px;height:48px;margin-bottom:var(--space-4);color:var(--color-accent)}.project-title{font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-2);margin-top:0}.project-description{color:var(--color-text-secondary);font-size:var(--text-base);margin-bottom:var(--space-4)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.publication-list{list-style:none;padding:0;margin:0}.publication-item{padding:var(--space-5) var(--space-6);margin-bottom:var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.publication-item:hover{border-left-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateX(2px)}.publication-item>:last-child{margin-bottom:0}.publication-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-top:0;margin-bottom:var(--space-2);line-height:var(--leading-snug)}.publication-title a{color:var(--color-text)}.publication-title a:hover{color:var(--color-primary)}.publication-authors{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.publication-authors .author-highlight{font-weight:var(--font-semibold);color:var(--color-primary-strong)}.publication-venue{font-size:var(--text-sm);font-style:italic;color:var(--color-text-muted);margin-bottom:var(--space-3)}.publication-links{display:flex;flex-wrap:wrap;gap:var(--space-2)}.cv-section{margin-bottom:var(--space-10)}.cv-section-title{font-size:var(--text-xl);margin-bottom:var(--space-4);color:var(--color-primary)}.cv-item{position:relative;margin-bottom:var(--space-8);padding-left:var(--space-6);border-left:2px solid var(--color-border)}.cv-item::before{content:'';position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:50%;background-color:var(--color-bg);border:2px solid var(--color-primary-strong)}.cv-item:hover::before{background-color:var(--color-primary-strong)}.cv-item:last-child{margin-bottom:0}.cv-item-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.cv-item-title{font-weight:var(--font-semibold);font-size:var(--text-lg)}.cv-item-date{align-self:center;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary-strong);background-color:var(--color-primary-soft);padding:2px var(--space-3);border-radius:var(--radius-full);white-space:nowrap}.cv-item-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.cv-item-description{font-size:var(--text-base);color:var(--color-text-secondary)}.cv-item-description ul{margin-top:var(--space-2);margin-bottom:0}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:var(--space-4)}.skill-category{background-color:var(--color-surface);padding:var(--space-5);border:1px solid var(--color-border);border-top:3px solid var(--color-accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.skill-category-title{font-size:var(--text-sm);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:0.05em;color:var(--color-primary-strong);margin-top:0;margin-bottom:var(--space-3)}.skill-list{list-style:none;padding:0;margin:0}.skill-list li{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.skill-list li:last-child{margin-bottom:0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:var(--space-6)}.contact-card{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);text-decoration:none;transition:all var(--transition-fast)}.contact-card:hover{border-color:var(--color-primary-strong);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.contact-icon{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary-soft);border-radius:var(--radius-lg);color:var(--color-primary-strong)}.contact-icon svg{width:20px;height:20px}.contact-info{flex:1}.contact-label{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.05em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.contact-value{font-weight:var(--font-medium);color:var(--color-text)}.blog-list{list-style:none;padding:0;margin:0}.blog-item{padding:var(--space-6) 0;border-bottom:1px solid var(--color-border)}.blog-item:first-child{padding-top:0}.blog-item:last-child{border-bottom:none}.blog-item-date{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.blog-item-title{font-size:var(--text-xl);margin-bottom:var(--space-2)}.blog-item-title a{color:var(--color-text);text-decoration:none}.blog-item-title a:hover{color:var(--color-primary)}.blog-item-excerpt{color:var(--color-text-secondary);font-size:var(--text-sm)}.ads-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--gradient-brand);color:#fff;box-shadow:0 4px 10px -6px var(--shadow-glow),var(--shadow-sm);border-radius:var(--radius-lg);text-decoration:none;font-weight:var(--font-medium);transition:all var(--transition-fast)}.ads-badge:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);text-decoration:none;color:#fff}.ads-badge svg{width:20px;height:20px}.keyword-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0;margin:0}.keyword-item{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);margin:0;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.keyword-item:hover{color:var(--color-accent-strong);background-color:var(--color-accent-soft);border-color:transparent;transform:translateY(-2px)}.pattern-bg{position:relative}.pattern-bg::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%239C92AC' fill-opacity='0.03' fill-rule='evenodd'/%3E%3C/svg%3E");pointer-events:none;opacity:0.5}.daily-quote{display:table;padding:var(--space-6);padding-left:100px;border-radius:var(--radius-xl);margin:0 0 var(--space-16);position:relative;background-color:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);background-size:80px auto;background-position:10px center;background-repeat:no-repeat;min-height:100px;max-width:100%}@media (max-width: 640px){.daily-quote{padding:var(--space-4);padding-left:72px;background-size:56px auto;background-position:8px center}}.daily-quote::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to right, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.9) 80px, rgba(255,255,255,0.9) 100%);border-radius:var(--radius-xl);z-index:0}.daily-quote::after{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-brand);border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:1}[data-theme="dark"] .daily-quote::before{background:linear-gradient(to right, rgba(28,33,40,0.3) 0%, rgba(28,33,40,0.9) 80px, rgba(28,33,40,0.9) 100%)}.quote-label{display:block;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-muted);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:0.05em;position:relative;z-index:1}.quote-text{border:none;border-left:none;padding:0;padding-left:0;margin:0;font-style:normal;color:inherit;position:relative;z-index:1}.quote-text p{font-family:var(--font-handwritten);font-size:var(--text-2xl);line-height:var(--leading-loose);color:var(--color-text);margin:0;text-transform:uppercase}.quote-text p::before{content:'"'}.quote-text p::after{content:'"'}@media (max-width: 640px){.quote-text p{font-size:var(--text-xl)}}.research-timeline{position:relative;padding-left:60px;margin-top:var(--space-4)}.research-timeline::before{content:'';position:absolute;left:18px;top:22px;bottom:0;width:4px;background:var(--gradient-line);border-radius:2px;box-shadow:0 0 14px var(--glow-a)}.research-timeline::after{content:'';position:absolute;left:18px;top:22px;width:4px;height:90px;border-radius:2px;background:linear-gradient(to bottom, transparent, var(--line-spark), transparent);opacity:0;animation:timeline-spark 7s ease-in-out infinite;pointer-events:none}@keyframes timeline-spark{0%{top:22px;opacity:0}10%{opacity:1}80%{opacity:1}100%{top:calc(100% - 120px);opacity:0}}@keyframes node-halo{0%{box-shadow:0 0 0 4px var(--color-bg),0 0 0 4px var(--color-primary-soft)}70%{box-shadow:0 0 0 4px var(--color-bg),0 0 0 14px transparent}100%{box-shadow:0 0 0 4px var(--color-bg),0 0 0 14px transparent}}.timeline-item{position:relative;display:flex;gap:var(--space-4);padding:var(--space-4);padding-left:var(--space-5);margin-bottom:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:transform 0.2s ease, box-shadow 0.2s ease}.timeline-item:hover{transform:translateX(4px);box-shadow:var(--shadow-md)}.timeline-item:last-child{margin-bottom:0}.timeline-item::after{content:'';position:absolute;left:-30px;top:21px;width:30px;height:2px;background:repeating-linear-gradient(to right, var(--color-primary-strong) 0 4px, transparent 4px 8px);opacity:0.7}.timeline-item::before{content:'';position:absolute;left:-50px;top:12px;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle, var(--color-primary-strong) 0 3px, var(--color-surface) 3.5px);border:3px solid var(--color-primary-strong);z-index:2;box-shadow:0 0 0 4px var(--color-bg);transition:transform var(--transition-base),background var(--transition-base)}.timeline-item:hover::before{background:var(--color-primary-strong);transform:scale(1.15)}.timeline-item.timeline-major::before{width:24px;height:24px;left:-52px;top:10px;background:radial-gradient(circle, var(--color-primary-strong) 0 4px, var(--color-surface) 4.5px)}.timeline-item.timeline-major:hover::before{background:var(--color-primary-strong)}.timeline-item.timeline-current::before{background:var(--gradient-brand);border-color:transparent;animation:node-halo 2.4s ease-out infinite}.timeline-item.timeline-current::after{background:var(--color-primary-strong);opacity:1}.timeline-item.timeline-current{border-color:var(--color-primary);border-width:2px;box-shadow:var(--shadow-md)}.timeline-content{flex:1;min-width:0}.timeline-image{flex-shrink:0;width:180px;height:120px;align-self:center;border-radius:var(--radius-lg);overflow:hidden;background-color:var(--color-bg-subtle);display:flex;align-items:center;justify-content:center}.timeline-image img{width:100%;height:100%;object-fit:cover}.timeline-image:empty::before{content:'🎓';font-size:2rem;opacity:0.5}.timeline-date{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-primary-strong);background-color:var(--color-primary-soft);padding:3px 10px;border-radius:var(--radius-full);margin-bottom:var(--space-2)}.timeline-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text);margin:0 0 var(--space-1) 0}.timeline-location{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0;display:flex;align-items:center;gap:var(--space-2)}.timeline-location::before{content:'📍';font-size:var(--text-xs)}.timeline-description{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:var(--leading-relaxed)}.timeline-current .timeline-date{color:#fff;background:var(--gradient-brand)}@media (max-width: 640px){.research-timeline{padding-left:40px}.research-timeline::before,.research-timeline::after{left:10.5px;width:3px}.timeline-item{flex-direction:column;padding:var(--space-3)}.timeline-item::before{left:-36px;top:14px;width:16px;height:16px;border-width:2px}.timeline-item::after{left:-20px;width:20px}.timeline-item.timeline-major::before{width:18px;height:18px;left:-37px;top:13px}.timeline-title{font-size:var(--text-base)}.timeline-image{width:100%;height:160px;order:-1}}@media print{.site-header,.site-footer,.nav-toggle,.theme-toggle,.btn{display:none !important}body{font-size:12pt;line-height:1.5;color:#000;background:#fff}a{color:#000;text-decoration:underline}.page{padding:0}}
