@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/14e23f9b59180572-s.0t8ljjjn9wtsx.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/14e23f9b59180572-s.0t8ljjjn9wtsx.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/14e23f9b59180572-s.0t8ljjjn9wtsx.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/14e23f9b59180572-s.0t8ljjjn9wtsx.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(../media/14e23f9b59180572-s.0t8ljjjn9wtsx.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:900;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:900;font-display:swap;src:url(../media/14e23f9b59180572-s.0t8ljjjn9wtsx.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:900;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:900;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display Fallback;src:local(Times New Roman);ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.0%;size-adjust:111.26%}.playfair_display_eded008e-module__P4st-q__className{font-family:Playfair Display,Playfair Display Fallback;font-style:normal}.playfair_display_eded008e-module__P4st-q__variable{--font-title:"Playfair Display", "Playfair Display Fallback"}
@font-face{font-family:Titillium Web;font-style:normal;font-weight:200;font-display:swap;src:url(../media/f35ea2cdbf389273-s.1ds_fqpqu6kdo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Titillium Web;font-style:normal;font-weight:200;font-display:swap;src:url(../media/702dcce5e58e3fe9-s.p.15hwi-kmbp6w2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Titillium Web;font-style:normal;font-weight:300;font-display:swap;src:url(../media/e8010765dd57f6af-s.3aectgh9xjnmi.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Titillium Web;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5c27158bc5efb2d9-s.p.2cxxrf_qfjolf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Titillium Web;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a62ab0e1e181adab-s.27j-o86gye2re.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Titillium Web;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fd3f2d7cff5f3729-s.p.3pzoh97cr95ga.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Titillium Web;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07952daa7535c4b2-s.3_l-kzejbq-3w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Titillium Web;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d88fc5ebcdbec3b6-s.p.1xat24709ezgo.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Titillium Web;font-style:normal;font-weight:700;font-display:swap;src:url(../media/54f0b10c7fed6080-s.0pj6qr705-0yc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Titillium Web;font-style:normal;font-weight:700;font-display:swap;src:url(../media/202f69fb654d2e8e-s.p.1v_zr0njtshul.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Titillium Web;font-style:normal;font-weight:900;font-display:swap;src:url(../media/fef736c6abc555dc-s.2jkqn6szlkjql.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Titillium Web;font-style:normal;font-weight:900;font-display:swap;src:url(../media/6fa46fa596aaf4bc-s.p.1-2x1wpjkw-25.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Titillium Web Fallback;src:local(Arial);ascent-override:119.97%;descent-override:41.09%;line-gap-override:0.0%;size-adjust:94.44%}.titillium_web_a99625ac-module__vHh2Ya__className{font-family:Titillium Web,Titillium Web Fallback;font-style:normal}.titillium_web_a99625ac-module__vHh2Ya__variable{--font-sans:"Titillium Web", "Titillium Web Fallback"}
:root{--bg-color:#fafafa;--text-primary:#09090b;--text-secondary:#71717a;--border-color:#e4e4e7;--accent-color:#000;--accent-color-light:#3f3f46;--hover-bg:#f4f4f5;--font-mono:"Geist Mono", monospace}html{scroll-behavior:smooth}body{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13.5px;line-height:1.625}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--border-color)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.container{flex-direction:column;justify-content:space-between;max-width:950px;min-height:100vh;margin:0 auto;padding:5rem 2rem;display:flex}@media (max-width:768px){.container{padding:3rem 1.2rem}}header{margin-bottom:3.5rem}.header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;display:flex}.title-group h1{font-family:var(--font-title);letter-spacing:-.02em;text-transform:none;color:var(--accent-color);font-size:3.2rem;font-weight:400;line-height:1.05}.title-group p.subtitle{color:var(--text-secondary);letter-spacing:-.02em;margin-top:.5rem;font-size:1.25rem;font-weight:300}.title-group p.qualification{color:var(--text-primary);text-transform:uppercase;letter-spacing:.1em;opacity:.8;font-size:.8rem;font-family:var(--font-mono);margin-top:.4rem}.ticker-container{color:var(--text-primary);align-items:center;gap:.5rem;margin-top:1rem;font-size:1.1rem;font-weight:500;display:flex}.ticker-text{color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;font-weight:600;font-family:var(--font-mono);padding-bottom:2px;font-size:1rem;transition:all .3s}.lang-switch{font-family:var(--font-mono);gap:.3rem;font-size:.8rem;display:flex}.lang-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;transition:color .2s}.lang-btn.active{color:var(--text-primary);font-weight:700}.lang-btn:hover{color:var(--text-primary)}.contact-info{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.1rem;padding:1.4rem 0;font-size:.82rem;display:flex}.contact-info div{flex-direction:column;display:flex}.contact-info span.label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-family:var(--font-mono);margin-bottom:.2rem}.contact-info a{color:var(--text-primary);text-decoration:none;transition:opacity .2s}.contact-info a:hover{text-decoration:underline}.academic-ids{flex-wrap:wrap;gap:1.8rem;margin-top:1.5rem;font-size:.8rem;display:flex}.academic-ids a{color:var(--text-secondary);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);padding-bottom:2px;text-decoration:none;transition:all .2s}.academic-ids a:hover{color:var(--text-primary);border-bottom-color:var(--text-primary)}.section-nav{border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:.8rem 2rem;margin-bottom:3.5rem;padding-bottom:.5rem;transition:margin-bottom .25s;display:flex}.section-nav.has-subnav{margin-bottom:.85rem}.sub-section-nav{border-bottom:1px dashed var(--border-color);flex-wrap:wrap;align-items:center;gap:.6rem 1.35rem;margin-bottom:3rem;padding:.35rem 0 .75rem .6rem;animation:.35s cubic-bezier(.16,1,.3,1) forwards slideUpFade;display:flex}.sub-nav-prefix{color:var(--text-secondary);font-family:var(--font-mono);opacity:.65;-webkit-user-select:none;user-select:none;margin-right:-.4rem;font-size:.8rem}.sub-nav-link{color:var(--text-secondary);font-family:var(--font-title);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:0 0;border:none;padding:.15rem 0;font-size:.76rem;font-weight:400;transition:all .2s;position:relative}.sub-nav-link:after{content:"";background-color:var(--text-primary);transform-origin:0;width:100%;height:1.5px;transition:transform .22s;position:absolute;bottom:-3px;left:0;transform:scaleX(0)}.sub-nav-link.active{color:var(--text-primary);font-weight:700}.sub-nav-link.active:after{transform:scaleX(1)}.sub-nav-link:hover{color:var(--text-primary)}.sub-nav-link:hover:after{transform:scaleX(1)}.nav-link{color:var(--text-secondary);font-family:var(--font-title);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:0 0;border:none;padding:.2rem 0;font-size:.85rem;font-weight:400;transition:all .25s,transform .2s;position:relative}.nav-link:after{content:"";background-color:var(--text-primary);transform-origin:0;width:100%;height:2px;transition:transform .25s;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav-link.active{color:var(--text-primary);font-weight:700}.nav-link.active:after{transform:scaleX(1)}.nav-link:hover{color:var(--text-primary);transform:scale(1.03)}.nav-link:hover:after{transform:scaleX(1)}.active-section-container{min-height:350px}.cv-section{grid-template-columns:180px 1fr;gap:3rem;animation:.6s cubic-bezier(.16,1,.3,1) forwards slideUpFade;display:grid}@media (max-width:768px){.cv-section{grid-template-columns:1fr;gap:1.5rem}}.cv-section h2{font-family:var(--font-title);text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary);font-size:.9rem;font-weight:400}.cv-section-content{width:100%}.bio-content{text-align:justify;color:var(--text-primary);letter-spacing:-.01em;max-width:700px;font-size:1.05rem;font-weight:300;line-height:1.7}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border-color);grid-template-columns:130px 1fr;align-items:flex-start;gap:2.5rem;padding:1.5rem 0;transition:background-color .2s;display:grid}.list-item:first-child{padding-top:0}.list-item:last-child{border-bottom:none;padding-bottom:0}.list-item:hover{background-color:var(--hover-bg)}@media (max-width:600px){.list-item{grid-template-columns:1fr;gap:.3rem;padding:1rem 0}}.item-meta{color:var(--text-secondary);font-size:.85rem;font-family:var(--font-mono);white-space:pre-line;padding-top:.25rem;font-weight:400}.item-content h3{color:var(--accent-color);letter-spacing:-.01em;margin-top:0;margin-bottom:.3rem;font-size:1.05rem;font-weight:700}.item-content .subtitle{color:var(--text-secondary);margin-bottom:.5rem;font-size:.85rem}.item-content .description{color:var(--text-primary);font-size:.9rem;font-weight:300}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;display:flex}.filter-btn{border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:.3rem .6rem;font-size:.75rem;transition:all .2s}.filter-btn.active{border-color:var(--text-primary);color:var(--text-primary);background-color:var(--hover-bg)}.filter-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.pub-list{flex-direction:column;gap:1.8rem;display:flex}.pub-item{border-left:1px solid var(--border-color);padding-left:1.2rem;transition:border-color .25s}.pub-item:hover{border-left-color:var(--text-primary)}.pub-meta{color:var(--text-secondary);font-size:.8rem;font-family:var(--font-mono);margin-bottom:.3rem}.pub-title{color:var(--accent-color);letter-spacing:-.01em;margin-bottom:.3rem;font-size:1rem;font-weight:700;line-height:1.45}.pub-details{color:var(--text-secondary);font-size:.85rem;font-weight:300}.pub-abstract{color:var(--text-secondary);border-top:1px dashed var(--border-color);margin-top:.5rem;padding-top:.4rem;font-size:.85rem;font-style:italic;line-height:1.5}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2.5rem;display:grid}.skill-category h3{text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-color);letter-spacing:.05em;font-size:.85rem;font-family:var(--font-mono);margin-bottom:1.2rem;padding-bottom:.3rem}.skill-list{flex-direction:column;gap:.8rem;display:flex}.skill-item{justify-content:space-between;font-size:.85rem;display:flex}.skill-name{color:var(--text-primary)}.skill-level{color:var(--text-secondary);font-family:var(--font-mono);font-size:.8rem}@keyframes revealText{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-reveal{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards revealText}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.18s}.delay-3{animation-delay:.28s}.delay-4{animation-delay:.38s}.delay-5{animation-delay:.48s}.admin-container{max-width:900px;margin:0 auto;padding:5rem 2rem}.admin-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:1.5rem;display:flex}.admin-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.08em;font-size:.8rem;font-family:var(--font-mono)}.form-group input,.form-group textarea{background-color:var(--hover-bg);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-mono);outline:none;padding:.8rem;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--text-primary)}.form-group textarea.json-area{white-space:pre;overflow-wrap:normal;min-height:500px;font-size:.8rem;line-height:1.5;overflow-x:auto}.btn{background-color:var(--text-primary);color:var(--bg-color);font-family:var(--font-mono);cursor:pointer;text-transform:uppercase;letter-spacing:.08em;border:none;padding:.8rem 1.6rem;font-size:.8rem;font-weight:700;transition:background-color .2s,opacity .2s,transform .2s}.btn:hover{opacity:.9;transform:scale(1.03)}.btn-secondary{border:1px solid var(--border-color);color:var(--text-primary);background:0 0}.btn-secondary:hover{background-color:var(--hover-bg)}.error-msg{color:#ef4444;margin-top:.5rem;font-size:.85rem}.success-msg{color:#10b981;margin-top:.5rem;font-size:.85rem}footer{border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);margin-top:8rem;padding-top:2.5rem;font-size:.75rem}footer a{color:var(--text-secondary);text-decoration:none}footer a:hover{color:var(--text-primary);text-decoration:underline}.academic-chart-container{scrollbar-width:thin;overflow-y:hidden}.academic-chart-container::-webkit-scrollbar{height:3px}.academic-chart-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(5px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes fillPolygon{0%{opacity:0}to{opacity:.35}}@keyframes growBar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes growBarHoriz{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fadeInGrid{0%{opacity:0}to{opacity:1}}.animate-fade-in{opacity:0;animation:.8s forwards fadeInGrid}.chart-area-polygon{animation:1.5s .4s forwards fillPolygon}.chart-line-draw{stroke-dasharray:1000;stroke-dashoffset:1000px;animation:2s cubic-bezier(.16,1,.3,1) .1s forwards drawLine}.chart-spline-path{stroke-dasharray:1000;stroke-dashoffset:1000px;animation:2s cubic-bezier(.16,1,.3,1) .3s forwards drawLine}.chart-bar-project{animation:.8s cubic-bezier(.16,1,.3,1) forwards growBarHoriz;transform:scaleX(0)}.chart-bar-teaching{animation:.8s cubic-bezier(.16,1,.3,1) forwards growBar;transform:scaleY(0)}.chart-bar-project:hover{transition:fill .2s,opacity .2s;fill:var(--text-primary)!important;opacity:1!important}.chart-bar-teaching:hover{transition:fill .2s,opacity .2s;fill:var(--text-primary)!important;stroke:var(--text-primary)!important;opacity:1!important}.academic-chart-tooltip{background-color:var(--text-primary);color:var(--bg-color);font-size:11px;font-family:var(--font-sans);pointer-events:none;z-index:10;border:1px solid var(--accent-color-light);border-radius:4px;max-width:300px;padding:.6rem .8rem;animation:.2s cubic-bezier(.16,1,.3,1) forwards tooltipFadeIn;box-shadow:0 4px 12px #00000026}.academic-chart-tooltip .tooltip-header{font-family:var(--font-mono);border-bottom:1px solid #fff3;justify-content:space-between;gap:1.5rem;margin-bottom:5px;padding-bottom:3px;font-size:9.5px;font-weight:700;display:flex}.academic-chart-tooltip .tooltip-title{color:#fff;margin-bottom:4px;font-weight:700;line-height:1.35}.academic-chart-tooltip .tooltip-meta{color:var(--border-color);font-size:9.5px}@keyframes flashHighlight{0%{background-color:var(--hover-bg);box-shadow:inset 4px 0 0 0 var(--text-primary)}30%{background-color:var(--hover-bg);box-shadow:inset 4px 0 0 0 var(--text-primary)}to{background-color:#0000;box-shadow:inset 0 0 #0000}}.list-item:target{animation:2.5s cubic-bezier(.16,1,.3,1) forwards flashHighlight}.chart-bubble{cursor:pointer;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .2s!important}.chart-bubble:hover{opacity:1!important;transform:scale(1.15)!important}.chart-event-tick{transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .2s!important}.chart-event-tick:hover{opacity:1!important;stroke:var(--text-primary)!important;transform:scaleY(1.3)!important}
