*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #1a1a1a;--text-secondary: #374151;--text-muted: #6b7280;--border-color: #e5e7eb;--link-color: #1a1a1a;--logo-color: #1a1a1a}[data-theme=dark]{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--text-primary: #f5f5f5;--text-secondary: #d1d5db;--text-muted: #9ca3af;--border-color: #374151;--link-color: #f5f5f5;--logo-color: #f5f5f5}body{font-family:Figtree,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}.container{display:flex;min-height:100vh;max-width:1200px;margin:0 auto}.sidebar{width:200px;padding:60px 40px;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:40px}.content{flex:1;padding:60px 80px;max-width:800px}.logo{width:80px;height:50px}.logo svg{width:100%;height:100%}.logo-path{stroke:var(--logo-color);stroke-dasharray:200;stroke-dashoffset:200;animation:draw 5s ease-in-out infinite}.theme-toggle{position:fixed;top:20px;right:20px;display:flex;align-items:center;gap:8px;padding:6px;border-radius:20px;border:1px solid var(--border-color);background:var(--bg-primary);z-index:1000}.theme-toggle button{width:28px;height:28px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.theme-toggle button:hover,.theme-toggle button.active{background:var(--bg-secondary)}.theme-toggle svg{width:14px;height:14px;color:var(--text-muted)}.theme-toggle button.active svg{color:var(--text-primary)}@keyframes draw{0%{stroke-dashoffset:200}40%{stroke-dashoffset:0}60%{stroke-dashoffset:0}to{stroke-dashoffset:200}}.contact-info{display:flex;flex-direction:column;gap:2px;font-size:15px;font-weight:500;letter-spacing:-.01em}.contact-info .location{color:var(--text-primary);white-space:nowrap}.contact-info a{color:var(--link-color);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s}.contact-info a:hover{color:var(--text-muted)}.divider{display:none}.hero{margin-bottom:80px;margin-top:0}.photo-wrapper{position:relative;width:280px;margin-bottom:32px;margin-left:140px}.photo-box{width:200px;height:260px;background:#a8d5d8;border-radius:24px;overflow:hidden;position:relative}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:56px;font-weight:600;color:#fff9}.photo-placeholder img{width:100%;height:100%;object-fit:cover}.curved-name{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.curved-name .letter{position:absolute;font-size:18px;font-weight:500;color:#1a1a1a;transform-origin:center}.curved-name .letter[style*="--i: 0"]{top:85px;left:205px;transform:rotate(15deg)}.curved-name .letter[style*="--i: 1"]{top:55px;left:215px;transform:rotate(30deg)}.curved-name .letter[style*="--i: 2"]{top:28px;left:220px;transform:rotate(50deg)}.curved-name .letter[style*="--i: 3"]{top:8px;left:218px;transform:rotate(70deg)}.curved-name .letter[style*="--i: 4"]{top:-5px;left:205px;transform:rotate(85deg)}.curved-name .letter[style*="--i: 5"]{top:-10px;left:185px;transform:rotate(100deg)}.curved-name .letter[style*="--i: 6"]{top:-10px;left:165px}.curved-name .letter[style*="--i: 7"]{top:120px;left:220px;transform:rotate(-5deg)}.curved-name .letter[style*="--i: 8"]{top:150px;left:230px;transform:rotate(-20deg)}.curved-name .letter[style*="--i: 9"]{top:180px;left:235px;transform:rotate(-35deg)}.curved-name .letter[style*="--i: 10"]{top:212px;left:232px;transform:rotate(-50deg)}.curved-name .letter[style*="--i: 11"]{top:240px;left:222px;transform:rotate(-65deg)}.curved-name .letter[style*="--i: 12"]{top:262px;left:205px;transform:rotate(-80deg)}.intro{max-width:500px;margin-left:140px}.intro-main{font-size:18px;font-weight:600;line-height:1.3;color:var(--text-primary);letter-spacing:-.36px;margin-bottom:2px}.intro-main .highlight{font-weight:600}.intro-sub{font-size:18px;font-weight:600;line-height:1.3;color:var(--text-muted);letter-spacing:-.36px}.section{display:flex;gap:40px;margin-bottom:60px;opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.section.visible{opacity:1;transform:translateY(0)}.section-label{width:100px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding-top:4px;position:sticky;top:20px;align-self:flex-start;background:var(--bg-primary)}.section-content{flex:1}.section-content p{margin-bottom:16px;color:var(--text-secondary)}.section-content p:last-child{margin-bottom:0}.section-content strong{font-weight:500;color:var(--text-primary)}.job{margin-bottom:40px;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}.job.visible{opacity:1;transform:translateY(0)}.job:last-child{margin-bottom:0}.job-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.job-company{font-size:15px;color:var(--text-muted);margin-bottom:2px}.job-dates{font-size:14px;color:var(--text-muted);margin-bottom:16px}.job-details{list-style:none;padding:0}.job-details li{position:relative;padding-left:16px;margin-bottom:10px;font-size:16px;color:var(--text-secondary);line-height:1.6}.job-details li:before{content:"";position:absolute;left:0;top:10px;width:4px;height:4px;background:var(--text-muted);border-radius:50%}.job-details li:last-child{margin-bottom:0}.job-details strong{font-weight:500;color:var(--text-primary)}.job-divider{height:1px;background:var(--border-color);margin:40px 0}.education-item{margin-bottom:32px}.education-item:last-child{margin-bottom:0}.edu-degree{font-size:17px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.edu-school{font-size:15px;color:var(--text-muted);margin-bottom:2px}.edu-dates{font-size:14px;color:var(--text-muted);margin-bottom:12px}.edu-details{font-size:15px;color:var(--text-secondary);line-height:1.6}.skills-grid{display:flex;flex-wrap:wrap;gap:10px}.skill{display:inline-block;padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:100px;font-size:14px;color:var(--text-secondary);transition:all .2s}.skill:hover{background:var(--border-color)}.tools-grid{display:flex;flex-wrap:wrap;gap:20px}.tool-item{display:flex;align-items:center;gap:8px}.tool-item img{width:28px;height:28px;border-radius:50%;object-fit:contain;background:var(--bg-secondary);padding:4px;filter:grayscale(100%)}.tool-item span{font-size:14px;color:var(--text-secondary)}.footer{margin-top:80px;padding-top:40px;border-top:1px solid var(--border-color)}.footer p{font-size:15px;color:var(--text-muted);font-style:italic;line-height:1.6}@media (max-width: 900px){.container{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;flex-direction:row;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:1px solid #e5e5e5}.divider{display:none}.content{padding:40px 32px}.section{flex-direction:column;gap:16px}.section-label{width:auto}.photo-wrapper{width:240px;height:280px}.photo-box{width:160px;height:210px}.curved-name .letter{font-size:15px}.intro-main{font-size:20px}.intro-sub{font-size:18px}}@media (max-width: 600px){.sidebar{flex-direction:column;align-items:flex-start;gap:24px;padding:24px}.content{padding:32px 24px}.photo-wrapper{width:220px;height:260px}.photo-box{width:150px;height:195px;border-radius:18px}.curved-name .letter{font-size:14px}.curved-name .letter[style*="--i: 0"]{top:70px;left:160px}.curved-name .letter[style*="--i: 1"]{top:45px;left:168px}.curved-name .letter[style*="--i: 2"]{top:22px;left:172px}.curved-name .letter[style*="--i: 3"]{top:5px;left:170px}.curved-name .letter[style*="--i: 4"]{top:-6px;left:160px}.curved-name .letter[style*="--i: 5"]{top:-10px;left:145px}.curved-name .letter[style*="--i: 7"]{top:95px;left:172px}.curved-name .letter[style*="--i: 8"]{top:120px;left:180px}.curved-name .letter[style*="--i: 9"]{top:145px;left:184px}.curved-name .letter[style*="--i: 10"]{top:170px;left:182px}.curved-name .letter[style*="--i: 11"]{top:192px;left:174px}.curved-name .letter[style*="--i: 12"]{top:210px;left:160px}.intro-main{font-size:18px}.intro-sub{font-size:16px}.hero-full{margin-bottom:48px}.section{margin-bottom:40px}.job-title{font-size:16px}}.portfolio-link{display:inline-flex;align-items:center;gap:6px}.lock-icon{width:13px;height:13px;color:var(--text-muted);vertical-align:middle;transition:color .2s}.portfolio-link:hover .lock-icon{color:var(--text-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-box{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:32px;width:320px;box-shadow:0 8px 32px #00000026}.modal-label{font-size:15px;color:var(--text-secondary);margin-bottom:16px}.modal-input{width:100%;padding:10px 14px;font-size:15px;font-family:inherit;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .2s}.modal-input:focus{border-color:var(--text-muted)}.modal-input-error{border-color:#ef4444!important}.modal-error{font-size:13px;color:#ef4444;margin-top:8px}.modal-btn{width:100%;margin-top:16px;padding:10px;font-size:15px;font-family:inherit;font-weight:500;background:var(--text-primary);color:var(--bg-primary);border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.modal-btn:hover{opacity:.8}@media print{.sidebar{position:relative;height:auto}.section,.job{opacity:1;transform:none}.skill:hover{background:#f9fafb;border-color:#e5e7eb}}
