@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500&display=swap";:root{--bg-primary: #fffef2;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--accent: #1a1a1a;--accent-hover: #ff6b35;--font-mono: "IBM Plex Mono", monospace;--space-xs: .25rem;--space-sm: .75rem;--space-md: 1.5rem;--space-lg: 3rem;--space-xl: 5rem;--stroke-width: 2px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;font-weight:300;font-size:14px}.doodle-placeholder{border:2px dashed var(--text-secondary);padding:var(--space-md);text-align:center;color:var(--text-secondary);font-size:12px;opacity:.6}.icon-placeholder{width:48px;height:48px;border:2px dashed var(--text-secondary);display:inline-block;position:relative}.icon-placeholder:after{content:attr(data-icon);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;color:var(--text-secondary)}.container{max-width:1200px;margin:0 auto;padding:var(--space-lg) var(--space-md)}.section{margin-bottom:var(--space-xl)}.scattered-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);margin-top:var(--space-lg)}.scattered-grid>*:nth-child(3n+1){transform:translateY(20px) rotate(-1deg)}.scattered-grid>*:nth-child(3n+2){transform:translateY(-15px) rotate(.5deg)}.scattered-grid>*:nth-child(3n){transform:translateY(10px) rotate(-.5deg)}h1{font-size:clamp(2.5rem,6vw,4rem);font-weight:300;letter-spacing:-.02em;margin-bottom:var(--space-sm)}h2{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:400;margin-bottom:var(--space-md);letter-spacing:-.01em}h3{font-size:clamp(1rem,2vw,1.5rem);font-weight:500;margin-bottom:var(--space-sm)}p{margin-bottom:var(--space-sm);color:var(--text-secondary);max-width:60ch}a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--text-primary);transition:all .2s ease}a:hover{color:var(--accent-hover);border-bottom-color:var(--accent-hover)}.nav{display:flex;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap}.nav-link{font-size:14px;text-transform:lowercase;border:none;position:relative}.nav-link:before{content:"→ ";opacity:0;transition:opacity .2s}.nav-link:hover:before{opacity:1}.project-card{border:2px solid var(--text-primary);padding:var(--space-md);cursor:pointer;transition:all .3s ease;background:var(--bg-primary)}.project-card:hover{transform:translateY(-5px) rotate(0)!important;box-shadow:8px 8px 0 var(--text-primary)}.project-card h3{margin-bottom:var(--space-xs)}.project-card .tags{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-sm)}.project-card a{border:none}.tag{font-size:11px;padding:4px 8px;border:1px solid var(--text-secondary);color:var(--text-secondary)}.bio-grid{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-lg);align-items:start}@media(max-width:768px){.bio-grid{grid-template-columns:1fr}}.experience-list{list-style:none}.experience-list li{margin-bottom:var(--space-md);padding-left:var(--space-md);position:relative}.experience-list li:before{content:"•";position:absolute;left:0}.experience-bio{font-size:13px;line-height:1.8}.experience-bio p{margin-bottom:var(--space-sm);max-width:none}.experience-bio p:last-child{margin-bottom:0}.notebook-page{border:2px solid var(--text-primary);padding:var(--space-lg);margin-bottom:var(--space-lg);background:var(--bg-primary);min-height:400px}.project-summary{cursor:pointer;padding:var(--space-sm);border-left:2px solid transparent;transition:all .2s;margin-bottom:var(--space-xs)}.project-summary:hover{border-left-color:var(--text-primary);transform:translate(4px)}.project-detail{display:none;animation:fadeIn .3s}.project-detail.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.toc-number{display:inline-block;width:30px;opacity:.5;font-size:12px}.resume-container{max-width:850px;margin:0 auto;padding:var(--space-lg) var(--space-md)}.resume-section{margin-bottom:var(--space-lg);page-break-inside:avoid}.resume-header{text-align:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid var(--text-primary)}.resume-grid{display:grid;grid-template-columns:140px 1fr;gap:var(--space-md);margin-bottom:var(--space-md)}.resume-date{font-size:12px;opacity:.7;text-align:right;padding-top:2px}@media print{body{background:#fff}.no-print{display:none}}.timeline-wrapper{position:relative;min-height:3500px;padding:var(--space-xl) 0}.timeline-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.timeline-path{fill:none;stroke:var(--text-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.5}.timeline-dot{fill:var(--text-primary);r:6}.timeline-node{position:absolute;z-index:1}.node-content{display:flex;align-items:center;gap:var(--space-md);flex-direction:var(--flex-direction, row)}.node-doodle{flex-shrink:0;width:100px;height:100px}.node-card{background:var(--bg-primary);border:2px solid var(--text-primary);padding:var(--space-md);width:280px;transform:rotate(var(--card-rotation, -1deg))}.node-year{font-size:11px;opacity:.6;text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-xs)}.node-label{font-size:1.1rem;font-weight:500;margin-bottom:var(--space-xs)}.node-description{font-size:13px;opacity:.8;line-height:1.6}@media(max-width:768px){.timeline-wrapper{min-height:4000px}.node-content{flex-direction:column!important}}.icon{width:24px;height:24px;display:inline-block;transition:transform .2s ease}.icon:hover{transform:translateY(-2px) rotate(-5deg)}.icon svg,.icon img{width:100%;height:100%;stroke:var(--text-primary);stroke-width:1.5;transition:stroke .2s ease}.icon:hover svg,.icon:hover img{stroke:var(--accent-hover)}.quick-links{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.quick-links a{border:none;text-decoration:none}.recruiter-section{position:fixed;top:20px;right:20px;z-index:100}.recruiter-container{position:relative;width:220px}.recruiter-arrow{position:absolute;top:15px;left:-60px;width:70px;height:auto;pointer-events:none;opacity:.8;transform:rotate(-110deg)}.recruiter-text{font-size:11px;line-height:1.4;opacity:.7;margin-bottom:var(--space-sm);padding-left:10px}.recruiter-button{display:block;padding:10px 16px;border:2px solid var(--text-primary);font-size:12px;background:var(--accent-hover);color:var(--bg-primary);font-weight:500;text-align:center;transform:rotate(-1deg);transition:all .2s ease;text-decoration:none}.recruiter-button:hover{transform:rotate(0) translateY(-2px);box-shadow:4px 4px 0 var(--text-primary);border-bottom:2px solid var(--text-primary)}
