:root{--bg: #ffffff;--bg-alt: #f5f5f5;--text: #111111;--text-muted: #737373;--border: #e5e5e5;--accent: #0070f3;--accent-hover: #005fcc;--nav-height: 72px;--nav-top: 16px;--max-width: 800px;--radius: 6px;--card-radius: 10px;--transition: 0.2s ease}[data-theme="dark"]{--bg: #0f0f0f;--bg-alt: #1a1a1a;--text: #ededed;--text-muted: #888888;--border: #282828;--accent: #3b82f6;--accent-hover: #60a5fa}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:'Inter', Georgia, 'Times New Roman', serif;background-color:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition),color var(--transition)}a{color:var(--accent);text-decoration:none;transition:opacity 0.15s}a:hover{opacity:0.75}img{max-width:100%;height:auto;display:block}::selection{background:rgba(0,112,243,0.15)}[data-theme="dark"] ::selection{background:rgba(59,130,246,0.25)}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.main-content{min-height:calc(100vh - var(--nav-height) - var(--nav-top) - 72px);padding-top:calc(var(--nav-height) + var(--nav-top) + 3.5rem);padding-bottom:5rem}.site-header{position:fixed;top:0;left:0;right:0;height:calc(var(--nav-height) + var(--nav-top));padding-top:var(--nav-top);background:var(--bg);border-bottom:1px solid var(--border);z-index:100;transition:background var(--transition),border-color var(--transition)}.header-inner{height:100%;display:flex;align-items:center;gap:1.5rem}.site-logo{font-size:0.95rem;font-weight:600;color:var(--text);text-decoration:none;letter-spacing:-0.02em;white-space:nowrap;flex-shrink:0}.site-logo:hover{opacity:0.75}.site-nav{display:flex;align-items:center;gap:0.125rem;flex:1;justify-content:flex-end}.nav-link{font-size:0.875rem;font-weight:400;color:var(--text-muted);text-decoration:none;padding:0.375rem 0.625rem;border-radius:var(--radius);transition:color 0.15s, background 0.15s}.nav-link:hover,.nav-link.active{color:var(--text);background:var(--bg-alt);opacity:1}.header-actions{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:none;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text-muted);transition:color 0.15s, border-color 0.15s, background 0.15s}.theme-toggle:hover{color:var(--text);border-color:var(--text-muted);background:var(--bg-alt)}[data-theme="light"] .icon-sun{display:none}[data-theme="light"] .icon-moon{display:block}[data-theme="dark"] .icon-moon{display:none}[data-theme="dark"] .icon-sun{display:block}.mobile-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;background:none;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:0 7px}.mobile-toggle span{display:block;width:100%;height:1.5px;background:var(--text);border-radius:2px;transition:all 0.2s}.hero{padding:2.5rem 0 3.5rem;border-bottom:1px solid var(--border);margin-bottom:3rem}.hero-title{font-size:2.25rem;font-weight:700;letter-spacing:-0.04em;line-height:1.15;margin-bottom:0.75rem}.hero-subtitle{font-size:1.05rem;font-weight:500;color:var(--text-muted);margin-bottom:0.6rem;letter-spacing:-0.01em}.hero-desc{font-size:0.925rem;color:var(--text-muted);max-width:500px;line-height:1.65;margin-bottom:1.5rem}.hero-links{display:flex;gap:1.25rem}.hero-link{font-size:0.875rem;font-weight:500;color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:1px;transition:border-color 0.15s, color 0.15s}.hero-link:hover{color:var(--accent);border-color:var(--accent);opacity:1}.section-label{font-size:0.75rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:1.25rem}.card{display:flex;flex-direction:column;padding:1rem 1.1rem 1.2rem;border-radius:var(--card-radius);overflow:hidden;background:var(--bg);transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition)}.card:hover{box-shadow:0 8px 28px rgba(0,0,0,0.07);transform:translateY(-2px);border-color:transparent}[data-theme="dark"] .card:hover{box-shadow:0 8px 28px rgba(0,0,0,0.35)}.card-thumb{width:100%;aspect-ratio:16 / 9;border-radius:var(--card-radius);overflow:hidden;background:var(--bg-alt);flex-shrink:0;position:relative}.card-thumb img{width:100%;height:100%;border-radius:var(--card-radius);object-fit:cover;display:block;transition:transform 0.4s ease}.card:hover .card-thumb img{transform:scale(1.03)}.card-thumb-placeholder{width:100%;height:100%;border-radius:var(--card-radius);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, var(--bg-alt) 0%, var(--border) 100%);color:var(--border)}[data-theme="dark"] .card-thumb-placeholder{background:linear-gradient(135deg, #1e1e1e 0%, #2a2a2a 100%)}.card-body{padding:1.2rem 0rem 1.2rem;display:flex;flex-direction:column;flex:1;gap:0.35rem}.card-date{font-size:0.73rem;color:var(--text-muted);letter-spacing:0.01em}.card-title{font-size:0.975rem;font-weight:600;letter-spacing:-0.02em;line-height:1.35;color:var(--text)}.card-title a{color:inherit;text-decoration:none}.card-title a:hover{color:var(--accent);opacity:1}.card-excerpt{font-size:0.835rem;color:var(--text-muted);line-height:1.6;margin-top:0.1rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card-tags{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:auto;padding-top:0.5rem}.tag{font-size:0.7rem;font-weight:500;padding:0.175rem 0.55rem;border-radius:100px;background:var(--bg-alt);color:var(--text-muted);border:1px solid var(--border)}.card-meta{display:flex;flex-direction:column;gap:0.5rem;margin-top:auto;padding-top:0.75rem;border-top:1px solid var(--border)}.card-tech{display:flex;flex-wrap:wrap;gap:0.35rem}.card-links{display:flex;flex-wrap:wrap;gap:0.4rem}.card-link{font-size:0.73rem;font-weight:500;color:var(--accent);border:1px solid var(--border);border-radius:var(--radius);padding:0.2rem 0.55rem;transition:background 0.15s}.card-link:hover{background:var(--bg-alt);opacity:1}.card-repo-badge{font-size:0.73rem;font-weight:500;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);padding:0.2rem 0.55rem;align-self:flex-start;transition:color 0.15s, border-color 0.15s, background 0.15s}.card-repo-badge:hover{color:var(--text);border-color:var(--text-muted);background:var(--bg-alt);opacity:1}.empty-state{padding:3rem 0;color:var(--text-muted);font-size:0.9rem;text-align:center}.show-more-btn{display:block;margin:2rem auto 0;padding:0.575rem 1.75rem;font-size:0.875rem;font-weight:500;font-family:inherit;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:color var(--transition),border-color var(--transition),background var(--transition)}.show-more-btn:hover{color:var(--text);border-color:var(--text-muted);background:var(--bg-alt)}.post{max-width:680px}.post-header{padding-bottom:2rem;border-bottom:1px solid var(--border);margin-bottom:2.5rem}.post-meta{font-size:0.83rem;color:var(--text-muted);margin-bottom:1rem;display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem}.meta-sep{color:var(--border)}.post-title{font-size:2rem;font-weight:700;letter-spacing:-0.03em;line-height:1.2;color:var(--text)}.post-content{font-size:1rem;line-height:1.8;color:var(--text)}.post-content>*+*{margin-top:1.25rem}.post-content h2,.post-content h3,.post-content h4{font-weight:600;letter-spacing:-0.02em;line-height:1.3;margin-top:2.25rem;margin-bottom:0.75rem}.post-content h2{font-size:1.4rem}.post-content h3{font-size:1.15rem}.post-content h4{font-size:1rem}.post-content p{margin-bottom:1.25rem}.post-content ul,.post-content ol,.page-content ul,.page-content ol{padding-left:1.5rem;margin-bottom:1.25rem}.post-content li+li{margin-top:0.3rem}.post-content blockquote{border-left:3px solid var(--border);padding:0.5rem 1.25rem;margin:1.75rem 0;color:var(--text-muted);font-style:italic}.post-content code{font-family:'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Consolas', monospace;font-size:0.85em;background:var(--bg-alt);border:1px solid var(--border);padding:0.15em 0.4em;border-radius:3px}.post-content pre{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;overflow-x:auto;margin:1.5rem 0}.post-content pre code{background:none;border:none;padding:0;font-size:0.875rem;line-height:1.7}.post-content img{border-radius:var(--radius);margin:1.5rem auto;border:1px solid var(--border)}.post-content a{text-decoration:underline;text-underline-offset:3px}.post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:0.9rem}.post-content th,.post-content td{padding:0.6rem 0.85rem;border:1px solid var(--border);text-align:left}.post-content th{background:var(--bg-alt);font-weight:600}.post-content .katex-display{overflow-x:auto;overflow-y:hidden;padding:0.25rem 0 0.5rem;margin:1.5rem 0}.post-content .katex{font-size:1.05em}.post-footer{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--border)}.back-link{font-size:0.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:color 0.15s}.back-link:hover{color:var(--text);opacity:1}.page-header{padding-bottom:2rem;border-bottom:1px solid var(--border);margin-bottom:3rem}.page-title{font-size:2rem;font-weight:700;letter-spacing:-0.03em;line-height:1.2;margin-bottom:0.5rem}.page-desc{font-size:0.95rem;color:var(--text-muted)}.pub-section{margin-bottom:3.5rem}.pub-section-title{font-size:0.75rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-muted);padding-bottom:0.875rem;border-bottom:1px solid var(--border);margin-bottom:0}.pub-list{display:flex;flex-direction:column}.pub-item{display:grid;grid-template-columns:52px 1fr;gap:1.25rem;padding:1.5rem 0;border-bottom:1px solid var(--border)}.pub-year{font-size:0.8rem;font-weight:600;color:var(--text-muted);padding-top:0.15rem}.pub-title{font-size:0.95rem;font-weight:600;line-height:1.45;color:var(--text);margin-bottom:0.3rem}.pub-authors{font-size:0.83rem;color:var(--text-muted);margin-bottom:0.2rem}.pub-venue{font-size:0.83rem;color:var(--text-muted);font-style:italic;margin-bottom:0.6rem}.pub-doi{display:inline-flex;align-items:center;gap:0.25rem;font-size:0.78rem;font-weight:500;color:var(--accent)}.pub-doi:hover{opacity:0.75}.pub-abstract{font-size:0.83rem;color:var(--text-muted);line-height:1.65;margin-top:0.55rem;max-width:70ch}.pub-images{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:0.75rem}.pub-thumb{height:110px;width:auto;border-radius:6px;object-fit:cover;cursor:zoom-in;transition:transform 0.18s ease, box-shadow 0.18s ease;border:1px solid var(--border)}.pub-thumb:hover{transform:scale(1.06);box-shadow:0 4px 18px rgba(0,0,0,0.18)}.pub-lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.82);z-index:1000;align-items:center;justify-content:center}.pub-lightbox.is-open{display:flex}.pub-lightbox img{max-width:90vw;max-height:88vh;border-radius:6px;box-shadow:0 8px 40px rgba(0,0,0,0.5);object-fit:contain}.pub-lightbox-close{position:absolute;top:1rem;right:1.25rem;background:none;border:none;color:#fff;font-size:2rem;line-height:1;cursor:pointer;padding:0.25rem 0.5rem;opacity:0.8;transition:opacity 0.15s}.pub-lightbox-close:hover{opacity:1}.video-container{position:relative;width:100%;max-width:720px;aspect-ratio:16 / 9}.video-container iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:6px}.about-content{max-width:680px}.about-intro{display:flex;align-items:flex-start;gap:1.75rem;margin-bottom:3rem;padding-bottom:3rem;border-bottom:1px solid var(--border)}.about-avatar{width:172px;height:172px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--border)}.about-avatar-placeholder{width:96px;height:96px;border-radius:50%;background:var(--bg-alt);border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:2.25rem}.about-intro-text h1{font-size:1.6rem;font-weight:700;letter-spacing:-0.03em;margin-bottom:0.3rem}.about-intro-text .role{font-size:0.9rem;color:var(--text-muted);margin-bottom:0.2rem}.about-section{margin-bottom:2.75rem}.about-section-title{font-size:0.75rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1.25rem;padding-bottom:0.75rem;border-bottom:1px solid var(--border)}.about-text{font-size:0.95rem;line-height:1.8;color:var(--text);margin-bottom:1rem}.timeline{display:flex;flex-direction:column;gap:1.5rem}.tl-role{font-size:0.95rem;font-weight:600;color:var(--text);margin-bottom:0.1rem}.tl-org{font-size:0.875rem;color:var(--text);margin-bottom:0.1rem}.tl-period{font-size:0.78rem;color:var(--text-muted);margin-bottom:0.35rem}.tl-note{font-size:0.875rem;color:var(--text-muted);line-height:1.6;font-style:italic}.social-links{display:flex;flex-wrap:wrap;gap:0.625rem}.social-link{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.875rem;font-weight:500;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:0.45rem 1rem;transition:background 0.15s, border-color 0.15s}.social-link:hover{background:var(--bg-alt);border-color:var(--text-muted);opacity:1}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0;background:var(--bg);transition:background var(--transition),border-color var(--transition)}.footer-inner{display:flex;align-items:center;justify-content:space-between}.footer-copy{font-size:0.8rem;color:var(--text-muted)}.footer-nav{display:flex;gap:1.25rem}.footer-link{font-size:0.8rem;color:var(--text-muted);text-decoration:none;transition:color 0.15s}.footer-link:hover{color:var(--text);opacity:1}@media (max-width: 700px){.card-grid{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 480px){:root{--nav-height: 56px}.hero-title{font-size:1.75rem}.page-title{font-size:1.6rem}.post-title{font-size:1.6rem}.header-actions{margin-left:auto}.site-nav{display:none;position:absolute;top:calc(var(--nav-height) + var(--nav-top));left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;align-items:flex-start;padding:0.75rem 1.5rem 1rem;gap:0.125rem;z-index:99}.site-nav.is-open{display:flex}.nav-link{width:100%;padding:0.5rem 0.625rem;font-size:0.925rem}.mobile-toggle{display:flex}.card-grid{grid-template-columns:1fr}.pub-item{grid-template-columns:1fr;gap:0.25rem}.pub-year{font-size:0.78rem;padding-top:0}.about-intro{flex-direction:column;gap:1.25rem}.footer-inner{flex-direction:column;gap:0.75rem;text-align:center}}.gallery{display:flex;flex-wrap:wrap;gap:0.75rem;margin:1rem 0}.gallery figure{flex:1 1 150px;margin:0}.gallery figure img{width:100%;height:160px;object-fit:cover;border-radius:6px}.gallery figcaption{font-size:0.78rem;color:var(--text-muted);margin-top:0.3rem;text-align:center}.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.kf-col{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--card-radius);padding:1rem 1.1rem 1rem}.kf-col-label{font-size:0.7rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:0.65rem}.kf-pros .kf-col-label{color:#16a34a}.kf-cons .kf-col-label{color:#dc2626}[data-theme="dark"] .kf-pros .kf-col-label{color:#4ade80}[data-theme="dark"] .kf-cons .kf-col-label{color:#f87171}.kf-col ul{padding-left:1.1rem;margin:0}.kf-col li{font-size:0.855rem;color:var(--text-muted);line-height:1.6;margin-bottom:0.3rem}@media (max-width: 540px){.pros-cons{grid-template-columns:1fr}}.table-wrap{overflow-x:auto;margin:1.5rem 0;border-radius:var(--radius);border:1px solid var(--border)}.table-wrap table{margin:0;border:none;min-width:560px}.table-wrap th,.table-wrap td{border-left:1px solid var(--border);border-right:none;border-top:none;border-bottom:1px solid var(--border);font-size:0.835rem}.table-wrap tr:last-child td{border-bottom:none}.table-wrap th:first-child,.table-wrap td:first-child{border-left:none;font-weight:500;color:var(--text)}.references{font-size:0.855rem;color:var(--text-muted);line-height:1.75;border-top:1px solid var(--border);padding-top:1.5rem;margin-top:0.5rem}.references p{margin-bottom:0.5rem}
