.cv-font-sans{font-family:var(--font-inter),system-ui,sans-serif}.cv-font-serif{font-family:var(--font-cormorant),Georgia,serif}.cv-font-mono{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,monospace}.cv-hero-link{color:var(--cv-text-muted);font-size:.8rem;text-decoration:none;transition:color .3s}.cv-hero-link:hover{color:var(--cv-accent)}.cv-page{--cv-accent:#8f5418;--cv-accent-glow:#8f54181f;--cv-green:#4a7862;--cv-green-light:#5b8a72;--cv-blue:#3a7bc8;--cv-yellow:#b8922e;--cv-bg:#f7f5f0;--cv-surface:#fff;--cv-text:#0a0f0d;--cv-text-muted:#4a5568;--cv-border:#ddd9d0;transition:background-color .3s,color .3s}.dark .cv-page{--cv-accent:#d4956a;--cv-accent-glow:#d4956a26;--cv-green:#5b8a72;--cv-green-light:#7bb89e;--cv-blue:#4a90d9;--cv-yellow:#d4a843;--cv-bg:#001d35;--cv-surface:#002847;--cv-text:#f5f5f5;--cv-text-muted:#a0aec0;--cv-border:#1e3a5f}.tl-line{width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.tl-line-bg{background:var(--cv-border);position:absolute;inset:0}.tl-line-progress{background:linear-gradient(to bottom,var(--cv-accent),var(--cv-accent)65%,var(--cv-green)80%,var(--cv-blue));height:0%;transition:height 50ms linear;position:absolute;top:0;left:0;right:0}.tl-entry{opacity:0;align-items:flex-start;padding:1.5rem 0;transition:opacity .6s,transform .6s;display:flex;position:relative;transform:translateY(30px)}.tl-entry.visible{opacity:1;transform:translateY(0)}.tl-entry:nth-child(odd){flex-direction:row}.tl-entry:nth-child(2n){flex-direction:row-reverse}.tl-entry:nth-child(odd) .tl-card{text-align:left}.tl-entry:nth-child(2n) .tl-card{text-align:right}.tl-entry:nth-child(2n) .tl-bullets{text-align:left}.tl-card{background:var(--cv-surface);border:1px solid var(--cv-border);cursor:pointer;border-radius:12px;width:calc(50% - 46px);padding:1.25rem 1.5rem;transition:border-color .3s,box-shadow .3s,transform .3s,background-color .3s,color .3s}.tl-card:hover{border-color:var(--cv-accent);box-shadow:0 8px 30px var(--cv-accent-glow);transform:translateY(-2px)}.tl-card.lab-card:hover{border-color:var(--cv-green);box-shadow:0 8px 30px #5b8a7226}.tl-card.edu-card:hover{border-color:var(--cv-blue);box-shadow:0 8px 30px #4a90d926}.tl-spacer{width:calc(50% - 46px)}.tl-node{z-index:2;background:var(--cv-surface);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:transform .3s,box-shadow .3s;display:flex;position:absolute;top:2rem;left:50%;overflow:hidden;transform:translate(-50%)}.tl-node.has-logo{background:#fff;padding:6px}.tl-node-logo{object-fit:contain;border-radius:50%;width:100%;height:100%}.tl-node.accent{border:3px solid var(--cv-accent)}.tl-node.accent .tl-node-label{color:var(--cv-accent)}.tl-node.green{border:3px solid var(--cv-green)}.tl-node.green .tl-node-label{color:var(--cv-green-light)}.tl-node.blue{border:3px solid var(--cv-blue)}.tl-node.blue .tl-node-label{color:var(--cv-blue)}.tl-entry:hover .tl-node{transform:translate(-50%)scale(1.2)}.tl-entry:hover .tl-node.accent{box-shadow:0 0 20px #ee770766}.tl-entry:hover .tl-node.green{box-shadow:0 0 20px #5b8a7266}.tl-entry:hover .tl-node.blue{box-shadow:0 0 20px #4a90d966}.tl-node-label{letter-spacing:.02em;font-size:.65rem;font-weight:700}.tl-dates{color:var(--cv-accent);margin-bottom:.25rem;font-size:.7rem}.tl-card.lab-card .tl-dates{color:var(--cv-green-light)}.tl-card.edu-card .tl-dates{color:var(--cv-blue)}.tl-role{margin-bottom:.15rem;font-size:1.15rem;font-weight:400;line-height:1.3}.tl-company{color:var(--cv-text-muted);margin-bottom:.1rem;font-size:.85rem}.tl-location{color:var(--cv-text-muted);opacity:.5;font-size:.72rem}.tl-bullets{max-height:0;margin-top:0;transition:max-height .5s cubic-bezier(.22,1,.36,1),margin-top .3s;overflow:hidden}.tl-card.expanded .tl-bullets{max-height:800px;margin-top:1rem}.tl-bullets-inner{border-top:1px solid var(--cv-border);padding-top:.75rem}.tl-bullet{color:var(--cv-text-muted);text-align:left;margin-bottom:.5rem;padding-left:1rem;font-size:.82rem;line-height:1.6;position:relative}.tl-bullet:before{content:"";background:var(--cv-accent);opacity:.6;border-radius:50%;width:4px;height:4px;position:absolute;top:.55rem;left:0}.tl-card.lab-card .tl-bullet:before{background:var(--cv-green)}.tl-card.edu-card .tl-bullet:before{background:var(--cv-blue)}.tl-expand-hint{color:var(--cv-text-muted);opacity:0;margin-top:.5rem;font-size:.7rem;transition:opacity .3s}.tl-card:hover .tl-expand-hint{opacity:.6}.tl-card.expanded .tl-expand-hint{display:none}.cv-bridge{text-align:center;max-width:900px;margin:2rem auto 0;padding:3rem 2rem;position:relative}.cv-bridge:before{content:"";background:linear-gradient(to bottom,var(--cv-border),transparent);width:1px;height:3rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.element-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:8px;display:grid}.cv-element{background:var(--cv-surface);border:1px solid var(--cv-border);cursor:pointer;border-radius:8px;min-height:105px;padding:.85rem .65rem .65rem;transition:all .4s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.cv-element:before{content:"";opacity:.5;height:3px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.cv-element[data-domain=science]:before{background:var(--cv-green)}.cv-element[data-domain=commercial]:before{background:var(--cv-accent)}.cv-element[data-domain=technology]:before{background:var(--cv-blue)}.cv-element[data-domain=leadership]:before{background:var(--cv-yellow)}.cv-element:hover{transform:translateY(-3px);box-shadow:0 6px 25px #0000001a}.dark .cv-element:hover{box-shadow:0 6px 25px #0000004d}.cv-element:hover:before{opacity:1}.cv-element[data-domain=science]:hover{border-color:var(--cv-green)}.cv-element[data-domain=commercial]:hover{border-color:var(--cv-accent)}.cv-element[data-domain=technology]:hover{border-color:var(--cv-blue)}.cv-element[data-domain=leadership]:hover{border-color:var(--cv-yellow)}.cv-element.dimmed{opacity:.12;pointer-events:none;transform:scale(.95)}.el-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;opacity:0;pointer-events:none;background:#000f1ed9;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.el-modal.active{opacity:1;pointer-events:all}.modal-card{background:var(--cv-surface);border:1px solid var(--cv-border);border-radius:16px;width:90%;max-width:480px;padding:2rem;transition:transform .4s cubic-bezier(.22,1,.36,1);position:relative;transform:scale(.9)translateY(20px)}.el-modal.active .modal-card{transform:scale(1)translateY(0)}.cv-filter-btn{border:1px solid var(--cv-border);color:var(--cv-text-muted);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;background:0 0;border-radius:20px;padding:.4rem 1rem;font-size:.75rem;transition:all .3s}.cv-filter-btn:hover{border-color:var(--cv-text-muted);color:var(--cv-text)}.cv-filter-btn.active{border-color:var(--cv-accent);color:var(--cv-accent);background:var(--cv-accent-glow)}.cv-filter-btn.active[data-domain=science]{border-color:var(--cv-green);color:var(--cv-green-light);background:#5b8a7226}.cv-filter-btn.active[data-domain=commercial]{border-color:var(--cv-accent);color:var(--cv-accent);background:var(--cv-accent-glow)}.cv-filter-btn.active[data-domain=technology]{border-color:var(--cv-blue);color:var(--cv-blue);background:#4a90d926}.cv-filter-btn.active[data-domain=leadership]{border-color:var(--cv-yellow);color:var(--cv-yellow);background:#d4a84326}.cv-element-reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(15px)}.cv-element-reveal.revealed{opacity:1;transform:translateY(0)}@media (max-width:768px){.cv-hero-title{font-size:2rem!important}.tl-line{left:24px}.tl-entry,.tl-entry:nth-child(odd),.tl-entry:nth-child(2n){flex-direction:row;padding-left:56px}.tl-entry:nth-child(2n) .tl-card{text-align:left}.tl-card{width:100%}.tl-spacer{display:none}.tl-node{left:24px}.element-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (prefers-reduced-motion:reduce){.tl-entry,.cv-element-reveal{opacity:1;transition:none;transform:none}.tl-bullets,.tl-line-progress,.modal-card,.cv-element,.tl-card,.tl-node{transition:none}}
