.nav[data-v-5cfe0f3a]{position:fixed;inset:0 0 auto;z-index:50;height:var(--nav-h);display:flex;align-items:center;transition:background .25s ease,border-color .25s ease;border-bottom:1px solid transparent}.nav.scrolled[data-v-5cfe0f3a]{background:#f8fafcd1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--border)}.nav-inner[data-v-5cfe0f3a]{display:flex;align-items:center;justify-content:space-between;gap:18px}.brand[data-v-5cfe0f3a]{display:inline-flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:.01em}.brand img[data-v-5cfe0f3a]{border-radius:8px}.menu-btn[data-v-5cfe0f3a]{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:10px;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer}.menu-btn span[data-v-5cfe0f3a]{display:block;width:100%;height:2px;border-radius:2px;background:var(--text);transition:transform .25s ease,opacity .2s ease}.links[data-v-5cfe0f3a]{display:flex;align-items:center;gap:4px;margin-left:auto}.links a[data-v-5cfe0f3a]{padding:7px 13px;border-radius:999px;font-size:14.5px;color:var(--text-muted);transition:color .18s ease,background .18s ease}.links a[data-v-5cfe0f3a]:hover{color:var(--text);background:var(--surface)}.github-btn[data-v-5cfe0f3a]{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1px solid var(--border);border-radius:999px;font-size:14px;font-weight:600;color:var(--text);background:#96b2da0f;transition:background .18s ease,border-color .18s ease,transform .18s ease}.github-btn[data-v-5cfe0f3a]:hover{background:var(--surface-hover);border-color:#38bdf873;transform:translateY(-1px)}@media(max-width:640px){.brand[data-v-5cfe0f3a]{margin-right:auto}.menu-btn[data-v-5cfe0f3a]{display:flex}.menu-btn.open span[data-v-5cfe0f3a]:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-btn.open span[data-v-5cfe0f3a]:nth-child(2){opacity:0}.menu-btn.open span[data-v-5cfe0f3a]:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.links[data-v-5cfe0f3a]{position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;margin-left:0;padding:10px 18px 16px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 18px 30px -22px #0f172a47;display:none}.links.open[data-v-5cfe0f3a]{display:flex}.links a[data-v-5cfe0f3a]{padding:13px 14px;border-radius:12px}.links a[data-v-5cfe0f3a]:hover{background:var(--surface-hover)}.github-btn span[data-v-5cfe0f3a]{display:none}.github-btn[data-v-5cfe0f3a]{padding:8px 11px}}.hero[data-v-97a4f030]{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;padding:calc(var(--nav-h) + 44px) 0 56px}.molecule[data-v-97a4f030]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.5;animation:drift-97a4f030 18s ease-in-out infinite alternate;pointer-events:none}@keyframes drift-97a4f030{0%{transform:translate3d(0,-8px,0) scale(1)}to{transform:translate3d(0,14px,0) scale(1.04)}}.hero[data-v-97a4f030]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(640px 420px at 70% 40%,transparent,rgba(248,250,252,.7) 72%);pointer-events:none}.hero-inner[data-v-97a4f030]{position:relative;z-index:1}.badge[data-v-97a4f030]{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border:1px solid rgba(56,189,248,.35);border-radius:999px;background:#38bdf814;color:#0369a1;font-size:14px;font-weight:600}.badge[data-v-97a4f030]:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 10px var(--accent-2)}.title[data-v-97a4f030]{margin-top:18px;font-size:clamp(38px,6.4vw,62px);font-weight:800;line-height:1.12;letter-spacing:-.02em}.grad[data-v-97a4f030]{background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.lead[data-v-97a4f030]{margin-top:16px;max-width:620px;font-size:clamp(16px,2vw,19px);color:var(--text-muted)}.lead .accent[data-v-97a4f030]{color:var(--text);font-weight:600}.actions[data-v-97a4f030]{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.scroll-hint[data-v-97a4f030]{position:absolute;left:50%;bottom:26px;transform:translate(-50%);z-index:1;width:26px;height:42px;border:1.5px solid rgba(15,23,42,.35);border-radius:999px;display:flex;justify-content:center;padding-top:7px}.scroll-hint span[data-v-97a4f030]{width:4px;height:9px;border-radius:999px;background:var(--accent-1);animation:bounce-97a4f030 1.8s ease-in-out infinite}@keyframes bounce-97a4f030{0%,to{transform:translateY(0);opacity:1}55%{transform:translateY(12px);opacity:.35}}@media(prefers-reduced-motion:reduce){.molecule[data-v-97a4f030],.scroll-hint span[data-v-97a4f030]{animation:none}}@media(max-width:640px){.hero[data-v-97a4f030]{padding-top:calc(var(--nav-h) + 34px)}.scroll-hint[data-v-97a4f030]{display:none}}.about[data-v-22c555cf]{padding:72px 0}.about-grid[data-v-22c555cf]{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}.about-copy[data-v-22c555cf]{transition-delay:.05s}.about-copy .section-head[data-v-22c555cf]{margin-bottom:12px}.intro[data-v-22c555cf]{font-size:clamp(17px,2.1vw,20px);line-height:1.75}.detail[data-v-22c555cf]{margin-top:12px;color:var(--text-muted)}.facts[data-v-22c555cf]{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.fact[data-v-22c555cf]{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.fact strong[data-v-22c555cf]{font-size:24px}.fact span[data-v-22c555cf]{font-size:13.5px;color:var(--text-muted);line-height:1.45}.code-card[data-v-22c555cf]{border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:0 12px 30px -20px #0f172a40;overflow:hidden}.code-head[data-v-22c555cf]{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid var(--border);background:#96b2da0d}.dot[data-v-22c555cf]{width:11px;height:11px;border-radius:50%}.dot.red[data-v-22c555cf]{background:#f87171}.dot.amber[data-v-22c555cf]{background:#fbbf24}.dot.green[data-v-22c555cf]{background:#34d399}.file[data-v-22c555cf]{margin-left:8px;font-size:13px;color:var(--text-muted)}pre[data-v-22c555cf]{margin:0;padding:20px 18px;overflow-x:auto;font-family:Cascadia Code,JetBrains Mono,Consolas,Courier New,monospace;font-size:13.5px;line-height:1.85;color:#334155}.k[data-v-22c555cf]{color:#0284c7}.s[data-v-22c555cf]{color:#059669}.m[data-v-22c555cf]{color:#d946ef}@media(max-width:900px){.about-grid[data-v-22c555cf]{grid-template-columns:1fr;gap:28px}}@media(max-width:640px){.about[data-v-22c555cf]{padding:56px 0}}.projects[data-v-69504857]{padding:72px 0;background:linear-gradient(180deg,transparent,rgba(56,189,248,.035) 28%,rgba(45,212,191,.035) 72%,transparent)}.grid[data-v-69504857]{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card[data-v-69504857]{display:flex;flex-direction:column;padding:22px 22px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:transform .25s ease,border-color .25s ease,background .25s ease}.card[data-v-69504857]:hover{transform:translateY(-5px);border-color:#38bdf86b;background:var(--surface-hover)}.card-top[data-v-69504857]{display:flex;align-items:flex-start;justify-content:space-between}.icon[data-v-69504857]{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--border);border-radius:14px;background:#38bdf814;font-size:26px}.arrow[data-v-69504857]{color:var(--text-muted);font-size:18px;transition:color .2s ease,transform .2s ease}.card:hover .arrow[data-v-69504857]{color:var(--accent-1);transform:translate(2px,-2px)}h3[data-v-69504857]{margin-top:16px;font-size:21px;font-weight:700}.subtitle[data-v-69504857]{margin-top:3px;font-size:13.5px;font-weight:600;color:var(--accent-2)}.description[data-v-69504857]{margin-top:10px;flex:1;font-size:14.5px;color:var(--text-muted)}.tags[data-v-69504857]{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.tags span[data-v-69504857]{padding:4px 11px;border-radius:999px;border:1px solid var(--border);background:#96b2da0f;font-size:12.5px;color:#475569}.links[data-v-69504857]{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.links a[data-v-69504857]{font-size:14px;font-weight:600;color:var(--accent-1);transition:color .18s ease}.links a[data-v-69504857]:hover{color:var(--accent-2)}@media(max-width:800px){.grid[data-v-69504857]{grid-template-columns:1fr}}@media(max-width:640px){.projects[data-v-69504857]{padding:56px 0}}.pubs[data-v-05c1a93b]{padding:72px 0}.pub-card[data-v-05c1a93b]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .25s ease,background .25s ease,transform .25s ease}.pub-card[data-v-05c1a93b]:hover{border-color:#38bdf86b;background:var(--surface-hover);transform:translateY(-3px)}.journal[data-v-05c1a93b]{display:flex;align-items:center;gap:10px}.journal-name[data-v-05c1a93b]{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2)}.year[data-v-05c1a93b]{padding:2px 10px;border-radius:999px;border:1px solid var(--border);background:#96b2da0f;font-size:12.5px;color:var(--text-muted)}h3[data-v-05c1a93b]{margin-top:10px;font-size:clamp(17px,2.3vw,21px);line-height:1.55;font-weight:650}h3 a[data-v-05c1a93b]{transition:color .18s ease}h3 a[data-v-05c1a93b]:hover{color:var(--accent-1)}.summary[data-v-05c1a93b]{margin-top:8px;font-size:14.5px;color:var(--text-muted)}.doi[data-v-05c1a93b]{display:inline-block;margin-top:10px;font-family:Cascadia Code,Consolas,monospace;font-size:13px;color:var(--text-muted);transition:color .18s ease}.doi[data-v-05c1a93b]:hover{color:var(--accent-1)}.open[data-v-05c1a93b]{flex:none;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:12px;color:var(--text-muted);transition:color .2s ease,border-color .2s ease,transform .2s ease}.open[data-v-05c1a93b]:hover{color:var(--accent-1);border-color:#38bdf873;transform:translate(2px,-2px)}@media(max-width:640px){.pubs[data-v-05c1a93b]{padding:56px 0}.pub-card[data-v-05c1a93b]{padding:20px}}.footer[data-v-1c1a9a74]{padding:34px 0 28px;border-top:1px solid var(--border);background:var(--bg-soft)}.footer-inner[data-v-1c1a9a74]{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.footer-inner p[data-v-1c1a9a74]{font-size:14px;color:var(--text-muted)}.socials a[data-v-1c1a9a74]{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;color:var(--text-muted);transition:color .18s ease,border-color .18s ease}.socials a[data-v-1c1a9a74]:hover{color:var(--text);border-color:#38bdf873}.icp[data-v-1c1a9a74]{margin-top:20px;text-align:center;font-size:12.5px;color:#64748bb3}.icp a[data-v-1c1a9a74]{color:inherit;text-decoration:none;transition:color .18s ease}.icp a[data-v-1c1a9a74]:hover{color:var(--text)}.share[data-v-1c1a9a74]{margin-top:8px;text-align:center;font-size:12.5px;color:#64748bb3}.share a[data-v-1c1a9a74]{color:inherit;text-decoration:none;transition:color .18s ease}.share a[data-v-1c1a9a74]:hover{color:var(--accent-1)}:root{--bg: #f8fafc;--bg-soft: #eef2f7;--surface: rgba(15, 23, 42, .035);--surface-hover: rgba(15, 23, 42, .07);--border: rgba(15, 23, 42, .1);--text: #1e293b;--text-muted: #64748b;--accent-1: #38bdf8;--accent-2: #14b8a6;--gradient: linear-gradient(120deg, #38bdf8, #14b8a6);--radius: 14px;--nav-h: 64px;color-scheme:light;font-family:Inter,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(rgba(15,23,42,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.025) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 30%,transparent 75%)}a{color:inherit;text-decoration:none}button{font:inherit}img,svg{display:block}h1,h2,h3,p{margin:0}section{scroll-margin-top:calc(var(--nav-h) + 18px)}.container{width:min(1120px,calc(100% - 40px));margin-inline:auto}.section-head{margin-bottom:30px}.section-head .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2)}.section-head .eyebrow:before{content:"";width:24px;height:2px;border-radius:2px;background:var(--gradient)}.section-head h2{margin-top:10px;font-size:clamp(26px,3.4vw,34px);font-weight:700;letter-spacing:.01em}.section-head .desc{margin-top:10px;max-width:640px;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;font-size:15px;font-weight:600;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn-primary{color:#06101f;background:var(--gradient);box-shadow:0 8px 26px -10px #38bdf88c}.btn-ghost{color:var(--text);border:1px solid var(--border);background:#96b2da0d}.btn-ghost:hover{background:var(--surface-hover);border-color:#38bdf873}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px -10px #38bdf8a6}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.revealed{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
