@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Work+Sans:wght@300;400;500;600&display=swap";:root{--font-display: "Space Grotesk", "Segoe UI", sans-serif;--font-body: "Work Sans", "Segoe UI", sans-serif;--bg: #f2f5f7;--surface: #ffffff;--surface-muted: #f1f4f7;--ink: #1f2732;--ink-strong: #121822;--muted: #6a7785;--accent: #2e8b77;--accent-strong: #1d6a5a;--highlight: #f0b429;--border: rgba(20, 28, 38, .08);--shadow: 0 18px 40px rgba(15, 20, 27, .08);--ring: rgba(46, 139, 119, .18);--bg-image: url(/bg-custom.png);--bg-blur: 12px;--bg-mask: rgba(242, 245, 247, .48);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--font-body);background:var(--bg)}body:before{content:"";position:fixed;inset:0;z-index:-1;background-image:var(--bg-image);background-position:center;background-repeat:no-repeat;background-size:cover;filter:blur(var(--bg-blur));transform:scale(1.06);transform-origin:center}body:after{content:"";position:fixed;inset:0;z-index:-1;background:var(--bg-mask)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}#root{min-height:100vh}:root[data-theme=dark]{--bg: #0f141b;--surface: #151c24;--surface-muted: #111821;--ink: #e6edf3;--ink-strong: #f4f7fb;--muted: #9aa7b4;--accent: #44c2a6;--accent-strong: #2aa68b;--highlight: #f5c453;--border: rgba(230, 237, 243, .12);--shadow: 0 20px 40px rgba(2, 6, 12, .4);--ring: rgba(68, 194, 166, .3);--bg-mask: rgba(15, 20, 27, .58)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f141b;--surface: #151c24;--surface-muted: #111821;--ink: #e6edf3;--ink-strong: #f4f7fb;--muted: #9aa7b4;--accent: #44c2a6;--accent-strong: #2aa68b;--highlight: #f5c453;--border: rgba(230, 237, 243, .12);--shadow: 0 20px 40px rgba(2, 6, 12, .4);--ring: rgba(68, 194, 166, .3);--bg-mask: rgba(15, 20, 27, .58)}}.app-shell{min-height:100vh;background:transparent;transition:background-color .25s ease,color .25s ease}.app-content{padding:88px 20px 56px;width:min(980px,100%);margin:0 auto}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);transition:background-color .25s ease,border-color .25s ease}@supports (background: color-mix(in srgb,#000 50%,#fff)){.site-header{background:color-mix(in srgb,var(--bg) 88%,transparent)}}.brand{display:flex;align-items:center;gap:14px}.brand-mark{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--accent);color:#f7f9fb;font-family:var(--font-display);font-weight:700;letter-spacing:1px;box-shadow:0 10px 18px #1d6a5a2e;transition:background-color .25s ease,box-shadow .25s ease}.brand-text{display:flex;flex-direction:column;padding:0%}.brand-title{height:24px;font-family:var(--font-display);font-size:1.1rem;color:var(--ink-strong)}.brand-subtitle{font-size:.85rem;color:var(--muted)}.nav-desktop{display:flex;align-items:center;gap:18px}.nav-mobile-actions{display:flex;align-items:center;gap:8px}.nav-menu{border-bottom:none;background:transparent;font-weight:600}.nav-menu .ant-menu-item{padding-inline:0;margin-inline:10px}.nav-menu .ant-menu-item-selected{color:var(--accent-strong)}.nav-menu .ant-menu-item-selected:after{border-bottom-color:var(--accent-strong);color:var(--ink-strong)}.cta-button{border-radius:999px;padding:0 20px;height:38px;background:var(--accent);border:none;box-shadow:none;transition:background-color .25s ease,transform .2s ease}.cta-button a,.cta-button a:visited{color:#fff}.nav-toggle{border-radius:999px;height:40px;border:1px solid var(--border);background:var(--surface)}.theme-toggle{border-radius:999px;height:38px;min-width:38px;width:38px;padding:0;border:1px solid var(--border);background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;transition:background-color .25s ease,border-color .25s ease,transform .2s ease}.theme-toggle:hover{transform:translateY(-1px)}.theme-toggle-icon{display:inline-flex;font-size:1rem;line-height:1;transition:transform .3s ease}:root[data-theme=dark] .theme-toggle-icon{transform:rotate(12deg)}.drawer-menu{border:none}.drawer-menu .ant-menu-item-selected{color:var(--accent-strong)}.page{display:flex;flex-direction:column;gap:32px}.hero{display:grid;gap:24px;padding:28px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease}.hero-title{font-family:var(--font-display);font-size:clamp(2rem,2vw + 1.6rem,3rem);line-height:1.15;margin:0;color:var(--ink-strong)}.hero-lead{font-size:1rem;color:var(--muted);max-width:520px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-card{background:var(--surface-muted);border-radius:16px;border:1px solid var(--border);transition:background-color .25s ease,border-color .25s ease}.avatar-wrap{margin-bottom:16px}.avatar-image{width:120px;height:120px;border-radius:20px;border:1px solid var(--border);background:var(--surface)}.section{display:flex;flex-direction:column;gap:24px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.section-kicker{text-transform:uppercase;letter-spacing:2px;font-size:.7rem;color:var(--muted);font-weight:600}.section-title{font-family:var(--font-display);font-size:1.8rem;margin:8px 0 0;color:var(--ink-strong)}.section-body{display:grid;gap:20px}.section-actions{display:flex;align-items:center}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.project-card{border-radius:18px;border:1px solid var(--border);background:var(--surface);box-shadow:none;transition:background-color .25s ease,border-color .2s ease,transform .2s ease}.project-card:hover{transform:translateY(-3px);border-color:var(--ring)}.project-meta{display:flex;justify-content:space-between;align-items:baseline}.project-year{color:var(--muted);font-weight:600}.project-desc{color:var(--muted)}.project-actions{margin-top:8px}.site-footer{padding:32px 24px 48px;text-align:center;color:var(--muted)}.footer-links{display:flex;justify-content:center;gap:16px;margin-top:12px;flex-wrap:wrap}.contact-card{border-radius:18px;border:1px solid var(--border);background:var(--surface);transition:background-color .25s ease,border-color .25s ease}.contact-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.contact-link-card{border-radius:18px;border:1px solid var(--border);background:var(--surface);transition:background-color .25s ease,border-color .25s ease}.contact-logo-link{width:72px;height:72px;border-radius:14px;border:1px solid var(--border);background:var(--surface-muted);display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,border-color .2s ease,background-color .25s ease}.contact-logo-link:hover{transform:translateY(-2px);border-color:var(--ring)}.contact-logo-image{width:48px;height:48px;object-fit:contain}.github-alert{margin-bottom:12px}.event-item{display:grid;gap:4px}.event-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.event-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:12px}.event-icon{line-height:1}.event-title{color:var(--ink-strong)}.timeline-loading{display:grid;gap:12px}.event-empty-state{display:grid;justify-items:center;gap:10px;padding:20px 12px;border:1px dashed var(--border);border-radius:16px;background:var(--surface-muted)}.event-empty-tip{color:var(--muted);font-size:13px}@media(max-width:768px){.app-content{padding-top:80px}.hero{padding:22px}.section-head{align-items:flex-start}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .site-header{background:color-mix(in srgb,var(--bg) 84%,transparent)}:root:not([data-theme=light]) .brand-mark{box-shadow:none}:root:not([data-theme=light]) .hero,:root:not([data-theme=light]) .project-card,:root:not([data-theme=light]) .contact-card{box-shadow:none}}:root[data-theme=dark] .site-header{background:color-mix(in srgb,var(--bg) 84%,transparent)}:root[data-theme=dark] .brand-mark{box-shadow:none}:root[data-theme=dark] .hero,:root[data-theme=dark] .project-card,:root[data-theme=dark] .contact-card{box-shadow:none}
