@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&display=swap";:root{--royal:oklch(40% .18 265);--royal-mid:oklch(50% .2 265);--royal-bright:oklch(58% .22 265);--royal-light:oklch(92% .06 265);--royal-xlight:oklch(96% .03 265);--ink:oklch(14% .04 265);--ink-soft:oklch(28% .06 265);--text:oklch(42% .05 265);--text-muted:oklch(60% .04 265);--surface:oklch(98% .01 265);--surface-alt:oklch(95% .02 265);--border:oklch(88% .04 265);--border-strong:oklch(78% .07 265);--gold:oklch(72% .14 78);--gold-light:oklch(92% .05 78);--ff-display:"Playfair Display", Georgia, serif;--ff-body:"DM Sans", system-ui, sans-serif;font-family:var(--ff-body);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{overflow-x:hidden}#root{width:100%;min-height:100svh}h1,h2,h3,h4{font-family:var(--ff-display);color:var(--ink);line-height:1.15}a{color:inherit;text-decoration:none}ul{list-style:none}.reveal{opacity:0;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 clamp(20px,5vw,60px)}.section-label{font-family:var(--ff-body);letter-spacing:.15em;text-transform:uppercase;color:var(--royal-bright);align-items:center;gap:10px;margin-bottom:16px;font-size:11px;font-weight:600;display:flex}.section-label:after{content:"";background:var(--royal-bright);opacity:.5;flex:0 0 32px;height:1px}.section-heading{font-family:var(--ff-display);color:var(--ink);margin-bottom:clamp(40px,6vw,72px);font-size:clamp(28px,4vw,42px);font-weight:600}.nav{z-index:100;background:color-mix(in oklch, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);transition:box-shadow .3s;position:fixed;top:0;left:0;right:0}.nav.scrolled{box-shadow:0 2px 20px oklch(0% 0 0/.06)}.nav-inner{justify-content:space-between;align-items:center;max-width:1100px;height:64px;margin:0 auto;padding:0 clamp(20px,5vw,60px);display:flex}.nav-logo{font-family:var(--ff-display);color:var(--royal);letter-spacing:-.02em;cursor:pointer;font-size:20px;font-weight:700}.nav-links{align-items:center;gap:8px;display:flex}.nav-link{font-family:var(--ff-body);color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:14px;font-weight:500;transition:color .2s,background .2s}.nav-link:hover{color:var(--royal);background:var(--royal-xlight)}.nav-cta{font-family:var(--ff-body);color:var(--surface);background:var(--royal);cursor:pointer;border:none;border-radius:8px;margin-left:8px;padding:8px 20px;font-size:14px;font-weight:600;transition:background .2s,transform .15s}.nav-cta:hover{background:var(--royal-mid);transform:translateY(-1px)}.nav-mobile-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.nav-mobile-toggle span{background:var(--ink);border-radius:2px;width:22px;height:2px;transition:transform .3s,opacity .3s;display:block}@media (width<=680px){.nav-links{background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:16px;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.open{display:flex}.nav-link{width:100%;padding:10px 14px}.nav-cta{text-align:center;width:100%;margin-left:0}.nav-mobile-toggle{display:flex}}.hero{grid-template-columns:1fr 1fr;align-items:center;gap:60px;max-width:1100px;min-height:100svh;margin:0 auto;padding-top:64px;padding-left:clamp(20px,5vw,60px);padding-right:clamp(20px,5vw,60px);display:grid}.hero-content{padding:clamp(40px,8vw,90px) 0}.hero-eyebrow{font-family:var(--ff-body);letter-spacing:.18em;text-transform:uppercase;color:var(--royal-bright);align-items:center;gap:10px;margin-bottom:20px;font-size:12px;font-weight:600;display:flex}.hero-eyebrow:before{content:"";background:var(--royal-bright);width:28px;height:1px;display:inline-block}.hero-name{color:var(--ink);letter-spacing:-.03em;margin-bottom:16px;font-size:clamp(42px,6vw,72px);font-weight:700;line-height:1.05}.hero-name span{color:var(--royal);font-style:italic}.hero-title{font-family:var(--ff-display);color:var(--text);letter-spacing:-.01em;margin-bottom:36px;font-size:clamp(16px,2vw,22px);font-style:italic;font-weight:400}.hero-contacts{flex-direction:column;gap:10px;margin-bottom:40px;display:flex}.hero-contact-item{color:var(--text);align-items:center;gap:10px;font-size:14px;font-weight:400;text-decoration:none;transition:color .2s;display:flex}.hero-contact-item:hover{color:var(--royal)}.hero-contact-icon{background:var(--royal-xlight);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .2s;display:flex}.hero-contact-item:hover .hero-contact-icon{background:var(--royal-light)}.hero-contact-icon svg{width:15px;height:15px;stroke:var(--royal);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.hero-actions{gap:12px;display:flex}.btn-primary{font-family:var(--ff-body);color:var(--surface);background:var(--royal);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:12px 28px;font-size:15px;font-weight:600;transition:background .2s,transform .15s;display:inline-flex}.btn-primary:hover{background:var(--royal-mid);transform:translateY(-2px)}.btn-secondary{font-family:var(--ff-body);color:var(--royal);background:var(--royal-xlight);cursor:pointer;border:1.5px solid var(--royal-light);border-radius:10px;align-items:center;gap:8px;padding:12px 28px;font-size:15px;font-weight:500;transition:background .2s,border-color .2s,transform .15s;display:inline-flex}.btn-secondary:hover{background:var(--royal-light);border-color:var(--border-strong);transform:translateY(-2px)}.hero-visual{justify-content:center;align-items:center;display:flex;position:relative}.hero-card{background:var(--royal);color:var(--surface);border-radius:20px;width:100%;max-width:360px;padding:40px;position:relative;overflow:hidden}.hero-card:before{content:"";background:oklch(from var(--royal) calc(l + .12) c h / .4);border-radius:50%;width:180px;height:180px;position:absolute;top:-60px;right:-60px}.hero-card:after{content:"";background:oklch(from var(--royal) calc(l - .08) c h / .3);border-radius:50%;width:120px;height:120px;position:absolute;bottom:-40px;left:-40px}.hero-card-initials{font-family:var(--ff-display);color:oklch(from var(--surface) l c h / .2);z-index:1;margin-bottom:24px;font-size:64px;font-weight:700;line-height:1;position:relative}.hero-card-name{font-family:var(--ff-display);color:var(--surface);z-index:1;margin-bottom:6px;font-size:22px;font-weight:600;position:relative}.hero-card-role{color:oklch(from var(--surface) l c h / .75);z-index:1;margin-bottom:32px;font-size:13px;font-weight:400;position:relative}.hero-card-stats{z-index:1;grid-template-columns:1fr 1fr;gap:16px;display:grid;position:relative}.hero-card-stat{background:oklch(from var(--surface) l c h / .12);border-radius:10px;padding:14px}.hero-card-stat-num{font-family:var(--ff-display);color:var(--surface);margin-bottom:4px;font-size:28px;font-weight:700;line-height:1}.hero-card-stat-label{color:oklch(from var(--surface) l c h / .65);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:500}@media (width<=840px){.hero{grid-template-columns:1fr;gap:40px}.hero-visual{order:-1}.hero-card{max-width:100%}}.section{padding:clamp(64px,10vw,110px) 0}.section-alt{background:var(--surface-alt)}.section-dark{background:var(--royal)}.skills-grid{flex-wrap:wrap;gap:10px;display:flex}.skill-tag{font-family:var(--ff-body);color:var(--royal);background:var(--royal-xlight);border:1.5px solid var(--royal-light);cursor:default;border-radius:100px;padding:8px 18px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s,transform .15s,color .2s}.skill-tag:hover{background:var(--royal);color:var(--surface);border-color:var(--royal);transform:translateY(-2px)}.skill-tag.featured{background:var(--royal);color:var(--surface);border-color:var(--royal);font-weight:600}.timeline{position:relative}.timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:8px;bottom:0;left:0}.timeline-item{margin-bottom:60px;padding-left:36px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background:var(--royal);border:2px solid var(--surface);width:13px;height:13px;box-shadow:0 0 0 2px var(--royal);border-radius:50%;position:absolute;top:8px;left:-6px}.exp-meta{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.exp-date{font-family:var(--ff-body);letter-spacing:.1em;text-transform:uppercase;color:var(--royal-bright);background:var(--royal-xlight);border:1px solid var(--royal-light);white-space:nowrap;border-radius:100px;flex-shrink:0;margin-top:4px;padding:4px 12px;font-size:12px;font-weight:600}.exp-company{font-family:var(--ff-display);color:var(--ink);margin-bottom:4px;font-size:22px;font-weight:600}.exp-role{color:var(--royal-bright);margin-bottom:4px;font-size:15px;font-weight:500}.exp-location{color:var(--text-muted);align-items:center;gap:4px;margin-bottom:16px;font-size:13px;display:flex}.exp-bullets{flex-direction:column;gap:8px;margin-bottom:24px;list-style:none;display:flex}.exp-bullets li{color:var(--text);padding-left:20px;font-size:14px;line-height:1.6;position:relative}.exp-bullets li:before{content:"—";color:var(--royal-bright);font-size:12px;position:absolute;top:2px;left:0}.subprojects{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:8px;display:grid}.subproject{background:var(--royal-xlight);border:1px solid var(--royal-light);border-radius:10px;padding:16px}.subproject-name{font-family:var(--ff-display);color:var(--royal);margin-bottom:6px;font-size:15px;font-weight:600}.subproject-desc{color:var(--text);font-size:13px;line-height:1.55}@media (width<=600px){.exp-meta{flex-direction:column;gap:8px}.timeline:before{left:0}.timeline-item{padding-left:28px}}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.project-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--border-strong);transform:translateY(-4px);box-shadow:0 16px 40px oklch(40% .18 265/.1)}.project-card-header{background:var(--royal);padding:28px;position:relative;overflow:hidden}.project-card-header:before{content:"";background:oklch(from var(--royal) calc(l + .1) c h / .35);border-radius:50%;width:100px;height:100px;position:absolute;top:-30px;right:-30px}.project-number{font-family:var(--ff-display);color:oklch(from var(--surface) l c h / .15);z-index:1;font-size:40px;font-weight:700;line-height:1;position:relative}.project-role-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:oklch(from var(--gold) l c h / .15);border:1px solid oklch(from var(--gold) l c h / .3);z-index:1;border-radius:100px;margin-top:8px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block;position:relative}.project-card-body{flex-direction:column;flex:1;padding:24px;display:flex}.project-date{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:600}.project-name{font-family:var(--ff-display);color:var(--ink);margin-bottom:8px;font-size:20px;font-weight:600;line-height:1.25}.project-type{color:var(--royal-bright);margin-bottom:14px;font-size:13px;font-weight:500}.project-desc{color:var(--text);flex:1;font-size:14px;line-height:1.65}.project-tags{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.project-tag{color:var(--text-muted);background:var(--surface-alt);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.edu-grid{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(32px,5vw,64px);display:grid}.edu-column-title{font-family:var(--ff-body);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:12px;font-size:11px;font-weight:600}.edu-list{flex-direction:column;gap:28px;display:flex}.edu-item{border-left:2px solid var(--royal-light);padding-left:20px;transition:border-color .2s;position:relative}.edu-item:hover{border-left-color:var(--royal)}.edu-year{color:var(--royal-bright);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:12px;font-weight:600}.edu-institution{font-family:var(--ff-display);color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:600;line-height:1.3}.edu-degree{color:var(--text);margin-bottom:4px;font-size:14px}.edu-score{color:var(--royal-bright);font-size:13px;font-weight:600}.achievement-list{flex-direction:column;gap:18px;display:flex}.achievement-item{align-items:flex-start;gap:14px;display:flex}.achievement-icon{background:var(--royal-xlight);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.achievement-title{color:var(--ink);margin-bottom:3px;font-size:15px;font-weight:600}.achievement-sub{color:var(--text-muted);font-size:13px}@media (width<=680px){.edu-grid{grid-template-columns:1fr}}.footer{background:var(--royal);color:oklch(from var(--surface) l c h / .8);padding:clamp(48px,8vw,80px) 0 32px}.footer-inner{grid-template-columns:1fr auto;align-items:start;gap:40px;margin-bottom:48px;display:grid}.footer-logo{font-family:var(--ff-display);color:var(--surface);margin-bottom:12px;font-size:28px;font-weight:700}.footer-tagline{color:oklch(from var(--surface) l c h / .6);margin-bottom:24px;font-size:14px}.footer-contact{flex-direction:column;gap:8px;display:flex}.footer-contact-link{color:oklch(from var(--surface) l c h / .75);align-items:center;gap:8px;font-size:14px;text-decoration:none;transition:color .2s;display:flex}.footer-contact-link:hover{color:var(--surface)}.footer-contact-icon{background:oklch(from var(--surface) l c h / .1);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.footer-contact-icon svg{width:13px;height:13px;stroke:var(--surface);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.footer-links{gap:20px;display:flex}.footer-link{color:oklch(from var(--surface) l c h / .7);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:500;transition:color .2s}.footer-link:hover{color:var(--surface)}.footer-divider{background:oklch(from var(--surface) l c h / .12);height:1px;margin-bottom:24px}.footer-bottom{justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-copy{color:oklch(from var(--surface) l c h / .5);font-size:13px}.footer-social{gap:10px;display:flex}.footer-social-btn{background:oklch(from var(--surface) l c h / .1);border:1px solid oklch(from var(--surface) l c h / .15);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,border-color .2s,transform .15s;display:flex}.footer-social-btn:hover{background:oklch(from var(--surface) l c h / .18);border-color:oklch(from var(--surface) l c h / .3);transform:translateY(-2px)}.footer-social-btn svg{width:16px;height:16px;stroke:oklch(from var(--surface) l c h / .75);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}@media (width<=560px){.footer-inner{grid-template-columns:1fr}.footer-bottom{text-align:center;flex-direction:column}}
