:root{--bg:#060b16;--bg-elevated:#0a1120;--surface:#0c1528;--surface-raised:#111d35;--text:#e2e8f0;--text-strong:#f8fafc;--muted-text:#94a3b8;--border:#94a3b833;--border-strong:#94a3b859;--accent:#93c5fd;--accent-purple:#a78bfa;--radius-lg:1.25rem;--radius-md:.85rem;--radius-sm:.55rem;--nav-height:4.2rem;--shadow-soft:0 12px 30px #00000047;--gradient-page:linear-gradient(180deg, #071022 0%, #060b16 100%);--gradient-panel:radial-gradient(circle at top right, #818cf81f, transparent 45%), radial-gradient(circle at bottom left, #f472b614, transparent 40%), linear-gradient(145deg, #0c1528 0%, #0a1120 100%);--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--nav-scrolled-bg:#060b16b8;--contact-link-bg:#040a1a73;--tag-bg:#f8fafc;--tag-text:#111827;--hero-accent-1:#818cf82e;--hero-accent-2:#f472b61f;--hero-wave-1-strong:#d8b4fe61;--hero-wave-1-soft:#d8b4fe14;--hero-wave-2-strong:#c4b5fd57;--hero-wave-2-soft:#c4b5fd12}:root[data-theme=light]{--bg:#f8fafc;--bg-elevated:#eef2f7;--surface:#fff;--surface-raised:#eef2f9;--text:#334155;--text-strong:#0f172a;--muted-text:#64748b;--border:#0f172a1a;--border-strong:#0f172a2e;--accent:#2563eb;--accent-purple:#7c3aed;--shadow-soft:0 12px 30px #0f172a1a;--gradient-page:linear-gradient(180deg, #eef2ff 0%, #f8fafc 100%);--gradient-panel:radial-gradient(circle at top right, #2563eb14, transparent 45%), radial-gradient(circle at bottom left, #db27770f, transparent 40%), linear-gradient(145deg, #fff 0%, #f1f5f9 100%);--nav-scrolled-bg:#f8fafcc7;--contact-link-bg:#0f172a08;--tag-bg:#0f172a;--tag-text:#f8fafc;--hero-accent-1:#2563eb24;--hero-accent-2:#db277714;--hero-wave-1-strong:#7c3aed38;--hero-wave-1-soft:#7c3aed0d;--hero-wave-2-strong:#6366f133;--hero-wave-2-soft:#6366f10a}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;transition:background-color .25s,color .25s}h1,h2,h3,p{margin:0}a{color:inherit}.portfolio{width:100%}.site-nav{z-index:50;background:0 0;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;transition:background .25s,border-color .25s,-webkit-backdrop-filter .25s,backdrop-filter .25s;display:flex;position:sticky;top:0}.site-nav.scrolled{background:var(--nav-scrolled-bg);border-bottom-color:var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.theme-toggle{border:1px solid var(--border-strong);width:2.2rem;height:2.2rem;color:var(--text-strong);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;place-items:center;transition:border-color .2s,color .2s,background .2s;display:grid}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle svg{width:1.15rem;height:1.15rem}.site-nav-links{align-items:center;gap:clamp(.9rem,2.5vw,1.75rem);display:flex}.site-nav-links a{color:var(--muted-text);white-space:nowrap;font-size:.88rem;font-weight:500;text-decoration:none;transition:color .2s}.site-nav-links a:hover{color:var(--text-strong)}.nav-resume-button{border:1px solid var(--border-strong);color:var(--text-strong);white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.nav-resume-button svg{width:.95rem;height:.95rem}.nav-resume-button:hover,.nav-resume-button:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--surface-raised)}.hero-banner{min-height:calc(100vh - var(--nav-height));color:var(--text-strong);background:radial-gradient(circle at 72% 24%, var(--hero-accent-1), transparent 44%), radial-gradient(circle at 24% 78%, var(--hero-accent-2), transparent 40%), var(--gradient-page);padding:1.2rem 1.5rem 3rem;position:relative;overflow:hidden}.hero-intro,.page-content{z-index:2;max-width:1100px;margin-left:auto;margin-right:auto;position:relative}.hero-wave{z-index:1;pointer-events:none;position:absolute;inset:0}.hero-wave:before,.hero-wave:after{content:"";border-radius:48% 52% 40% 60%;width:140%;height:58%;position:absolute;left:-18%}.hero-wave:before{background:repeating-radial-gradient(ellipse at 40% 50%, var(--hero-wave-1-strong) 0 2px, var(--hero-wave-1-soft) 2px 9px, transparent 8px 12px);filter:blur(.35px);opacity:.58;top:38%;transform:rotate(-8deg)}.hero-wave:after{background:repeating-radial-gradient(ellipse at 40% 50%, var(--hero-wave-2-strong) 0 2px, var(--hero-wave-2-soft) 2px 8px, transparent 7px 12px);opacity:.48;border-radius:50%;width:70%;height:34%;top:18%;left:50%}.hero-intro{min-height:calc(100vh - var(--nav-height) - 4.2rem);justify-content:flex-start;align-items:center;gap:1.3rem;display:flex}.hero-copy{text-align:left}.hero-photo{aspect-ratio:1;border:4px solid var(--border-strong);background:linear-gradient(180deg, var(--surface-raised), var(--surface));width:clamp(130px,16vw,180px);box-shadow:var(--shadow-soft);border-radius:999px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.hero-photo img{object-fit:cover;width:100%;height:100%}.hero-copy h1{letter-spacing:-.03em;color:var(--text-strong);margin-top:.5rem;font-size:clamp(2.2rem,7vw,4.8rem);font-weight:800;line-height:1}.hero-role{color:var(--text);margin-top:.5rem;font-size:clamp(1rem,2vw,1.8rem)}.hero-location{color:var(--muted-text);align-items:center;gap:.4rem;margin-top:.6rem;font-size:.92rem;display:flex}.hero-location svg{width:1rem;height:1rem;color:var(--accent);flex-shrink:0}.hero-expertise{max-width:42rem;color:var(--muted-text);margin-top:.85rem;font-size:clamp(.95rem,1.6vw,1.15rem);line-height:1.6}.hero-actions{margin-top:1.5rem}.resume-button{border:1px solid var(--border-strong);color:var(--text-strong);background:0 0;border-radius:999px;align-items:center;gap:.55rem;padding:.7rem 1.4rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.resume-button svg{width:1.1rem;height:1.1rem}.resume-button:hover,.resume-button:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--surface-raised)}.social-links{justify-content:flex-start;gap:.4rem;display:flex}.social-links a{border:1px solid var(--border-strong);width:1.9rem;height:1.9rem;color:var(--text);border-radius:999px;place-items:center;font-size:.67rem;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s;display:grid}.social-links a:hover{border-color:var(--accent);color:var(--accent)}.social-links a svg{width:1rem;height:1rem}.scroll-indicator{z-index:2;color:var(--muted-text);flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;animation:2.2s ease-in-out infinite scroll-bounce;display:flex;position:absolute;bottom:1.75rem;left:50%}.scroll-indicator-label{letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:600}.scroll-indicator-icon{opacity:.85;width:1.25rem;height:1.25rem}@keyframes scroll-bounce{0%,to{opacity:.7;transform:translate(-50%)translateY(0)}50%{opacity:1;transform:translate(-50%)translateY(8px)}}.page-content{gap:4rem;padding:0 1.5rem 4rem;display:grid}.section{scroll-margin-top:calc(var(--nav-height) + 1rem);gap:1.75rem;display:grid}.section-header{gap:.5rem;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.75rem;font-weight:600}.section-title{letter-spacing:-.02em;color:var(--text-strong);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:800}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.panel{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);padding:1.25rem;transition:border-color .2s,background .2s}.panel:hover{border-color:var(--border-strong);background:var(--surface-raised)}.panel h3{color:var(--text-strong);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.panel p{color:var(--muted-text);font-size:.95rem;line-height:1.65}.panel-icon{width:2.8rem;height:2.8rem;color:var(--text-strong);margin-bottom:1rem}.panel-icon svg{width:100%;height:100%}.tag-label{color:var(--text);margin-top:1.1rem;margin-bottom:.55rem;font-size:.88rem;font-weight:600}.tag-list{flex-wrap:wrap;gap:.45rem;display:flex}.tag{background:var(--tag-bg);color:var(--tag-text);font-family:var(--font-mono);border-radius:999px;padding:.28rem .65rem;font-size:.76rem;line-height:1.4}.testimonials{margin-top:2.5rem}.testimonials-heading{color:var(--text-strong);margin-bottom:1.1rem;font-size:.95rem;font-weight:700}.testimonial-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.testimonial-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);padding:1.5rem}.testimonial-header{align-items:flex-start;gap:.85rem;margin-bottom:1rem;display:flex}.testimonial-avatar{background:var(--gradient-panel);border:1px solid var(--border-strong);width:2.6rem;height:2.6rem;color:var(--text-strong);border-radius:999px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:grid}.testimonial-avatar-photo{object-fit:cover}.testimonial-name{color:var(--text-strong);align-items:center;gap:.35rem;font-size:.98rem;font-weight:700;text-decoration:none;display:inline-flex}.testimonial-name:hover,.testimonial-name:focus-visible{color:var(--accent);text-decoration:underline}.testimonial-linkedin-icon{color:#0a66c2;flex-shrink:0;width:.95rem;height:.95rem}.testimonial-title{color:var(--muted-text);margin-top:.15rem;font-size:.85rem}.testimonial-relationship{color:var(--muted-text);margin-top:.2rem;font-size:.78rem;font-style:italic}.testimonial-quote{color:var(--muted-text);gap:.75rem;font-size:.9rem;line-height:1.65;display:grid}.testimonial-source{color:var(--accent);margin-top:.75rem;font-size:.8rem;font-weight:600;text-decoration:none;display:block}.testimonial-source:hover,.testimonial-source:focus-visible{text-decoration:underline}.timeline{flex-direction:column;gap:2rem;padding:.5rem 0;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--border-strong), transparent);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-entry{grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);align-items:center;gap:1.25rem;display:grid}.timeline-entry.left .timeline-card{grid-area:1/1}.timeline-entry.left .timeline-marker{grid-area:1/2;justify-self:center}.timeline-entry.left .timeline-period{text-align:left;grid-area:1/3}.timeline-entry.right .timeline-period{text-align:right;grid-area:1/1}.timeline-entry.right .timeline-marker{grid-area:1/2;justify-self:center}.timeline-entry.right .timeline-card{grid-area:1/3}.timeline-card{background:var(--surface);min-width:0;color:var(--text);border-radius:var(--radius-sm);border:1px solid var(--border);padding:1rem 1.1rem;transition:border-color .2s,background .2s;position:relative}.timeline-card:hover{border-color:var(--border-strong);background:var(--surface-raised)}.timeline-entry.left .timeline-card:before,.timeline-entry.right .timeline-card:before,.timeline-entry.left .timeline-card:after,.timeline-entry.right .timeline-card:after{content:"";width:0;height:0;position:absolute;top:50%;transform:translateY(-50%)}.timeline-entry.left .timeline-card:before{border-top:10px solid #0000;border-bottom:10px solid #0000;border-left:10px solid var(--border);transition:border-color .2s;right:-10px}.timeline-entry.left .timeline-card:after{border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:9px solid var(--surface);right:-9px}.timeline-entry.right .timeline-card:before{border-top:10px solid #0000;border-bottom:10px solid #0000;border-right:10px solid var(--border);transition:border-color .2s;left:-10px}.timeline-entry.right .timeline-card:after{border-top:9px solid #0000;border-bottom:9px solid #0000;border-right:9px solid var(--surface);left:-9px}.timeline-entry.left .timeline-card:hover:before,.timeline-entry.right .timeline-card:hover:before{border-color:#0000}.timeline-entry.left .timeline-card:hover:before{border-left-color:var(--border-strong)}.timeline-entry.right .timeline-card:hover:before{border-right-color:var(--border-strong)}.timeline-entry.left .timeline-card:hover:after{border-left-color:var(--surface-raised)}.timeline-entry.right .timeline-card:hover:after{border-right-color:var(--surface-raised)}.timeline-marker{z-index:2;justify-content:center;display:flex}.timeline-dot{box-sizing:border-box;border:3px solid var(--bg);width:48px;height:48px;box-shadow:var(--shadow-soft);background:#fff;border-radius:999px;flex-shrink:0;place-items:center;padding:7px;display:grid;overflow:hidden}.timeline-dot img{object-fit:contain;width:100%;height:100%}.timeline-period{color:var(--muted-text);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-family:var(--font-mono);white-space:nowrap;margin:0}.timeline-head{margin-bottom:.6rem}.timeline-head h3{color:var(--text-strong);overflow-wrap:break-word;font-size:1.05rem;font-weight:700}.timeline-head p{color:var(--muted-text);margin-top:.2rem;font-size:.9rem}.timeline-summary{color:var(--text-strong);margin:0 0 .75rem;font-size:.92rem;font-style:italic;line-height:1.5}.bullets{color:var(--muted-text);gap:.4rem;margin:0;padding-left:1.1rem;font-size:.92rem;display:grid}.read-more-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:.75rem;padding:0;font-size:.85rem;font-weight:600}.read-more-toggle:hover,.read-more-toggle:focus-visible{text-decoration:underline}.timeline-position{border-top:1px dashed var(--border);margin-top:.9rem;padding-top:.9rem}.timeline-position:first-of-type{border-top:none;margin-top:0;padding-top:0}.timeline-position-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.05rem;display:flex}.timeline-position-head h4{color:var(--text-strong);font-size:.92rem;font-weight:600}.timeline-position-period{color:var(--muted-text);white-space:nowrap;flex-shrink:0;font-size:.78rem}.panel-accent{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--gradient-panel);padding:2.25rem 2rem}.panel-accent .section-title{margin-bottom:.75rem;font-size:clamp(1.5rem,3.5vw,2rem)}.panel-accent .lead{color:var(--muted-text);max-width:none;margin-bottom:1.5rem;font-size:1rem;line-height:1.65}.contact-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.contact-link{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--contact-link-bg);gap:.25rem;padding:1rem 1.1rem;text-decoration:none;transition:border-color .2s,transform .2s,background .2s;display:grid}.contact-link:hover{border-color:var(--border-strong);background:var(--surface-raised);transform:translateY(-2px)}.contact-link-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-text);font-size:.72rem;font-weight:600}.contact-link-value{color:var(--text);word-break:break-word;font-size:.92rem}@media (width<=900px){.hero-banner{padding:1rem 1.25rem 2.5rem}.hero-intro{min-height:calc(100vh - var(--nav-height) - 3.5rem);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;padding-top:2rem;padding-bottom:2rem}.hero-copy{text-align:center;flex-direction:column;align-items:center;display:flex}.hero-photo{width:clamp(140px,38vw,180px)}.hero-copy h1{font-size:clamp(2rem,9vw,3rem);line-height:1.05}.hero-role{font-size:clamp(1rem,4.5vw,1.35rem)}.hero-expertise{max-width:32rem;padding:0 .25rem;font-size:.95rem}.social-links{justify-content:center}.scroll-indicator{bottom:1.25rem}.page-content{gap:3rem;padding:0 1.25rem 3rem}.section-title{font-size:clamp(1.6rem,6vw,2.2rem)}.panel-accent{padding:1.75rem 1.25rem}.card-grid,.contact-actions,.testimonial-grid{grid-template-columns:1fr}.timeline:before{left:23px;transform:none}.timeline-entry{grid-template-rows:auto auto;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:.4rem 1rem}.timeline-entry.left .timeline-period,.timeline-entry.right .timeline-period{text-align:left;white-space:normal;grid-area:1/2}.timeline-entry.left .timeline-card,.timeline-entry.right .timeline-card{grid-area:2/2}.timeline-entry.left .timeline-marker,.timeline-entry.right .timeline-marker{grid-area:2/1;align-self:center}.timeline-entry.left .timeline-card:before,.timeline-entry.right .timeline-card:before{border-left:none;border-right:10px solid var(--border);top:50%;left:-10px;right:auto;transform:translateY(-50%)}.timeline-entry.left .timeline-card:after,.timeline-entry.right .timeline-card:after{border-left:none;border-right:9px solid var(--surface);top:50%;left:-9px;right:auto;transform:translateY(-50%)}.timeline-entry.left .timeline-card:hover:before,.timeline-entry.right .timeline-card:hover:before{border-right-color:var(--border-strong)}.timeline-entry.left .timeline-card:hover:after,.timeline-entry.right .timeline-card:hover:after{border-right-color:var(--surface-raised)}}@media (width<=480px){.hero-banner{padding:.85rem 1rem 2rem}.hero-intro{min-height:calc(100vh - var(--nav-height) - 2.85rem);gap:1.25rem;padding-top:1.5rem}.hero-photo{width:130px}.hero-copy h1{font-size:1.85rem}.hero-expertise{font-size:.9rem;line-height:1.55}.page-content{gap:2.5rem}.panel{padding:1.1rem}.site-nav{gap:.5rem;padding:.85rem 1rem}.site-nav-links{gap:.5rem}.site-nav-links a{font-size:.76rem}.nav-resume-button{padding:.5rem}.nav-resume-label{display:none}}
