:root{--color-bg:#fafafa;--color-text:#261e26;--color-accent:#7d4e6d;--color-accent-hover:#5f3a52;--color-muted:#6f616c;--color-border:#e4dde3;--color-subtle:#f6f2f5;--spacing-unit:.85rem;--max-width:800px;--transition:.2s ease}@media (prefers-color-scheme:dark){:root{--color-bg:#110d11;--color-text:#efe9ee;--color-accent:#b47fa1;--color-accent-hover:#ca9bb8;--color-muted:#a795a2;--color-border:#2b232a;--color-subtle:#1a161a}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:16px;line-height:1.7}img{pointer-events:none}.text-bold{font-weight:600}.skip-link{background:var(--color-accent);color:#fff;z-index:100;border-radius:0 0 4px;padding:8px 16px;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}.container{max-width:var(--max-width);padding:0 var(--spacing-unit);margin:0 auto}.site-header{padding:calc(var(--spacing-unit)*1.5)0;border-bottom:1px solid var(--color-border);margin-bottom:calc(var(--spacing-unit)*1.5);display:block}.main-nav{align-items:center;gap:calc(var(--spacing-unit)*2);display:block}.logo{color:var(--color-text);letter-spacing:-.02em;transition:color var(--transition);font-size:1.5rem;font-weight:700;text-decoration:none}.logo:hover{color:var(--color-accent)}.nav-list{gap:calc(var(--spacing-unit)*2);flex-wrap:wrap;justify-content:center;margin-left:auto;list-style:none;display:flex}.nav-list a{color:var(--color-muted);transition:color var(--transition);outline-offset:4px;font-size:.95rem;text-decoration:none;position:relative}.nav-list a:hover,.nav-list a:focus{color:var(--color-text)}.nav-list a:focus{outline:2px solid var(--color-accent);outline-offset:4px}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:600;line-height:1.3}h1{margin-bottom:calc(var(--spacing-unit)*.5);font-size:2.25rem}h2{margin-top:calc(var(--spacing-unit)*3);margin-bottom:calc(var(--spacing-unit)*3);padding-bottom:.5rem;font-size:1.5rem;position:relative}h2:after{content:"";background:var(--color-accent);width:40px;height:2px;position:absolute;bottom:0;left:0}h3{margin-top:calc(var(--spacing-unit)*2);margin-bottom:calc(var(--spacing-unit)*.5);font-size:1.25rem}p{margin-bottom:var(--spacing-unit);color:var(--color-text)}.brand{text-align:center}.lead{color:var(--color-muted);margin-bottom:1rem;font-size:1.15rem;line-height:1.6}.lead>a{font-size:1.1rem}.lead-2{color:var(--color-muted);margin-bottom:calc(var(--spacing-unit)*2);font-size:1rem}a{color:var(--color-accent);transition:color var(--transition);text-decoration:none}a:hover{color:var(--color-accent-hover)}a:focus{outline:2px solid var(--color-accent);outline-offset:2px}.hero{margin-bottom:calc(var(--spacing-unit)*4)}.hero-content{gap:calc(var(--spacing-unit)*2);grid-template-columns:1fr;align-items:start;display:grid}@media (min-width:768px){.hero-content{grid-template-columns:2fr 1fr}}.profile-image-wrapper{position:relative}.profile-image{object-fit:cover;filter:grayscale(20%);width:20rem;max-width:350px;transition:filter var(--transition);border-radius:4px}.profile-image:hover{filter:grayscale(0%)}.profile-image:after{content:"";border:2px solid var(--color-accent);z-index:-1;border-radius:4px;width:100%;height:100%;position:absolute;top:12px;left:12px}.card{background:var(--color-subtle);border:1px solid var(--color-border);padding:calc(var(--spacing-unit)*1.5);margin-bottom:var(--spacing-unit);transition:transform var(--transition),box-shadow var(--transition);border-radius:8px}.card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.card h3{margin-top:0}.card-meta{color:var(--color-muted);margin-bottom:calc(var(--spacing-unit)*.5);font-size:.875rem}.update-item{border-left:3px solid var(--color-border);padding-left:var(--spacing-unit);margin-bottom:calc(var(--spacing-unit)*1.5);transition:border-color var(--transition);cursor:pointer}.update-item:hover{border-left-color:var(--color-accent)}.update-item a{margin:2px;padding:2px}.update-date{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.875rem;font-weight:600}.pub-list{list-style:none}.pub-item{margin-bottom:calc(var(--spacing-unit)*2);padding:var(--spacing-unit);transition:background-color var(--transition);border-radius:4px;position:relative}.pub-item:hover{background-color:var(--color-subtle)}.pub-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;margin-bottom:.75rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.pub-sname{letter-spacing:.05em;color:#2582e0c2;background-color:#0000;border:1px solid #2582e0c2;border-radius:20px;margin-bottom:.75rem;margin-right:.75rem;padding:.5rem .75rem;font-size:.75rem;font-weight:600}.pub-title{color:var(--color-text);margin-bottom:.25rem;font-style:italic}.pub-authors{color:var(--color-muted);margin-bottom:.25rem;font-size:.9rem}.pub-venue{color:var(--color-muted);font-size:.9rem;font-style:italic}.pub-doc>span{margin-right:.5rem;font-size:.85rem;font-weight:700}.pub-doc>span>a{color:#ff0065}.thesis{margin-bottom:2.5rem}.soft-card{margin-bottom:calc(var(--spacing-unit)*2)}.soft-img{width:25%;padding:1rem}.soft-name{display:"flex";justify-content:"space-between";align-items:"flex-start";margin-bottom:"0.75rem";font-weight:600;font-size:"1.25rem";margin:0}.soft-desc{margin-bottom:"1rem";color:var(--color-text)}.soft-tags{font-size:"0.75rem";padding:"0.2rem 0.6rem"}.soft-links{display:"flex";gap:"1rem";flex-wrap:"wrap"}.soft-links+a{display:"inline-flex";align-items:"center";gap:"0.25rem";font-size:"0.9rem"}.tag{background:var(--color-subtle);border:1px solid var(--color-border);color:var(--color-muted);border-radius:20px;margin-bottom:.5rem;margin-right:.5rem;padding:.25rem .75rem;font-size:.8rem;display:inline-block}.info-box{background:var(--color-subtle);border-left:4px solid var(--color-accent);padding:calc(var(--spacing-unit)*1.5);margin:calc(var(--spacing-unit)*2)0;border-radius:4px;box-shadow:0 2px 8px #0000000d}[data-theme=dark] .info-box{box-shadow:0 2px 8px #0003}.info-box-title{color:var(--color-text);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1.1rem;font-weight:600;display:flex}.info-box-icon{color:var(--color-accent);font-size:1.25rem}.info-box p{margin-bottom:.75rem;font-size:.95rem}.info-box p:last-child{margin-bottom:0}.info-box strong{color:var(--color-text)}.info-box a{font-weight:500}.info-box.info-type-highlight{background:linear-gradient(135deg,var(--color-subtle)0%,var(--color-subtle)100%);border-left-color:var(--color-accent)}.info-box.info-type-warning{border-left-color:#d97706}.info-box.info-type-success{border-left-color:#047857}.contact-grid{gap:var(--spacing-unit);margin-top:calc(var(--spacing-unit)*2);display:grid}.contact-item{align-items:baseline;gap:1rem;display:flex}.contact-label{min-width:80px;color:var(--color-muted);font-size:.9rem;font-weight:600}.site-footer{margin-top:calc(var(--spacing-unit)*6);padding:calc(var(--spacing-unit)*2)0;border-top:1px solid var(--color-border)}.footer-content{color:var(--color-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;font-size:.875rem;display:flex}.footer-note{font-size:.8rem}.btn{background:var(--color-accent);color:#fff;transition:background-color var(--transition);cursor:pointer;border:none;border-radius:4px;padding:.75rem 1.5rem;font-weight:500;text-decoration:none;display:inline-block}.btn:hover{background:var(--color-accent-hover);color:#fff}.btn:focus,:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}ul{padding-left:0}@media (max-width:768px){h1{font-size:2rem}.nav-list{gap:1rem;font-size:.875rem}.main-nav{flex-direction:column;align-items:flex-start;gap:1rem}.nav-list{margin-left:0}.hero-content{grid-template-columns:1fr}.hero-text{order:1}.profile-image{margin:auto;display:block}.soft-card div{flex-direction:column;align-items:center}.soft-img{width:65%}}
