@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap);:root{--bg-primary:#090a0f;--bg-secondary:#0d1b2a;--bg-card:#ffffff0a;--bg-card-hover:#ffffff12;--border:#ffffff14;--border-hover:#03a9f466;--accent:#03a9f4;--accent-dark:#0288d1;--accent-glow:#03a9f44d;--text-primary:#fff;--text-secondary:#94a3b8;--text-muted:#64748b;--navbar-height:68px;--font-heading:"Poppins",sans-serif;--font-body:"Inter",sans-serif;--radius:12px;--radius-lg:20px;--shadow:0 4px 24px #0006;--shadow-glow:0 0 40px #03a9f41f;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body,html{overflow-x:clip}body{background:radial-gradient(ellipse at top,#0d1b2a 0,#090a0f 65%);background-attachment:fixed;font-family:Inter,sans-serif;font-family:var(--font-body);line-height:1.6;min-height:100vh}body,h1,h2,h3,h4,h5,h6{color:#fff;color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-family:Poppins,sans-serif;font-family:var(--font-heading);line-height:1.2}h1>span{color:#03a9f4;color:var(--accent)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}ol,ul{list-style:none}.app{display:flex;flex-direction:column;min-height:100vh;position:relative}.app-background{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:fixed;z-index:0}.app-background-logo{filter:blur(2px);max-width:55vw;opacity:.025;width:480px}.main-content{flex:1 1;padding-top:68px;padding-top:var(--navbar-height);position:relative;z-index:1}.btn-primary{align-items:center;background:#03a9f4;background:var(--accent);border:none;border-radius:50px;color:#fff;cursor:pointer;display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.9rem;font-weight:600;gap:8px;letter-spacing:.3px;padding:12px 28px;transition-duration:.15s;transition-property:transform,background-color,border-color,color,box-shadow;transition-timing-function:ease-out}.btn-primary:hover{background:#0288d1;background:var(--accent-dark);box-shadow:0 8px 28px #03a9f44d;box-shadow:0 8px 28px var(--accent-glow);color:#fff;transform:translateY(-2px)}.btn-secondary{align-items:center;background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:50px;color:#fff;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.9rem;font-weight:600;gap:8px;letter-spacing:.3px;padding:11px 28px;transition-duration:.15s;transition-property:transform,background-color,border-color,color,box-shadow;transition-timing-function:ease-out}.btn-secondary:hover{background:#03a9f40f;border-color:#03a9f4;border-color:var(--accent);color:#03a9f4;color:var(--accent);transform:translateY(-2px)}.btn-primary:active,.btn-secondary:active{transform:scale(.96)}.navbar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#090a0f99;border-bottom:1px solid #0000;height:68px;height:var(--navbar-height);left:0;position:fixed;right:0;top:0;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);z-index:100}.navbar.scrolled{background:#090a0feb;border-bottom-color:#ffffff14;border-bottom-color:var(--border);box-shadow:0 4px 30px #00000080}.navbar-inner{height:100%;justify-content:space-between;margin:0 auto;max-width:1100px;padding:0 24px}.navbar-brand,.navbar-inner{align-items:center;display:flex}.navbar-brand{border-radius:12px;flex-shrink:0;height:54px;justify-content:center;margin-left:-4px;transition:background-color .15s ease-out;width:54px}.navbar-brand img{height:46px;transition:transform .2s ease-out;width:46px}.navbar-brand:hover{background:#ffffff0d}.navbar-brand:hover img{transform:rotate(-8deg)}.navbar-brand:focus-visible{outline:2px solid #03a9f4;outline:2px solid var(--accent);outline-offset:2px}.nav-links{align-items:center;display:flex;gap:4px}.nav-links a{border-radius:8px;color:#94a3b8;color:var(--text-secondary);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.875rem;font-weight:500;letter-spacing:.2px;padding:6px 14px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.nav-links a:hover{background:#ffffff0a;background:var(--bg-card);color:#fff;color:var(--text-primary)}.nav-links a.active-link{background:#03a9f41a;color:#03a9f4;color:var(--accent)}.hamburger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;justify-content:center;padding:8px;z-index:110}.hamburger span{background:#fff;background:var(--text-primary);border-radius:2px;display:block;height:2px;transform-origin:center;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:24px}.hamburger.open span:first-child{transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{grid-gap:64px;align-items:center;display:grid;gap:64px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);margin:0 auto;max-width:1100px;min-height:calc(100vh - 68px);min-height:calc(100vh - var(--navbar-height));padding:60px 24px 96px;position:relative}.hero:before{background-image:linear-gradient(hsla(0,0%,100%,.035) 1px,#0000 0),linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,#0000 0);background-size:56px 56px;content:"";inset:0 -40px;mask-image:radial-gradient(ellipse 70% 60% at 60% 45%,#000 20%,#0000 75%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 60% 45%,#000 20%,#0000 75%);pointer-events:none;position:absolute;z-index:-1}.hero-text{display:flex;flex-direction:column;gap:22px}.hero-greeting{align-items:center;animation:fadeSlideUp .6s ease 0s both;color:#03a9f4;color:var(--accent);display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.8rem;font-weight:600;gap:12px;letter-spacing:3px;text-transform:uppercase}.hero-greeting:before{background:#03a9f4;background:var(--accent);content:"";flex-shrink:0;height:1px;width:32px}.hero-name{text-wrap:balance;animation:fadeSlideUp .6s ease .1s both;color:#fff;color:var(--text-primary);font-size:clamp(3rem,8vw,5.6rem);font-weight:800;letter-spacing:-.04em;line-height:.95}.hero-name-last{-webkit-text-stroke:1.5px #ffffff8c;color:#0000}.hero-role{align-items:center;animation:fadeSlideUp .6s ease .2s both;color:#94a3b8;color:var(--text-secondary);display:flex;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:clamp(.85rem,1.8vw,1rem);font-weight:500;gap:8px;min-height:1.8rem}.hero-role-prompt{color:#03a9f4;color:var(--accent)}.hero-role .cursor{animation:blink 1s step-end infinite;background:#03a9f4;background:var(--accent);border-radius:1px;display:inline-block;flex-shrink:0;height:1.1em;width:8px}.hero-bio{text-wrap:pretty;animation:fadeSlideUp .6s ease .3s both;color:#94a3b8;color:var(--text-secondary);font-size:1rem;line-height:1.8;max-width:480px}.hero-cta{animation:fadeSlideUp .6s ease .4s both;display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.hero-cta svg{font-size:.8em}.hero-cta .btn-primary svg{transition:transform .15s ease-out}.hero-cta .btn-primary:hover svg{transform:translateX(3px)}.hero-journey{align-items:center;animation:fadeSlideUp .6s ease .5s both;border-top:1px solid #ffffff14;border-top:1px solid var(--border);color:#64748b;color:var(--text-muted);display:flex;flex-wrap:wrap;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.78rem;font-weight:500;gap:10px 0;margin-top:18px;padding-top:22px}.hero-journey li{align-items:center;display:inline-flex;gap:8px}.hero-journey li:before{border:1px solid #64748b;border:1px solid var(--text-muted);border-radius:50%;content:"";flex-shrink:0;height:7px;width:7px}.hero-journey li+li:after{background:linear-gradient(90deg,#ffffff14,#64748b);background:linear-gradient(90deg,var(--border),var(--text-muted));content:"";height:1px;margin:0 4px 0 12px;order:-1;width:28px}.hero-journey li.is-current{color:#fff;color:var(--text-primary)}.hero-journey li.is-current:before{background:#03a9f4;background:var(--accent);border-color:#03a9f4;border-color:var(--accent);box-shadow:0 0 0 4px #03a9f42e}.hero-image{align-items:center;animation:fadeSlideUp .6s ease .2s both;display:flex;justify-content:center}.portrait-frame{aspect-ratio:4/5;position:relative;width:min(100%,340px)}.portrait-frame:before{border:1px solid #03a9f459;border-radius:28px;content:"";inset:0;position:absolute;transform:translate(18px,18px)}.portrait-orbit{aspect-ratio:1;border:1px dashed #ffffff12;border-radius:50%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:140%}.portrait-orbit:after{background:#03a9f4;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #03a9f4;box-shadow:0 0 12px var(--accent);content:"";height:8px;left:-4px;margin-top:-4px;position:absolute;top:50%;width:8px}.portrait-orbit{animation:orbit 24s linear infinite}.portrait{border-radius:28px;box-shadow:0 1px 2px #0006,0 24px 60px -12px #000000b3,0 0 80px #03a9f41f;filter:saturate(.9);height:100%;object-fit:cover;outline:1px solid #ffffff1a;outline-offset:-1px;position:relative;transition:transform .3s ease-out,filter .3s ease-out;width:100%}.portrait-frame:hover .portrait{filter:saturate(1);transform:translate(-4px,-4px)}.scroll-hint{align-items:center;animation:fadeIn 1s ease 1.2s forwards;bottom:32px;display:flex;flex-direction:column;gap:6px;left:50%;opacity:0;position:absolute;transform:translateX(-50%)}.scroll-hint-dot{animation:scroll-pulse 1.8s ease-in-out infinite;background:#64748b;background:var(--text-muted);border-radius:50%;height:5px;width:5px}.scroll-hint-dot:nth-child(2){animation-delay:.2s}.scroll-hint-dot:nth-child(3){animation-delay:.4s}.what-i-do{margin:0 auto;max-width:1100px;padding:60px 24px 80px}.section-label{color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:3px;margin-bottom:10px;text-align:center;text-transform:uppercase}.section-title{text-wrap:balance;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;letter-spacing:-.02em;margin-bottom:48px;text-align:center}.what-i-do .section-label,.what-i-do .section-title{text-align:left}.what-i-do-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.what-i-do-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:20px;border-radius:var(--radius-lg);overflow:hidden;padding:28px 26px 30px;position:relative;text-align:left;transition-duration:.2s;transition-property:transform,border-color,background-color,box-shadow;transition-timing-function:ease-out}.what-i-do-card:before{background:linear-gradient(90deg,#03a9f4,#0000);background:linear-gradient(90deg,var(--accent),#0000);content:"";height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:left;transition:transform .3s ease-out}.what-i-do-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f440;box-shadow:0 4px 24px #0006,0 0 40px #03a9f41f;box-shadow:var(--shadow),var(--shadow-glow);transform:translateY(-4px)}.what-i-do-card:hover:before{transform:scaleX(1)}.what-i-do-card-head{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:28px}.what-i-do-icon{align-items:center;background:#ffffff0a;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;display:flex;font-size:1.35rem;height:48px;justify-content:center;width:48px}.what-i-do-icon img{height:24px;width:24px}.what-i-do-index{-webkit-text-stroke:1px #ffffff1f;font-feature-settings:"tnum";color:#0000;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:2.4rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.04em;line-height:1}.what-i-do-card h3{text-wrap:balance;color:#fff;color:var(--text-primary);font-size:1.05rem;font-weight:600;margin-bottom:10px}.what-i-do-card p{text-wrap:pretty;color:#94a3b8;color:var(--text-secondary);font-size:.875rem;line-height:1.75}.skills-carousel{overflow:hidden;padding:20px 0 72px}.skills-carousel .section-label{margin-bottom:24px}.carousel-mask{margin:0 auto;mask-image:linear-gradient(90deg,#0000 0,#000 12%,#000 88%,#0000);-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 12%,#000 88%,#0000);max-width:1100px;overflow:hidden;position:relative}.carousel-track{animation:marquee 40s linear infinite;display:flex;gap:12px;width:max-content}.carousel-track:hover{animation-play-state:paused}.carousel-pill{align-items:center;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:50px;color:#94a3b8;color:var(--text-secondary);display:inline-flex;flex-shrink:0;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.83rem;font-weight:500;gap:8px;padding:9px 18px;transition:border-color .25s ease,color .25s ease,background .25s ease;white-space:nowrap}.carousel-pill:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f466;border-color:var(--border-hover);color:#fff;color:var(--text-primary)}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes orbit{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}@media (prefers-reduced-motion:reduce){.carousel-track,.portrait-orbit{animation:none}}.page-head{display:flex;flex-direction:column;gap:18px;margin-bottom:44px}.page-eyebrow{align-items:center;animation:fadeSlideUp .5s ease both;color:#03a9f4;color:var(--accent);display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.78rem;font-weight:600;gap:12px;letter-spacing:3px;text-transform:uppercase}.page-eyebrow:before{background:#03a9f4;background:var(--accent);content:"";flex-shrink:0;height:1px;width:32px}.page-title{text-wrap:balance;animation:fadeSlideUp .5s ease .06s both;font-size:clamp(2.6rem,7vw,4.4rem);font-weight:800;letter-spacing:-.04em;line-height:.95}h1>.page-title-outline{-webkit-text-stroke:1.5px #ffffff8c;color:#0000}.page-intro{text-wrap:pretty;animation:fadeSlideUp .5s ease .12s both;color:#94a3b8;color:var(--text-secondary);font-size:1rem;line-height:1.8;max-width:560px}.page-intro strong{color:#fff;color:var(--text-primary);font-weight:600}.about-page{grid-gap:72px;align-items:start;display:grid;gap:72px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);margin:0 auto;max-width:1100px;padding:60px 24px 96px}.about-aside{align-items:flex-start;display:flex;flex-direction:column;position:sticky;top:100px;top:calc(var(--navbar-height) + 32px)}.about-aside .page-head,.about-highlights{margin-bottom:32px}.about-highlights{animation:fadeSlideUp .5s ease .18s both;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:20px;border-radius:var(--radius-lg);display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;width:100%}.highlight-card{display:flex;flex-direction:column-reverse;gap:8px;justify-content:flex-end;padding:20px 18px}.highlight-card+.highlight-card{border-left:1px solid #ffffff14;border-left:1px solid var(--border)}.highlight-value{font-feature-settings:"tnum";color:#fff;color:var(--text-primary);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:1.9rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.03em;line-height:1}.highlight-label{text-wrap:balance;color:#64748b;color:var(--text-muted);font-size:.76rem;line-height:1.4}.about-aside .btn-primary{animation:fadeSlideUp .5s ease .24s both}.about-aside .btn-primary svg{font-size:.8em}.about-section-title{align-items:center;color:#03a9f4;color:var(--accent);display:flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.78rem;font-weight:600;gap:16px;letter-spacing:3px;margin-bottom:24px;text-transform:uppercase}.about-section-title:after{background:#ffffff14;background:var(--border);content:"";flex:1 1;height:1px}.about-journey{animation:fadeSlideUp .5s ease .2s both;padding-top:8px}.timeline{padding-left:32px;position:relative}.timeline:before{background:linear-gradient(180deg,#03a9f4 0,#03a9f440 30%,#ffffff14);background:linear-gradient(to bottom,var(--accent) 0,#03a9f440 30%,var(--border) 100%);bottom:24px;content:"";left:6px;position:absolute;top:24px;width:1px}.timeline-item{margin-bottom:10px;position:relative}.timeline-dot{background:#090a0f;background:var(--bg-primary);border:1px solid #64748b;border:1px solid var(--text-muted);border-radius:50%;height:11px;left:-31px;position:absolute;top:23px;transition-duration:.2s;transition-property:border-color,box-shadow,background-color;width:11px;z-index:1}.timeline-item.active .timeline-dot,.timeline-item.current .timeline-dot,.timeline-item:hover .timeline-dot{border-color:#03a9f4;border-color:var(--accent)}.timeline-item.current .timeline-dot{background:#03a9f4;background:var(--accent);box-shadow:0 0 0 4px #03a9f42e}.timeline-card{background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;transition-duration:.2s;transition-property:background-color,border-color}.timeline-item:hover .timeline-card{background:#ffffff12;background:var(--bg-card-hover)}.timeline-item.active .timeline-card{background:#03a9f40a;border-color:#03a9f44d}.timeline-header{align-items:center;background:none;border:none;border-radius:16px;color:inherit;cursor:pointer;display:flex;font:inherit;gap:16px;padding:16px 20px;text-align:left;width:100%}.timeline-header:focus-visible{outline:2px solid #03a9f4;outline:2px solid var(--accent);outline-offset:2px}.timeline-step{font-feature-settings:"tnum";color:#64748b;color:var(--text-muted);flex-shrink:0;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.72rem;font-variant-numeric:tabular-nums;font-weight:600}.timeline-item.active .timeline-step{color:#03a9f4;color:var(--accent)}.timeline-meta{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0}.timeline-role{text-wrap:balance;align-items:center;color:#fff;color:var(--text-primary);display:flex;flex-wrap:wrap;font-size:.95rem;font-weight:600;gap:8px}.timeline-badge,.timeline-role{font-family:Poppins,sans-serif;font-family:var(--font-heading)}.timeline-badge{background:#34d3991f;border:1px solid #34d3994d;border-radius:50px;color:#34d399;font-size:.6rem;font-weight:700;letter-spacing:.6px;padding:2px 8px;text-transform:uppercase}.timeline-company{font-size:.8rem;font-weight:500}.timeline-chevron,.timeline-company{color:#64748b;color:var(--text-muted)}.timeline-chevron{flex-shrink:0;transition:transform .25s ease-out,color .25s ease-out}.timeline-item.active .timeline-chevron{color:#03a9f4;color:var(--accent);transform:rotate(180deg)}.timeline-desc{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s ease-out,opacity .2s ease-out}.timeline-item.active .timeline-desc{grid-template-rows:1fr;opacity:1}.timeline-desc-inner{overflow:hidden}.timeline-desc p{text-wrap:pretty;color:#94a3b8;color:var(--text-secondary);font-size:.875rem;line-height:1.8;padding:0 20px 18px 48px}.skills-page{margin:0 auto;max-width:1100px;padding:60px 24px 96px}.skills-page .page-head{margin-bottom:28px}.skills-legend{align-items:center;animation:fadeSlideUp .5s ease .18s both;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px 28px;margin-bottom:44px;padding-bottom:28px}.skills-categories{display:flex;flex-direction:column;gap:20px}.skills-category{background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:20px;border-radius:var(--radius-lg);padding:22px 10px 10px}.skills-category-head{align-items:baseline;display:flex;justify-content:space-between;padding:0 12px 14px}.skills-category-label{color:#03a9f4;color:var(--accent);font-size:.75rem;font-weight:600;letter-spacing:3px;text-transform:uppercase}.skills-category-count,.skills-category-label{font-family:Poppins,sans-serif;font-family:var(--font-heading)}.skills-category-count{-webkit-text-stroke:1px #ffffff24;font-feature-settings:"tnum";color:#0000;font-size:1.6rem;font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.skills-collapse{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s ease-out}.skills-category:not(.is-open) .skills-collapse{grid-template-rows:0fr}.skills-collapse-inner{min-height:0;overflow:hidden}.skills-category-head.is-toggle{align-items:center;background:none;border:none;border-radius:12px;color:inherit;cursor:pointer;display:flex;font:inherit;gap:12px;min-height:48px;padding:4px 12px;text-align:left;width:100%}.skills-category-head.is-toggle:focus-visible{outline:2px solid #03a9f4;outline:2px solid var(--accent);outline-offset:2px}.skills-category-title{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.is-toggle .skills-category-label{letter-spacing:2px}.skills-category-total{font-feature-settings:"tnum";color:#64748b;color:var(--text-muted);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.75rem;font-variant-numeric:tabular-nums}.skills-category-preview{align-items:center;display:flex;flex-shrink:0;gap:6px;transition:opacity .2s ease-out}.skills-category-preview svg{display:block;height:16px;width:16px}.skills-category.is-open .skills-category-preview{opacity:0}.skills-category-more{font-feature-settings:"tnum";color:#64748b;color:var(--text-muted);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.7rem;font-variant-numeric:tabular-nums;font-weight:600}.skills-category-chevron{color:#64748b;color:var(--text-muted);flex-shrink:0;font-size:.75rem;transition:transform .25s ease-out,color .25s ease-out}.skills-category.is-open .skills-category-chevron{color:#03a9f4;color:var(--accent);transform:rotate(180deg)}.skills-grid{grid-gap:2px 8px;display:grid;gap:2px 8px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.skill-card{align-items:center;border-radius:10px;display:flex;gap:14px;opacity:0;padding:11px 12px;transform:translateY(8px);transition-duration:.4s,.4s,.15s;transition-property:opacity,transform,background-color;transition-timing-function:ease-out}.skill-card.visible{opacity:1;transform:translateY(0)}.skill-card-icon,.skill-card:hover{background:#ffffff0a}.skill-card-icon{align-items:center;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:9px;display:flex;flex-shrink:0;height:36px;justify-content:center;line-height:0;width:36px}.skill-card-icon svg{height:18px;width:18px}.skill-card-name{color:#fff;color:var(--text-primary);flex:1 1;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.9rem;font-weight:500;min-width:0}.skill-meter{align-items:center;display:inline-flex;flex-shrink:0;gap:10px}.skill-meter-bars{display:inline-flex;gap:3px}.skill-meter-bars span{background:#ffffff14;border-radius:2px;height:5px;width:14px}.skill-meter-bars span.on{background:var(--tier);box-shadow:0 0 8px color-mix(in srgb,var(--tier) 45%,#0000)}.skill-meter-label{color:#94a3b8;color:var(--text-secondary);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.72rem;font-weight:500;min-width:78px}.skills-legend .skill-meter-label{min-width:0}.future-page{animation:fadeIn .5s ease both;margin:0 auto;max-width:860px;padding:60px 24px}.future-page h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;margin-bottom:16px}.future-intro{color:#94a3b8;color:var(--text-secondary);font-size:1rem;line-height:1.7;margin-bottom:52px;max-width:560px}.future-grid{display:flex;flex-direction:column;gap:16px}.future-card{align-items:flex-start;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:20px;border-radius:var(--radius-lg);display:flex;gap:18px;padding:24px 28px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.future-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f466;border-color:var(--border-hover);transform:translateX(4px)}.future-status-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:1.1rem;height:38px;justify-content:center;width:38px}.future-status-icon.done{background:#34d3991f;border:1px solid #34d3994d}.future-status-icon.upcoming{background:#03a9f41f;border:1px solid #03a9f44d}.future-card-body{flex:1 1}.future-card-title{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.future-card-title h2{color:#fff;color:var(--text-primary);font-size:1.05rem;font-weight:600}.badge{border-radius:50px;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.65rem;font-weight:700;letter-spacing:.5px;padding:2px 10px;text-transform:uppercase}.badge-shipped{background:#34d3991f;border:1px solid #34d3994d;color:#34d399}.badge-new{background:#03a9f41f;border:1px solid #03a9f44d;color:#03a9f4;color:var(--accent)}.badge-soon{background:#fbbf241f;border:1px solid #fbbf244d;color:#fbbf24}.future-card-body p{color:#94a3b8;color:var(--text-secondary);font-size:.875rem;line-height:1.75}.projects-page{margin:0 auto;max-width:1100px;padding:60px 24px 96px}.projects-page .page-head,.projects-toolbar{margin-bottom:32px}.projects-toolbar{align-items:center;animation:fadeSlideUp .5s ease .18s both;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;padding-bottom:24px}.projects-filter{background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:50px;display:inline-flex;gap:4px;padding:4px}.projects-filter button{align-items:center;background:#0000;border:none;border-radius:50px;color:#94a3b8;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.85rem;font-weight:500;gap:8px;min-height:40px;padding:0 16px;transition-duration:.15s;transition-property:background-color,color,transform;transition-timing-function:ease-out}.projects-filter button:hover{color:#fff;color:var(--text-primary)}.projects-filter button:active{transform:scale(.96)}.projects-filter button.active{background:#03a9f4;background:var(--accent);color:#fff}.projects-filter button:focus-visible{outline:2px solid #03a9f4;outline:2px solid var(--accent);outline-offset:2px}.projects-count{font-feature-settings:"tnum";background:#ffffff14;border-radius:50px;font-size:.7rem;font-variant-numeric:tabular-nums;font-weight:600;min-width:20px;padding:1px 6px;text-align:center}.projects-filter button.active .projects-count{background:#ffffff38}.stack-legend{color:#64748b;color:var(--text-muted);display:flex;flex-wrap:wrap;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.75rem;gap:8px 18px}.stack-legend li{align-items:center;display:inline-flex;gap:7px}.stack-legend li:before{background:var(--layer);border-radius:2px;content:"";height:8px;width:8px}.projects-list{display:flex;flex-direction:column;gap:28px}.project-card{animation:fadeSlideUp .5s ease both;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:24px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);overflow:hidden;position:relative;transition-duration:.2s;transition-property:border-color,box-shadow;transition-timing-function:ease-out}.project-card:nth-child(2n){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.project-card:nth-child(2n) .project-preview-window{border-left:1px solid #ffffff14;border-left:1px solid var(--border);border-right:none;order:2}.project-card.is-confidential,.project-card.is-confidential:nth-child(2n){grid-template-columns:minmax(0,1fr)}.project-card.is-confidential:before{background:linear-gradient(180deg,#96bf48,#96bf4800);content:"";inset:0 auto 0 0;pointer-events:none;position:absolute;width:3px}.project-card.is-confidential .project-content{padding:30px 36px}.project-card:hover{border-color:#03a9f440;box-shadow:0 4px 24px #0006,0 0 40px #03a9f41f;box-shadow:var(--shadow),var(--shadow-glow)}.project-preview-window{align-items:center;background:radial-gradient(circle at 50% 55%,#03a9f41f,#0000 65%),#0d1b2a;background:radial-gradient(circle at 50% 55%,#03a9f41f,#0000 65%),var(--bg-secondary);border-right:1px solid #ffffff14;border-right:1px solid var(--border);display:flex;justify-content:center;overflow:hidden;padding:32px 28px;position:relative}.project-preview-window:before{background-image:radial-gradient(#ffffff0f 1px,#0000 0);background-size:18px 18px;content:"";inset:0;mask-image:radial-gradient(ellipse at center,#000 30%,#0000 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,#0000 75%);pointer-events:none;position:absolute}.preview-frame{background:#0b1320;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 1px 2px #0006,0 24px 48px -12px #000000a6;overflow:hidden;position:relative;transition:transform .3s ease-out;width:100%}.project-card:hover .preview-frame{transform:translateY(-4px)}.preview-chrome{align-items:center;background:#0d1b2af2;border-bottom:1px solid #ffffff0f;display:flex;gap:6px;height:28px;padding:0 10px}.chrome-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.chrome-dot.red{background:#ff5f57}.chrome-dot.yellow{background:#febc2e}.chrome-dot.green{background:#28c840}.chrome-url{background:#ffffff0d;border-radius:5px;color:#64748b;color:var(--text-muted);flex:1 1;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.64rem;margin-left:6px;min-width:0;overflow:hidden;padding:2px 10px;text-overflow:ellipsis;white-space:nowrap}.preview-viewport{aspect-ratio:16/10;overflow:hidden;position:relative}.preview-viewport.is-shot{aspect-ratio:auto}.preview-screenshot{height:100%;object-fit:cover;width:100%}.is-shot .preview-screenshot{height:auto}.preview-screenshot.is-logo{filter:drop-shadow(0 12px 24px rgba(0,0,0,.5));object-fit:contain;object-position:center;padding:28px}.preview-placeholder{align-items:center;color:#64748b;color:var(--text-muted);display:flex;flex-direction:column;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.72rem;font-weight:500;gap:14px;height:100%;justify-content:center;letter-spacing:2px;text-transform:uppercase;width:100%}.preview-placeholder svg{filter:drop-shadow(0 0 24px currentColor);height:44px;width:44px}.project-content{display:flex;flex-direction:column;gap:16px;min-width:0;padding:28px 30px}.project-head{align-items:flex-start;display:flex;gap:14px}.project-icon-sm{align-items:center;background:#ffffff0a;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.project-icon-sm svg{height:22px;width:22px}.project-icon-sm img{height:28px;width:28px}.project-head-text{flex:1 1;min-width:0}.project-content h2{text-wrap:balance;color:#fff;color:var(--text-primary);font-size:1.3rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.project-role{color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.3px;margin-top:4px}.project-role span{font-weight:500}.project-kind,.project-role span{color:#64748b;color:var(--text-muted)}.project-kind{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:50px;flex-shrink:0;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.62rem;font-weight:600;letter-spacing:1.2px;padding:3px 9px;text-transform:uppercase}.project-kind.is-work{border-color:#96bf484d;color:#96bf48}.project-desc{text-wrap:pretty;color:#94a3b8;color:var(--text-secondary);font-size:.9rem;line-height:1.75}.project-note{color:#64748b;color:var(--text-muted);font-size:.78rem;font-style:italic;line-height:1.6;margin-top:-6px}.stack-panel{background:#00000038;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;gap:14px;padding:16px 18px 18px}.stack-summary{align-items:center;display:flex;gap:14px}.stack-bar{display:flex;flex:1 1;gap:3px;height:6px}.stack-bar span{border-radius:3px;flex-basis:0;min-width:6px}.stack-total{font-feature-settings:"tnum";color:#64748b;color:var(--text-muted);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.7rem;font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.stack-layers{display:flex;flex-direction:column;gap:10px}.stack-layer{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:136px minmax(0,1fr)}.stack-layer-label{align-items:center;color:var(--layer);display:flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.68rem;font-weight:600;gap:8px;letter-spacing:1px;min-height:26px;text-transform:uppercase}.stack-layer-label:before{background:var(--layer);border-radius:2px;content:"";flex-shrink:0;height:6px;width:6px}.stack-chips{display:flex;flex-wrap:wrap;gap:6px}.stack-chip{align-items:center;background:color-mix(in srgb,var(--layer) 10%,#0000);border:1px solid color-mix(in srgb,var(--layer) 24%,#0000);border-radius:7px;color:#fff;color:var(--text-primary);display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.74rem;font-weight:500;min-height:26px;padding:0 10px;white-space:nowrap}.stack-chip-more{font-feature-settings:"tnum";background:#0000;border-style:dashed;color:var(--layer);cursor:pointer;font-variant-numeric:tabular-nums;transition-duration:.15s;transition-property:background-color,transform;transition-timing-function:ease-out}.stack-chip-more:hover{background:color-mix(in srgb,var(--layer) 12%,#0000)}.stack-chip-more:active{transform:scale(.96)}.stack-toggle{align-self:flex-start;background:none;border:none;color:#64748b;color:var(--text-muted);cursor:pointer;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.75rem;font-weight:500;padding:4px 0;text-decoration:underline;text-underline-offset:3px}.stack-toggle:hover{color:#fff;color:var(--text-primary)}.project-card-footer{display:flex;gap:10px;margin-top:auto}.project-link-btn{align-items:center;border-radius:50px;display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.83rem;font-weight:600;gap:8px;letter-spacing:.3px;min-height:40px;padding:0 20px;transition-duration:.15s;transition-property:transform,background-color,box-shadow;transition-timing-function:ease-out}.project-link-btn svg{font-size:.8em;transition:transform .15s ease-out}.project-link-btn.primary{background:#03a9f4;background:var(--accent);color:#fff}.project-link-btn.primary:hover{background:#0288d1;background:var(--accent-dark);box-shadow:0 6px 20px #03a9f44d;box-shadow:0 6px 20px var(--accent-glow);color:#fff}.project-link-btn.primary:hover svg{transform:translateX(3px)}.project-link-btn.primary:active{transform:scale(.96)}.project-link-btn.muted{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);color:#64748b;color:var(--text-muted);cursor:default}.footer{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#090a0fd9;border-top:1px solid #ffffff14;border-top:1px solid var(--border);position:relative;z-index:1}.footer-content{align-items:center;display:flex;gap:20px;justify-content:space-between;margin:0 auto;max-width:1100px;padding:22px 24px}.footer-left{color:#64748b;color:var(--text-muted);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.83rem}.footer-left strong{color:#03a9f4;color:var(--accent);font-weight:600}.footer-right{display:flex;gap:8px}.footer-social{align-items:center;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#64748b;color:var(--text-muted);display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:36px}.footer-social:hover{background:#03a9f41a;border-color:#03a9f44d;color:#03a9f4;color:var(--accent);transform:translateY(-2px)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes portrait-glow{0%,to{box-shadow:0 0 0 6px #03a9f41a,0 0 40px #03a9f440,0 0 80px #03a9f414}50%{box-shadow:0 0 0 8px #03a9f429,0 0 55px #03a9f466,0 0 100px #03a9f41f}}@keyframes scroll-pulse{0%{opacity:.2;transform:translateY(0)}50%{opacity:.8;transform:translateY(4px)}to{opacity:.2;transform:translateY(0)}}.socials-page{grid-gap:64px;align-items:end;display:grid;gap:64px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin:0 auto;max-width:1100px;padding:60px 24px 96px}.socials-email-card{animation:fadeSlideUp .5s ease .18s both;background:radial-gradient(120% 90% at 100% 0,#03a9f41f,#0000 60%),#ffffff0a;background:radial-gradient(120% 90% at 100% 0,#03a9f41f,#0000 60%),var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:24px;display:flex;flex-direction:column;gap:14px;padding:28px;position:relative}.socials-email-label{align-items:center;color:#64748b;color:var(--text-muted);display:inline-flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.75rem;font-weight:600;gap:8px;letter-spacing:1.5px;text-transform:uppercase}.socials-email-dot{background:#22c55e;border-radius:50%;box-shadow:0 0 0 3px #22c55e33;height:7px;width:7px}.socials-email-address{background-image:linear-gradient(#03a9f4,#03a9f4);background-image:linear-gradient(var(--accent),var(--accent));background-position:0 100%;background-repeat:no-repeat;background-size:0 2px;color:#fff;color:var(--text-primary);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:clamp(1.15rem,3.2vw,1.75rem);font-weight:700;letter-spacing:-.02em;max-width:100%;overflow-wrap:anywhere;position:relative;transition:background-size .3s ease-out,color .15s ease-out;width:fit-content}.socials-email-address:hover{background-size:100% 2px;color:#03a9f4;color:var(--accent)}.socials-email-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.socials-email-actions svg{font-size:.8em}.socials-copy-btn.copied,.socials-copy-btn.copied:hover{background:#4ade800f;border-color:#4ade80;color:#4ade80}.socials-grid{animation:fadeSlideUp .5s ease .24s both;display:flex;flex-direction:column;gap:10px;padding-top:8px}.socials-grid .about-section-title{margin-bottom:14px}.socials-card{align-items:center;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;display:flex;gap:16px;padding:16px 20px 16px 16px;position:relative;transition-duration:.2s;transition-property:transform,background-color,border-color;transition-timing-function:ease-out}.socials-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:color-mix(in srgb,var(--card-accent) 45%,#0000);transform:translateX(4px)}.socials-card:active{transform:translateX(4px) scale(.98)}.socials-card.featured{border-color:#ffffff24}.socials-card-icon{align-items:center;background:color-mix(in srgb,var(--card-accent) 10%,#0000);border:1px solid color-mix(in srgb,var(--card-accent) 20%,#0000);border-radius:10px;color:var(--card-accent);display:flex;flex-shrink:0;font-size:1.3rem;height:46px;justify-content:center;width:46px}.socials-card-body{display:flex;flex:1 1;flex-direction:column;gap:1px;min-width:0}.socials-card-label{color:#64748b;color:var(--text-muted);font-size:.68rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase}.socials-card-handle{color:#fff;color:var(--text-primary);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.98rem;font-weight:600}.socials-card-desc{text-wrap:pretty;color:#94a3b8;color:var(--text-secondary);font-size:.8rem}.socials-card-arrow{color:#64748b;color:var(--text-muted);flex-shrink:0;font-size:.85rem;transform:rotate(-45deg);transition:transform .2s ease-out,color .2s ease-out}.socials-card:hover .socials-card-arrow{color:#fff;color:var(--text-primary);transform:rotate(-45deg) translateX(3px)}@media (max-width:920px){.project-card,.project-card:nth-child(2n){grid-template-columns:minmax(0,1fr)}.project-card:nth-child(2n) .project-preview-window{border-left:none;order:0}.project-card:nth-child(2n) .project-preview-window,.project-preview-window{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);border-right:none}.preview-frame{max-width:560px}.about-page,.socials-page{gap:48px;grid-template-columns:1fr}.about-aside{position:static}}@media (max-width:768px){.hamburger{display:flex}.nav-links{align-items:center;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#090a0ffa;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);flex-direction:column;gap:2px;left:0;opacity:0;padding:28px 24px 36px;pointer-events:none;position:fixed;right:0;top:68px;top:var(--navbar-height);transform:translateY(-110%);transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s ease}.nav-links.open{opacity:1;pointer-events:all;transform:translateY(0)}.nav-links a{border-radius:10px;font-size:.95rem;padding:12px 20px;text-align:center;width:100%}.hero{gap:40px;grid-template-columns:1fr;min-height:auto;padding:32px 20px 60px}.hero:before{inset:0}.hero-image{order:-1;overflow:clip;padding:20px 0}.portrait-frame{width:220px}.portrait-frame:before{transform:translate(12px,12px)}.hero-bio{max-width:100%}.scroll-hint{display:none}.what-i-do-grid{grid-template-columns:1fr}.project-preview-window{padding:24px 20px}.footer-content{flex-direction:column;gap:14px;text-align:center}.socials-email-card{padding:22px}.socials-email-actions>*{flex:1 1 auto;justify-content:center}}@media (max-width:480px){.hero{padding:24px 16px 48px}.hero-journey li+li:after{width:14px}.about-page,.projects-page,.skills-page,.socials-page{padding:48px 16px}.what-i-do-card{padding:24px 20px}.page-head{margin-bottom:32px}.highlight-card{padding:16px 14px}.highlight-value{font-size:1.5rem}.timeline{padding-left:24px}.timeline-dot{left:-23px;top:21px}.timeline-header{gap:12px;padding:14px 16px}.timeline-desc p{padding:0 16px 16px}.skills-category{padding:10px 6px}.skills-category.is-open .skills-collapse-inner{padding-top:8px}.skill-meter-label{min-width:0}.skills-grid .skill-meter-label{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.projects-filter{width:100%}.projects-filter button{flex:1 1;justify-content:center;padding:0 10px}.project-card{border-radius:20px}.project-card.is-confidential .project-content,.project-content{padding:22px 18px}.project-content h2{font-size:1.15rem}.stack-panel{border-radius:12px;padding:14px}.stack-layer{gap:6px;grid-template-columns:minmax(0,1fr)}.stack-layer-label{min-height:0}.project-link-btn{justify-content:center;width:100%}}
/*# sourceMappingURL=main.927747d5.css.map*/