:root{--text:#3c3c3c;--text-d:#fff;--text-h:#1a1a1a;--bg:#fff;--border:#acacac;--date-bg:#1a1a1a;--code-bg:#f4f3ec;--accent:#009908;--accent-bg:#3bff4f26;--accent-border:#3bff4880;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#a3aca6;--text-d:#111412;--text-h:#f1f5f2;--bg:#111412;--border:#2a2f2c;--code-bg:#1b201d;--date-bg:#e8ece9;--accent:#4ade80;--accent-bg:#4ade8026;--accent-border:#4ade8080;--social-bg:#1b201d99;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}:root[data-theme=dark] #social .button-icon{filter:invert()brightness(2)}#root{text-align:center;box-sizing:border-box;flex-direction:column;min-height:100svh;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.horizontal-container{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.icon{max-width:15%;height:auto;margin-right:10%}.about-me p{width:90%}.navbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:right;align-items:center;gap:16px;padding:20px 32px;display:flex}.navbar ul{gap:8px;margin:0;padding:0;list-style:none;display:flex}.navbar a{color:var(--text);border-radius:6px;padding:6px 12px;text-decoration:none;transition:background .2s}.navbar a:hover{color:var(--text-h);background:var(--accent-bg)}.navbar a.active{color:var(--accent);background:var(--accent-bg)}.navbar .navbar-brand{font-family:var(--mono);color:var(--text-h);padding-left:0}.navbar .navbar-brand:hover,.navbar .navbar-brand.active{color:var(--text-h);background:0 0}.theme-selector{border:1px solid var(--border);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:8px;transition:background .2s;display:inline-flex}.theme-selector:hover{background:var(--accent-bg)}.page{text-align:left;flex:1;margin-left:20px;padding:32px}.page-header{margin-top:20px;margin-bottom:40px}.page-header h1{margin-bottom:30px;font-size:50px}.page-header p{font-size:25px}.section{margin-bottom:40px}.stack{flex-direction:column;gap:20px;display:flex}.card{border:1px solid var(--border);border-radius:8px;padding:24px;transition:box-shadow .3s}.card:hover{box-shadow:var(--shadow)}.card a{color:var(--accent);text-decoration:none}.tags{flex-wrap:wrap;gap:8px;margin:16px 0;padding:0;list-style:none;display:flex}.tags li,.tag{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:2px 8px;font-size:14px}.tag{vertical-align:middle;letter-spacing:normal;white-space:nowrap;margin-left:10px;font-weight:400;line-height:normal;display:inline-block;position:relative;top:-2px}.highlights{width:90%;margin:16px 0 0;padding:0;list-style:none}.highlights li{border-bottom:1px solid var(--border);grid-template-columns:110px 1fr;gap:16px;padding:12px 0;display:grid}.highlights li:last-child{border-bottom:none}.highlights a{color:var(--accent);text-decoration:none}.highlight-date{font-family:var(--mono);color:var(--text-h);padding-top:2px;font-size:14px}@media (width<=600px){.highlights li{grid-template-columns:1fr;gap:4px}}.expandable{padding:0}.expandable-header{cursor:pointer;align-items:center;gap:16px;padding:20px 24px;display:flex}.expandable-header.static{cursor:default}.expandable-title{flex:1;min-width:0}.expandable-title h2{margin:0;font-size:18px}.expandable-subtitle{margin-top:6px;font-size:15px}.expandable-subtitle .tags{margin:4px 0 0}.expandable-trailing{align-items:center;gap:12px;display:flex}.expandable-trailing:empty{display:none}.expandable-toggle{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:6px;transition:background .2s,color .2s;display:inline-flex}.expandable-toggle svg{transition:transform .2s}.expandable-header:hover .expandable-toggle{color:var(--accent);background:var(--accent-bg)}.expandable.open .expandable-toggle svg{transform:rotate(180deg)}.expandable-body{padding:0 24px 24px}.expandable-body>ul:not(.tags){margin:0;padding-left:20px}.expandable-body .tags{margin:16px 0 0}@media (width<=600px){.expandable-header{flex-wrap:wrap}.expandable-trailing{flex-basis:100%;order:1}}.experience-logo{border:1px solid var(--border);background:var(--code-bg);width:48px;height:48px;color:var(--text-h);border-radius:8px;flex-shrink:0;place-items:center;font-size:20px;font-weight:600;display:grid;overflow:hidden}.experience-logo img{object-fit:contain;width:100%;height:100%}.experience-period{font-family:var(--mono);text-align:center;white-space:nowrap;background:var(--date-bg);color:var(--text-d);border-radius:6px;padding:4px 12px;font-size:14px}.lab-group-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.lab-group-header h2{margin:0;font-size:22px}.lab-group-description{margin:0 0 20px}.research-authors u{text-underline-offset:3px}.research-ongoing{font-family:var(--mono);white-space:nowrap;border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:4px 12px;font-size:14px}.tag-ongoing{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);padding:1px 7px}.icon-links{gap:6px;margin:0;padding:0;list-style:none;display:flex}.icon-links a{border:1px solid var(--border);color:var(--text-h);border-radius:6px;padding:8px;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.icon-links a:hover{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}@property --iridescent-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.tag-psymatronics{background:linear-gradient(var(--code-bg), var(--code-bg)) padding-box, conic-gradient(from var(--iridescent-angle), #ff6ec7, #7873f5, #4adede, #4ade80, #facc15, #ff6ec7) border-box;border:1.5px solid #0000;padding:.5px 6.5px;animation:4s linear infinite iridescent}@keyframes iridescent{to{--iridescent-angle:360deg}}@media (prefers-reduced-motion:reduce){.tag-psymatronics{animation:none}}.project-media{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:16px;display:grid}.project-media img,.project-media video{border:1px solid var(--border);border-radius:6px;width:100%;display:block}.quick-links{gap:12px;padding:0;list-style:none;display:flex}.quick-links a{color:var(--accent)}.external-buttons{flex-wrap:wrap;gap:12px;margin:0 0 40px;padding:0;list-style:none;display:flex}.external-buttons a{border:1px solid var(--border);background:var(--social-bg);color:var(--text-h);border-radius:6px;align-items:center;gap:8px;padding:8px 16px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.external-buttons a:hover{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.footer{border-top:1px solid var(--border);padding:24px 32px;font-size:14px}.footer ul{justify-content:center;gap:20px;margin:0 0 8px;padding:0;list-style:none;display:flex}.footer a{color:var(--text);align-items:center;gap:6px;display:inline-flex}.footer a:hover{color:var(--accent)}.navbar,.page,.footer{padding-inline:calc(max(0px,50% - 563px) + 32px)}@media (width<=1024px){.navbar,.page,.footer{padding-inline:16px}}.expandable.focused{border-color:var(--accent-border);box-shadow:var(--shadow)}.skill-search{width:90%}.skill-search-input{border:1px solid var(--border);background:var(--social-bg);color:var(--text);border-radius:6px;align-items:center;gap:10px;padding:10px 14px;transition:border-color .2s;display:flex}.skill-search-input:focus-within{border-color:var(--accent-border)}.skill-search-input input{min-width:0;color:var(--text-h);font:inherit;background:0 0;border:none;outline:none;flex:1}.tags.skill-search-skills{max-height:120px;overflow-y:auto}.tags.skill-search-skills li{background:0 0;padding:0}.tags.skill-search-skills button{background:var(--code-bg);color:var(--text-h);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:4px;padding:2px 8px;transition:background .2s,border-color .2s,color .2s}.tags.skill-search-skills button:hover,.tags.skill-search-skills button.active{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.skill-search-results{margin:0;padding:0;list-style:none}.skill-search-results li{border-bottom:1px solid var(--border);grid-template-columns:110px 1fr;gap:16px;padding:12px 0;display:grid}.skill-search-results li:last-child{border-bottom:none}.skill-search-results a{color:var(--accent);text-decoration:none}.skill-search-kind{font-family:var(--mono);color:var(--text-h);padding-top:2px;font-size:14px}.skill-search-results .skill-search-empty{grid-template-columns:1fr;font-style:italic}@media (width<=600px){.skill-search{width:100%}.skill-search-results li{grid-template-columns:1fr;gap:4px}}.section-divider{border:none;border-top:1px solid var(--border);width:90%;margin:0 0 40px}.courses{width:90%;margin:16px 0 0;padding:0;list-style:none}.courses>li{border-bottom:1px solid var(--border);grid-template-columns:110px 1fr;gap:16px;padding:12px 0;display:grid}.courses>li:last-child{border-bottom:none}.courses ul{margin:0;padding:0;list-style:none}.courses ul li+li{margin-top:4px}.course-term{font-family:var(--mono);color:var(--text-h);padding-top:2px;font-size:14px;font-weight:800}.course-number{min-width:64px;font-family:var(--mono);color:var(--text-h);margin-right:12px;font-size:14px;display:inline-block}@media (width<=600px){.section-divider,.courses{width:100%}.courses>li{grid-template-columns:1fr;gap:4px}}
