:root{--bg-color:#0f0f11;--bg-secondary:#18181c;--text-primary:#ede9e0;--text-secondary:#8c8880;--accent-color:#c8a86b;--accent-hover:#b8955a;--glass-bg:#16161abf;--glass-border:#ffffff12;--glass-shadow:0 4px 6px -1px #0003, 0 2px 4px -1px #0000001a;--glass-backdrop:blur(12px);--font-family:"Inter", system-ui, Avenir, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:var(--accent-color);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;margin-bottom:1rem;font-weight:700}p{color:var(--text-secondary);margin-bottom:1rem}.container{max-width:1100px;margin:0 auto;padding:0 2rem}section{padding:6rem 0}.section-title{margin-bottom:3rem;font-size:2.5rem;display:inline-block;position:relative}.section-title:after{content:"";background:var(--accent-color);border-radius:2px;width:50%;height:4px;position:absolute;bottom:-.5rem;left:0}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:6px;transition:transform .3s,box-shadow .3s}.glass-panel:hover{border-color:#fff3;transform:translateY(-5px);box-shadow:0 10px 25px -5px #0000004d,0 8px 10px -6px #0000001a}.button{background-color:var(--accent-color);color:#0f0f11;cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.button:hover{background-color:var(--accent-hover);color:#0f0f11;transform:translateY(-2px);box-shadow:0 4px 12px #c8a86b4d}.button.outline{color:var(--accent-color);border:1px solid var(--accent-color);background-color:#0000}.button.outline:hover{background-color:#c8a86b1a}.navbar{z-index:1000;border-radius:6px;width:calc(100% - 3rem);max-width:1100px;padding:1rem 2rem;position:fixed;top:1.5rem;left:50%;transform:translate(-50%)}.navbar.glass-panel:hover{box-shadow:var(--glass-shadow);border-color:var(--glass-border);transform:translate(-50%)}.navbar-container{justify-content:space-between;align-items:center;padding:0;display:flex}.navbar-logo{color:var(--text-primary);letter-spacing:-.5px;font-size:1.25rem;font-weight:700}.navbar-logo:hover{color:var(--accent-hover)}.navbar-links{align-items:center;gap:2rem;display:flex}.navbar-links a{color:var(--text-secondary);font-size:.95rem;font-weight:500;transition:color .2s}.navbar-links a:hover{color:var(--text-primary)}.navbar-cv{border-radius:4px!important;padding:.5rem 1.25rem!important}@media (width<=768px){.navbar-links a:not(.navbar-cv){display:none}}.hero-section{justify-content:space-between;align-items:center;gap:4rem;min-height:100vh;padding-top:6rem;display:flex}.hero-content{flex:1}.hero-greeting{color:var(--accent-color);margin-bottom:.5rem;font-size:1.1rem;font-weight:600;display:block}.hero-title{color:var(--text-primary);background:linear-gradient(90deg,#f8fafc 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem;font-size:4.5rem;line-height:1.1}.hero-subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:2rem;font-weight:500}.hero-description{max-width:600px;margin-bottom:3rem;font-size:1.15rem;line-height:1.8}.hero-actions{gap:1.5rem;display:flex}.hero-socials{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.75rem;font-size:.95rem;display:flex}.hero-socials a{color:var(--text-secondary);text-decoration:none;transition:color .2s}.hero-socials a:hover{color:var(--accent-color)}.hero-socials a[aria-disabled=true]{opacity:.5;cursor:default;pointer-events:none}.hero-socials-sep{color:var(--text-secondary);opacity:.5}.hero-image-wrapper{flex:.8;justify-content:center;display:flex}.hero-image-placeholder{border:1px solid var(--glass-border);background:linear-gradient(135deg,#1e293b80 0%,#0f172acc 100%);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;width:350px;height:450px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px -10px #00000080}.placeholder-silhouette{fill:#c8a86b2e;width:55%;height:auto;margin-bottom:.5rem}.placeholder-initials{letter-spacing:.3em;color:var(--text-secondary);text-transform:uppercase;font-size:.8rem;font-weight:600;position:absolute;bottom:1.5rem}@media (width<=900px){.hero-section{text-align:center;flex-direction:column-reverse;justify-content:center}.hero-description{margin:0 auto 3rem}.hero-actions{justify-content:center}.hero-image-placeholder{width:250px;height:350px}.hero-title{font-size:3.5rem}}.research-footer{text-align:center;margin-top:3rem}.research-badge{text-transform:uppercase;letter-spacing:.08em;border-radius:3px;margin-bottom:.75rem;padding:.25rem .75rem;font-size:.75rem;font-weight:700;display:inline-block}.research-list{flex-direction:column;gap:1rem;display:flex}.paper-card-link{color:inherit;text-decoration:none;display:block}.paper-arrow{color:var(--text-secondary);flex-shrink:0;font-size:1.25rem;transition:transform .2s,color .2s}.paper-card-link:hover .paper-arrow{color:var(--accent-color);transform:translate(4px)}.paper-card-link:hover{color:inherit}.paper-card{padding:2.5rem}.paper-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.paper-title-block{flex:1;min-width:0}.paper-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.4}.paper-venue{color:var(--accent-color);font-size:.95rem;font-weight:600;display:block}.paper-actions{flex-wrap:wrap;flex-shrink:0;gap:.75rem;display:flex}.paper-btn{white-space:nowrap;padding:.5rem 1.1rem;font-size:.9rem}.paper-abstract{color:var(--text-secondary);border-top:1px solid #ffffff14;margin-top:1.75rem;padding-top:1.75rem;font-size:1rem;line-height:1.75}.paper-datasets{border-top:1px solid #ffffff14;margin-top:1.75rem;padding-top:1.75rem}.datasets-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:.75rem;font-size:.85rem;font-weight:700}.datasets-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.dataset-link{align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;display:inline-flex}.dataset-link span{transition:transform .2s}.dataset-link:hover span{transform:translate(4px)}@media (width<=600px){.paper-header{flex-direction:column}.paper-actions{width:100%}.paper-btn{text-align:center;flex:1;justify-content:center}}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem;display:grid}.project-card{flex-direction:column;padding:2.5rem;transition:transform .3s,border-color .3s;display:flex}.project-title{margin-bottom:.4rem;font-size:1.5rem}.project-dates{color:var(--text-secondary);margin-bottom:1rem;font-size:.9rem;display:block}.project-desc{flex-grow:1;margin-bottom:2rem;font-size:1.05rem}.project-tags{flex-wrap:wrap;gap:.75rem;display:flex}.tag{color:var(--accent-color);background:#c8a86b1a;border:1px solid #c8a86b40;border-radius:3px;padding:.35rem .85rem;font-size:.85rem;font-weight:600}.project-link{align-items:center;gap:.4rem;margin-top:1.5rem;font-size:.95rem;font-weight:600;display:inline-flex}.project-link span{transition:transform .2s}.project-link:hover span{transform:translate(4px)}@media (width<=600px){.projects-grid{grid-template-columns:1fr}}.footer{border-top:1px solid var(--glass-border);background-color:var(--bg-secondary);margin-top:5rem;padding-top:4rem}.footer-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:3rem;display:flex}.footer-info h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.5rem}.footer-info p{color:var(--text-secondary);margin:0}.footer-links{gap:1.5rem;display:flex}.footer-links a{color:var(--text-secondary);font-weight:500;transition:color .2s}.footer-links a:hover{color:var(--accent-color)}.footer-bottom{text-align:center;border-top:1px solid var(--glass-border);color:var(--text-secondary);padding:1.5rem 0;font-size:.9rem}@media (width<=600px){.footer-content{text-align:center;flex-direction:column}}.detail-page{min-height:100vh;padding:8rem 0 6rem}.detail-not-found{flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:100vh;display:flex}.detail-back{color:var(--text-secondary);margin-bottom:2.5rem;font-size:.95rem;font-weight:500;transition:color .2s;display:inline-block}.detail-back:hover{color:var(--text-primary)}.detail-header{margin-bottom:3rem}.detail-title{letter-spacing:-.02em;margin-top:.75rem;margin-bottom:.75rem;font-size:2rem;line-height:1.3}.detail-venue{color:var(--accent-color);margin-bottom:0;font-size:1rem;font-weight:600}.detail-section{margin-bottom:2rem;padding:2.5rem}.detail-section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:1.25rem;font-size:.8rem;font-weight:700}.detail-abstract{color:var(--text-secondary);margin-bottom:0;font-size:1.05rem;line-height:1.8}.detail-list{flex-direction:column;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.detail-link{align-items:center;gap:.4rem;font-size:1rem;font-weight:600;display:inline-flex}.detail-link span{transition:transform .2s}.detail-link:hover span{transform:translate(4px)}.detail-link-desc{color:var(--text-secondary);margin-top:.25rem;margin-bottom:0;font-size:.9rem}.detail-empty p{color:var(--text-secondary);margin:0;font-style:italic}.research-badge{text-transform:uppercase;letter-spacing:.08em;border-radius:3px;padding:.25rem .75rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-publication{color:var(--accent-color);background:#c8a86b26;border:1px solid #c8a86b4d}.badge-presentation{color:#9db89d;background:#a0b4a01f;border:1px solid #a0b4a040}.badge-draft{color:#c4956a;background:#b48c641f;border:1px solid #b48c6440}@media (width<=768px){.detail-title{font-size:1.5rem}}.cv-page{min-height:100vh;padding:8rem 0 6rem}.cv-back{color:var(--text-secondary);margin-bottom:2.5rem;font-size:.95rem;font-weight:500;transition:color .2s;display:inline-block}.cv-back:hover{color:var(--text-primary)}.cv-header{border-bottom:1px solid var(--glass-border);margin-bottom:1.25rem;padding-bottom:1rem}.cv-name{letter-spacing:-.03em;margin-bottom:.35rem;font-size:3rem;line-height:1.1}.cv-tagline{color:var(--text-secondary);margin-bottom:.75rem;font-size:1.15rem}.cv-contact{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.95rem;display:flex}.cv-contact a{color:var(--text-secondary);text-decoration:none;transition:color .2s}.cv-contact a:hover{color:var(--accent-color)}.cv-contact-sep{color:var(--text-secondary);opacity:.5}.cv-actions{flex-wrap:wrap;gap:1rem;display:flex}.cv-actions button.button{font-family:inherit}.cv-layout{grid-template-columns:200px 1fr;align-items:start;gap:3rem;display:grid}.cv-sidebar{align-self:start;position:sticky;top:7rem}.cv-nav{border-left:1px solid var(--glass-border);flex-direction:column;gap:.5rem;padding:1.25rem 1rem;display:flex}.cv-nav-title{text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary);margin-bottom:.25rem;font-size:.75rem;font-weight:700}.cv-nav a{color:var(--text-secondary);padding:.25rem 0;font-size:.9rem;text-decoration:none;transition:color .2s,padding-left .2s}.cv-nav a:hover{color:var(--accent-color);padding-left:.25rem}.cv-section{margin-bottom:4rem;padding:0;scroll-margin-top:6rem}.cv-section-title{text-transform:uppercase;letter-spacing:.12em;color:var(--accent-color);border-bottom:1px solid var(--glass-border);margin-top:0;margin-bottom:.9rem;padding-bottom:.4rem;font-size:.85rem;font-weight:700}.cv-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.cv-entry{grid-template-columns:200px 1fr;align-items:start;gap:1.5rem;display:grid}.cv-entry-date{color:var(--text-secondary);padding-top:.15rem;font-size:.9rem;font-weight:500}.cv-entry-body-full{grid-column:1/-1}.cv-entry-primary{color:var(--text-primary);margin-bottom:.25rem;font-size:1.05rem;font-weight:600}.cv-entry-primary a{color:var(--text-primary);border-bottom:1px solid var(--accent-color);text-decoration:none;transition:color .2s}.cv-entry-primary a:hover{color:var(--accent-color)}.cv-entry-secondary{color:var(--text-secondary);margin-bottom:.25rem;font-size:.95rem}.cv-entry-secondary a{color:var(--text-secondary);border-bottom:1px dotted var(--text-secondary);transition:color .2s,border-color .2s}.cv-entry-secondary a:hover{color:var(--accent-color);border-color:var(--accent-color)}.cv-entry-role{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;font-style:italic}.cv-entry-quote{color:var(--text-secondary);margin-top:.25rem;font-size:.95rem;font-style:italic}.cv-bullets{flex-direction:column;gap:.3rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.cv-bullets li{color:var(--text-secondary);padding-left:1.25rem;font-size:.95rem;line-height:1.6;position:relative}.cv-bullets li:before{content:"—";color:var(--accent-color);position:absolute;left:0}.cv-bullets strong{color:var(--text-primary);font-weight:600}.cv-skills{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2.5rem;display:grid}.cv-skill-heading{color:var(--text-primary);margin-bottom:.75rem;font-size:1rem}@media (width<=900px){.cv-layout{grid-template-columns:1fr;gap:1.5rem}.cv-sidebar{position:static;top:auto}.cv-nav{border-left:none;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);flex-flow:wrap;gap:.25rem 1rem;padding:1rem}.cv-nav-title{width:100%;margin-bottom:.25rem}}@media (width<=700px){.cv-name{font-size:2.25rem}.cv-entry{grid-template-columns:1fr;gap:.4rem}.cv-entry-date{color:var(--accent-color);padding-top:0;font-size:.85rem;font-weight:600}}@page{size:Letter;margin:.5in .6in .55in}@media print{.navbar,.cv-back,.cv-actions,.cv-sidebar,footer{display:none!important}html,body{font-size:10.5pt;line-height:1.42;color:#111!important;background:#fff!important;margin:0!important;padding:0!important;font-family:Georgia,Charter,Source Serif Pro,Cambria,serif!important}.cv-page{min-height:0!important;margin:0!important;padding:0!important}.cv-page .container{max-width:none!important;margin:0!important;padding:0!important}.cv-layout{gap:0!important;display:block!important}.cv-main{margin:0!important;padding:0!important}.cv-header{border:none!important;margin:0 0 12pt!important;padding:0!important}.cv-name{letter-spacing:-.01em;font-size:22pt;line-height:1.1;color:#000!important;margin:0 0 .05rem!important}.cv-tagline{font-size:11pt;color:#333!important;margin:0 0 .15rem!important}.cv-contact{gap:.3rem;font-size:9pt;color:#333!important;margin:0!important}.cv-contact a{text-decoration:none;color:#000!important}.cv-contact-sep{opacity:.7}.cv-section{margin:0 0 18pt!important;padding:0!important}.cv-section-title{letter-spacing:.08em;break-after:avoid;page-break-after:avoid;font-size:10.5pt;font-weight:700;color:#000!important;border-bottom:1px solid #666!important;margin:0 0 .18rem!important;padding:0 0 .1rem!important;font-family:Georgia,Charter,Source Serif Pro,Cambria,serif!important}.cv-list{gap:.3rem!important;margin:0!important;padding:0!important}.cv-entry{break-inside:avoid;page-break-inside:avoid;grid-template-columns:1.35in 1fr!important;gap:.5rem!important}.cv-entry-date{padding-top:.05rem;font-size:9.5pt;font-weight:400;color:#444!important}.cv-entry-primary{margin-bottom:.1rem;font-size:10.5pt;font-weight:700;color:#000!important}.cv-entry-primary a{border-bottom:none;text-decoration:none;color:#000!important}.cv-entry-secondary{margin-bottom:.1rem;font-size:10pt;color:#333!important}.cv-entry-secondary a{border-bottom:none;text-decoration:none;color:#333!important}.cv-entry-role,.cv-entry-quote{font-size:9.5pt;color:#444!important}.cv-bullets{gap:.15rem;margin-top:.2rem}.cv-bullets li{padding-left:1rem;font-size:10pt;line-height:1.4;color:#222!important}.cv-bullets li:before,.cv-bullets strong{color:#000!important}.cv-skills{gap:.55rem 1.5rem}.cv-skill-heading{margin-bottom:.2rem;font-size:10.5pt;color:#000!important}a{text-decoration:none;color:#000!important}p,li{orphans:3;widows:3}}.teaching-main{max-width:900px}.teaching-note{color:var(--text-secondary);margin-top:2rem;font-size:.95rem;font-style:italic}@media print{.teaching-note{font-size:10pt;color:#444!important;margin-top:18pt!important}}
