html{scroll-behavior:smooth}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#000000de;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;background-image:url(/images/fruitiger_aero.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}h1{font-size:3.2em;line-height:1.1}@media(prefers-color-scheme:light){:root{color:#213547}a:hover{color:#747bff}}:root{--color-bg: #242424;--color-title: #8c92f9;--color-cell: rgba(255, 255, 255, .72);--color-border: #333;--container-radius: 12px;--gap: 1.5rem;--padding: 1.5rem}body{margin:0;min-width:320px;min-height:100vh;position:relative}body:before{content:"";position:fixed;inset:0;background-image:url(/images/fruitiger_aero.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.4;z-index:-2}body:after{content:"";position:fixed;inset:0;background:#ffffff80;z-index:-2;pointer-events:none}.page{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1280px;margin:0 auto;padding:var(--padding);padding-left:calc(180px + .5rem);box-sizing:border-box}.title-row{display:flex;align-items:center;gap:1rem;width:100%}.title{color:#8c92f9;margin:1rem 0;text-align:left}.bubble{background:var(--color-title);color:var(--color-bg);font-size:.9rem;font-weight:500;padding:.4rem 1rem;border-radius:999px;white-space:nowrap}.main-layout{width:100%}.sidebar{position:fixed;top:0;left:0;width:180px;height:100vh;background-color:#fff9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;padding-top:2rem;box-sizing:border-box;border-right:1px solid rgba(0,0,0,.08)}.sidebar-nav{display:flex;flex-direction:column;width:100%;padding:0 1rem;box-sizing:border-box;gap:.25rem}.sidebar-name{display:block;font-size:1.5rem;font-weight:700;color:var(--color-title);margin-bottom:1.75rem;padding:0 .75rem;letter-spacing:.02em}.sidebar-link{font-size:.85rem;color:inherit;text-decoration:none;padding:.45rem .75rem;border-radius:6px;border-left:3px solid transparent;transition:background .15s,color .15s,border-color .15s;font-weight:400}.sidebar-link:hover{background:#8c92f91f;color:var(--color-title)}.sidebar-link.active{border-left-color:var(--color-title);color:var(--color-title);font-weight:600;background:#8c92f91f}.sidebar-connect{margin-top:auto;padding:1rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid rgba(0,0,0,.08);width:100%;box-sizing:border-box}.sidebar-connect-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.45;margin-bottom:.25rem}.sidebar-connect-link{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--color-title);text-decoration:none;padding:.3rem .25rem;border-radius:6px;transition:color .15s,background .15s}.sidebar-connect-link:hover{color:var(--color-title);background:#8c92f91a}.right-content{flex:1;min-width:0;display:flex;flex-direction:column}.grid-layout{display:grid;grid-template-columns:2fr 1fr;gap:var(--gap);width:100%}.cell{border-radius:var(--container-radius);padding:var(--padding);min-width:0;border:1px solid var(--color-border);box-sizing:border-box;background-color:var(--color-cell)}.cell-title{margin:0 0 .75rem;font-size:1.2rem;display:flex;align-items:center;gap:.45rem}.cell-title-icon{color:var(--color-title);flex-shrink:0}.cell.banner{position:relative;overflow:hidden;display:flex;align-items:center;padding:.4rem .75rem}.cell.banner:before{content:"";position:absolute;inset:0;background:#fff;opacity:.3}.banner-scrappy{position:relative;height:110px;width:auto;margin-right:1rem;z-index:1;image-rendering:pixelated;flex-shrink:0;transform-origin:bottom center}.cell.banner:hover .banner-scrappy{animation:talking .7s ease-in-out infinite}@keyframes talking{0%{transform:scaleX(1) scaleY(1)}20%{transform:scaleX(1.12) scaleY(.88)}40%{transform:scaleX(.9) scaleY(1.1)}60%{transform:scaleX(1.08) scaleY(.93)}80%{transform:scaleX(.95) scaleY(1.05)}to{transform:scaleX(1) scaleY(1)}}.banner-bubble-tail{position:relative;z-index:1;color:#8c92f9;font-size:1.1rem;line-height:1;flex-shrink:0;transform:translateY(-8px);margin-right:-.25rem}.banner-text{position:relative;color:#8c92f9;font-size:.95rem;font-weight:500;margin:0;z-index:1;transform:translateY(-14px);margin-left:1rem}.cell.currently{display:flex;flex-direction:column}.blink-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background-color:#4ade80;margin-right:.5rem;vertical-align:middle;animation:blink 1.5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.currently-inner{flex:1;background:#ffffff0f;border:1px solid var(--color-border);border-radius:8px;padding:var(--padding);box-sizing:border-box}.cell.education{grid-column:1 / -1}.edu-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.25rem}.edu-school{font-weight:700;font-size:1rem}.edu-degree{font-size:.9rem}.edu-gpa{font-size:.85rem;opacity:.75}.edu-courses{width:100%;font-size:.82rem;opacity:.7;margin-top:.25rem}.edu-teaching{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.08)}.cell.experience{grid-column:1 / -1;display:flex;flex-direction:column}.timeline{display:flex;flex-direction:column;gap:1rem}.timeline-entry{border-left:3px solid var(--color-title);padding-left:1rem}.timeline-entry h3{margin:0 0 .25rem;font-size:1rem}.timeline-entry .timeline-date{font-size:.8rem;opacity:.6;margin-bottom:.25rem}.timeline-entry p{margin:0;font-size:.9rem;opacity:.85}.cell.skills{grid-column:1 / -1;display:flex;flex-direction:column}.credentials-row{display:flex;gap:2rem;margin-bottom:1rem}.credentials-row .extras-section{flex:1;margin-bottom:0}.extras-section{margin-bottom:1rem}.extras-section:last-child{margin-bottom:0}.extras-heading{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-title);margin:0 0 .35rem;opacity:.9}.extras-main{margin:0 0 .1rem;font-size:.9rem;font-weight:600}.extras-sub{margin:0 0 .15rem;font-size:.82rem;opacity:.8}.extras-list{margin:0;padding-left:1.1rem;font-size:.82rem;opacity:.8;display:flex;flex-direction:column;gap:.3rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.35rem}.skill-tag{background:#8c92f926;border:1px solid rgba(140,146,249,.4);color:var(--color-title);font-size:.72rem;padding:.2rem .55rem;border-radius:999px;white-space:nowrap}.research-divider{border:none;border-top:1px solid rgba(0,0,0,.08);margin:.75rem 0}.cell.research{grid-column:1 / -1;display:flex;flex-direction:column}.pub-stack{display:flex;flex-direction:column;gap:.6rem}.pub-card{display:flex;align-items:center;gap:1rem;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:8px;background:#ffffff0a}.pub-img{flex-shrink:0;width:160px;height:100px;object-fit:cover;border-radius:10px;border:1px solid var(--color-border)}.pub-text{flex:1;margin:0;font-size:.88rem;line-height:1.5}.pub-venue{font-size:.78rem;opacity:.65}.cell.projects{grid-column:1 / -1;display:flex;flex-direction:column}.f1-layout{display:flex;gap:1.25rem;align-items:flex-start}.f1-layout .extras-section{flex:1;margin-bottom:0}.carousel{flex-shrink:0;width:260px;display:flex;flex-direction:column;gap:.5rem}.carousel-video{width:100%;border-radius:10px;border:1px solid var(--color-border);object-fit:cover;aspect-ratio:16 / 9;background:#000}.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.carousel-btn{background:#ffffff14;border:1px solid var(--color-border);border-radius:6px;color:inherit;font-size:1.1rem;padding:.1rem .6rem;cursor:pointer;line-height:1.5}.carousel-btn:hover{background:#ffffff26}.carousel-label{font-size:.75rem;opacity:.6;text-align:center;flex:1}.icon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;flex:1}.icon-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;background:none;border:none;cursor:pointer;padding:.5rem;transition:opacity .2s}.icon-cell:hover{opacity:.7}.icon-cell:hover .icon-img{transform:scale(1.1)}.icon-img{transition:transform .2s}.icon-label{font-size:.75rem;color:#8c92f9}.project-content{flex:1;display:flex;flex-direction:column}.back-btn{align-self:flex-start;background:none;border:none;color:#646cff;font-size:.9rem;cursor:pointer;padding:.25rem 0;margin-bottom:.5rem;transition:color .2s}.back-btn:hover{color:#535bf2;text-decoration:underline}.cell.connect{background-color:transparent;border:none}.link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.link-item{display:flex;align-items:center;gap:.75rem}.link-icon{width:32px;height:32px;object-fit:contain;color:#646cff;flex-shrink:0;background:#ffffff0f;border-radius:6px;padding:4px;box-sizing:border-box}.link-item a{font-weight:500;color:#646cff;text-decoration:none;transition:color .2s}.link-item a:hover{color:#535bf2;text-decoration:underline}
