@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{scroll-behavior:smooth}body,html{height:100%;overflow-x:hidden}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%}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:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.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:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-secondary:hover{background:#03a9f40f;border-color:#03a9f4;border-color:var(--accent);color:#03a9f4;color:var(--accent);transform:translateY(-2px)}.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{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:1100px;padding:0 24px}.navbar-brand{color:#fff;color:var(--text-primary);flex-shrink:0;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:1.3rem;font-weight:700;letter-spacing:-.5px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.navbar-brand span,.navbar-brand:hover{color:#03a9f4;color:var(--accent)}.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{align-items:center;display:flex;gap:80px;margin:0 auto;max-width:1100px;min-height:calc(100vh - 68px);min-height:calc(100vh - var(--navbar-height));padding:60px 24px;position:relative}.hero-text{display:flex;flex:1 1;flex-direction:column;gap:20px}.hero-greeting{animation:fadeSlideUp .6s ease 0s both;color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.85rem;font-weight:600;letter-spacing:3px;text-transform:uppercase}.hero-name{-webkit-text-fill-color:#0000;animation:fadeSlideUp .6s ease .1s both;background:linear-gradient(135deg,#fff,#94a3b8);-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;line-height:1.05}.hero-role{align-items:center;animation:fadeSlideUp .6s ease .2s both;color:#94a3b8;color:var(--text-secondary);display:flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:clamp(1rem,2.5vw,1.3rem);font-weight:500;gap:6px;min-height:2rem}.hero-role .cursor{animation:blink 1s step-end infinite;background:#03a9f4;background:var(--accent);border-radius:2px;display:inline-block;flex-shrink:0;height:1.1em;width:2px}.hero-bio{animation:fadeSlideUp .6s ease .3s both;color:#94a3b8;color:var(--text-secondary);font-size:.975rem;line-height:1.8;max-width:460px}.hero-cta{animation:fadeSlideUp .6s ease .4s both;display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}.hero-image{align-items:center;animation:fadeSlideUp .6s ease .2s both;display:flex;flex-shrink:0;justify-content:center}.portrait{animation:portrait-glow 4s ease-in-out infinite;border:3px solid #03a9f4;border:3px solid var(--accent);border-radius:50%;box-shadow:0 0 0 6px #03a9f41a,0 0 40px #03a9f440,0 0 80px #03a9f414;height:260px;object-fit:cover;transition:transform .4s ease;width:260px}.portrait:hover{transform:scale(1.03)}.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{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700;margin-bottom:48px;text-align:center}.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);padding:32px 24px;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.what-i-do-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f466;border-color:var(--border-hover);box-shadow:0 4px 24px #0006,0 0 40px #03a9f41f;box-shadow:var(--shadow),var(--shadow-glow);transform:translateY(-4px)}.what-i-do-icon{display:flex;font-size:2.2rem;justify-content:center;margin-bottom:16px}.what-i-do-card h3{color:#fff;color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:10px}.what-i-do-card p{color:#94a3b8;color:var(--text-secondary);font-size:.875rem;line-height:1.75}.skills-carousel{overflow:hidden;padding:20px 0 56px}.skills-carousel .section-label{margin-bottom:24px}.carousel-mask{margin:0 auto;mask-image:linear-gradient(90deg,#0000 0,#000 10%,#000 90%,#0000);-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 10%,#000 90%,#0000);max-width:560px;overflow:hidden;position:relative}.carousel-track{animation:marquee 32s 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%)}}.about-page{animation:fadeIn .5s ease both;margin:0 auto;max-width:860px;padding:60px 24px 80px}.about-page h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;margin-bottom:16px}.about-intro{color:#94a3b8;color:var(--text-secondary);font-size:1rem;line-height:1.8;margin-bottom:44px;max-width:680px}.about-intro strong{color:#fff;color:var(--text-primary);font-weight:600}.about-highlights{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,1fr);margin-bottom:56px}.highlight-card{background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;padding:22px 20px;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.highlight-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f44d}.highlight-value{color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:1.8rem;font-weight:800;line-height:1}.highlight-label{color:#64748b;color:var(--text-muted);font-size:.78rem;line-height:1.4}.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;max-width:220px}.timeline{margin-bottom:16px;padding-left:36px;position:relative}.timeline:before{background:linear-gradient(180deg,#03a9f4 0,#03a9f414);background:linear-gradient(to bottom,var(--accent) 0,#03a9f414 100%);border-radius:2px;bottom:12px;content:"";left:10px;position:absolute;top:12px;width:2px}.timeline-item{cursor:pointer;margin-bottom:10px;position:relative}.timeline-dot{background:#090a0f;background:var(--bg-primary);border:2px solid #ffffff14;border:2px solid var(--border);border-radius:50%;height:12px;left:-30px;position:absolute;top:19px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:12px;z-index:1}.timeline-item:hover .timeline-dot{border-color:#03a9f480}.timeline-item.active .timeline-dot{border-color:#03a9f4;border-color:var(--accent);box-shadow:0 0 0 4px #03a9f426}.timeline-item.current .timeline-dot{background:#03a9f4;background:var(--accent);border-color:#03a9f4;border-color:var(--accent);box-shadow:0 0 0 4px #03a9f433}.timeline-card{background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);padding:16px 20px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);-webkit-user-select:none;user-select:none}.timeline-item:hover .timeline-card{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f433}.timeline-item.active .timeline-card{background:#03a9f40a;border-color:#03a9f466}.timeline-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.timeline-meta{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:8px}.timeline-role{color:#fff;color:var(--text-primary);font-size:.925rem;font-weight:600}.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;flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.5px;padding:2px 9px;text-transform:uppercase}.timeline-company{color:#03a9f4;color:var(--accent);font-size:.8rem;font-weight:500;opacity:.85;width:100%}.timeline-chevron{color:#64748b;color:var(--text-muted);flex-shrink:0;transition:transform .3s ease,color .3s ease}.timeline-chevron.open{color:#03a9f4;color:var(--accent);transform:rotate(180deg)}.timeline-desc{margin-top:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease,margin-top .3s ease}.timeline-desc.visible{margin-top:14px;max-height:200px;opacity:1}.timeline-desc p{color:#94a3b8;color:var(--text-secondary);font-size:.875rem;line-height:1.8}.cv-section{margin-top:52px}.skills-page{animation:fadeIn .5s ease both;margin:0 auto;max-width:860px;padding:60px 24px}.skills-page h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;margin-bottom:16px}.skills-subtitle{color:#94a3b8;color:var(--text-secondary);font-size:1rem;line-height:1.7;margin-bottom:32px;max-width:560px}.skills-legend{align-items:center;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:48px}.skills-legend-item{align-items:center;color:#94a3b8;color:var(--text-secondary);display:flex;font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.82rem;font-weight:500;gap:7px}.skills-legend-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.skills-category{margin-bottom:44px}.skills-category-label{color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:3px;margin-bottom:16px;text-transform:uppercase}.skills-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.skill-card{align-items:center;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:10px;opacity:0;padding:14px 16px;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease,border-color .25s ease,background .25s ease}.skill-card.visible{opacity:1;transform:translateY(0)}.skill-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f466;border-color:var(--border-hover)}.skill-card-icon{flex-shrink:0;font-size:0;line-height:0}.skill-card-name{color:#fff;color:var(--text-primary);flex:1 1;font-size:.875rem;font-weight:600}.skill-card-name,.skill-tier-badge{font-family:Poppins,sans-serif;font-family:var(--font-heading)}.skill-tier-badge{border:1px solid;border-radius:50px;font-size:.65rem;font-weight:700;letter-spacing:.5px;padding:2px 9px;text-transform:uppercase;white-space:nowrap}.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{animation:fadeIn .5s ease both;margin:0 auto;max-width:1180px;padding:60px 24px}.projects-page h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;margin-bottom:16px}.projects-intro{color:#94a3b8;color:var(--text-secondary);font-size:1rem;line-height:1.7;margin-bottom:52px;max-width:560px}.projects-columns{grid-gap:40px;align-items:start;display:grid;gap:40px;grid-template-columns:1fr 1fr}.projects-section-head{background:linear-gradient(180deg,#090a0f 0,#090a0f 72%,#090a0f00);padding:24px 0 22px 22px;position:sticky;top:68px;top:var(--navbar-height);z-index:4}.projects-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:700;gap:12px;letter-spacing:2px;text-transform:uppercase}.projects-section-title:after{background:#ffffff14;background:var(--border);content:"";flex:1 1;height:1px;order:3}.projects-count{background:#ffffff0f;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:50px;color:#64748b;color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:0;order:2;padding:1px 8px}.projects-section-sub{color:#64748b;color:var(--text-muted);font-size:.83rem;margin-top:12px}.projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}@media (min-width:921px){@supports (grid-template-rows:subgrid){.projects-columns{align-items:stretch;column-gap:40px;grid-template-rows:auto repeat(8,auto);grid-template-rows:auto repeat(var(--project-rows,8),auto);row-gap:24px}.projects-section{display:grid;grid-row:1/-1;grid-template-rows:subgrid}.projects-grid{grid-row:2/-1;grid-template-rows:subgrid}.projects-section-head{background:none;padding-bottom:0;position:static}}}.project-card{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;flex-direction:column;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.project-card:hover{border-color:#03a9f466;border-color:var(--border-hover);box-shadow:0 4px 24px #0006,0 0 40px #03a9f41f;box-shadow:var(--shadow),var(--shadow-glow);transform:translateY(-4px)}.project-preview-window{background:#0d1b2a;background:var(--bg-secondary);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);flex-shrink:0;height:215px;overflow:hidden;position:relative;width:100%}.preview-chrome{align-items:center;background:#0d1b2af2;border-bottom:1px solid #ffffff0f;display:flex;flex-shrink:0;gap:6px;height:30px;left:0;padding:0 10px;position:absolute;right:0;top:0;z-index:2}.chrome-dot{border-radius:50%;flex-shrink:0;height:9px;width:9px}.chrome-dot.red{background:#ff5f57}.chrome-dot.yellow{background:#febc2e}.chrome-dot.green{background:#28c840}.chrome-url{background:#ffffff0d;border-radius:4px;color:#64748b;color:var(--text-muted);flex:1 1;font-family:Courier New,monospace;font-size:.65rem;margin-left:4px;overflow:hidden;padding:2px 10px;text-overflow:ellipsis;white-space:nowrap}.preview-viewport{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:30px}.preview-screenshot{display:block;filter:blur(3px);height:100%;left:0;object-fit:contain;object-position:center;position:absolute;top:0;transform:scale(1.04);transition:filter .4s ease,transform .4s ease;width:100%}.project-card:hover .preview-screenshot{filter:blur(0);transform:scale(1)}@media (hover:none){.preview-screenshot{filter:none;transform:none}}.preview-screenshot.is-logo{filter:none;object-fit:contain;padding:34px;transform:none}.project-card:hover .preview-screenshot.is-logo{transform:scale(1.04)}.preview-viewport:after{background:linear-gradient(180deg,#0000 0,#090a0f80 50%,#090a0fd1);bottom:0;content:"";height:55%;left:0;pointer-events:none;position:absolute;right:0;z-index:3}.preview-placeholder{align-items:center;background:radial-gradient(circle at center,#fb923c0f 0,#0000 70%);color:#64748b;color:var(--text-muted);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.78rem;font-weight:500;height:100%;justify-content:center;letter-spacing:1px;text-transform:uppercase;width:100%}.preview-placeholder,.project-content{display:flex;flex-direction:column;gap:12px}.project-content{flex:1 1;padding:24px}.project-title-row{align-items:center;display:flex;gap:12px}.project-icon-sm{flex-shrink:0;font-size:0;line-height:0}.project-content h2{color:#fff;color:var(--text-primary);font-size:1.05rem;font-weight:700}.project-role{color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.76rem;font-weight:600;letter-spacing:.4px;margin-top:-4px}.project-role span{color:#64748b;color:var(--text-muted);font-weight:500}.project-desc{color:#94a3b8;color:var(--text-secondary);flex:1 1;font-size:.875rem;line-height:1.75}.project-note{color:#64748b;color:var(--text-muted);font-size:.78rem;font-style:italic;line-height:1.6}.tech-tags{display:flex;flex-wrap:wrap;gap:7px}.tech-tag{background:#03a9f414;border:1px solid #03a9f433;border-radius:50px;color:#03a9f4;color:var(--accent);font-family:Poppins,sans-serif;font-family:var(--font-heading);font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:3px 10px}.project-card-footer{display:flex;gap:10px;margin-top:4px}.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:6px;letter-spacing:.3px;padding:8px 20px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.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;transform:translateY(-2px)}.project-link-btn.muted{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);color:#64748b;color:var(--text-muted);cursor:default}.project-link-btn.coming-soon{background:#fbbf2414;border:1px solid #fbbf2440;color:#fbbf24;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{margin:0 auto;max-width:680px;padding:64px 24px 80px}.socials-page h1{font-size:clamp(2rem,5vw,2.8rem);font-weight:800;margin-bottom:12px}.socials-intro{color:#94a3b8;color:var(--text-secondary);font-size:1.05rem;line-height:1.7;margin-bottom:40px}.socials-email-card{align-items:center;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;margin-bottom:36px;padding:22px 24px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.socials-email-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#03a9f466;border-color:var(--border-hover);box-shadow:0 0 40px #03a9f41f;box-shadow:var(--shadow-glow)}.socials-email-icon{align-items:center;background:#03a9f41a;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.socials-email-content{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0}.socials-email-label{color:#64748b;color:var(--text-muted);font-size:.72rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase}.socials-email-address{color:#03a9f4;color:var(--accent);font-size:1rem;font-weight:600;text-decoration:none;transition:opacity .2s;word-break:break-all}.socials-email-address:hover{opacity:.8}.socials-copy-btn{align-items:center;background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#94a3b8;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-family:Inter,sans-serif;font-family:var(--font-body);font-size:.8rem;font-weight:600;gap:6px;padding:8px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.socials-copy-btn:hover{border-color:#03a9f4;border-color:var(--accent);color:#03a9f4;color:var(--accent)}.socials-copy-btn.copied{border-color:#4ade80;color:#4ade80}.socials-grid{display:flex;flex-direction:column;gap:12px}.socials-card{align-items:center;background:#ffffff0a;background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);display:flex;gap:18px;overflow:hidden;padding:20px 22px;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.socials-card:before{background:var(--card-accent);bottom:0;content:"";left:0;opacity:0;position:absolute;top:0;transition:opacity .25s ease;width:3px}.socials-card:hover{background:#ffffff12;background:var(--bg-card-hover);border-color:#ffffff26;transform:translateX(4px)}.socials-card:hover:before{opacity:1}.socials-card.featured{background:#ffffff0d;border-color:#ffffff1f}.socials-card.featured:hover{box-shadow:0 0 32px #ffffff0d}.socials-card-icon{color:var(--card-accent);flex-shrink:0;font-size:1.5rem;text-align:center;width:42px}.socials-card-body{display:flex;flex:1 1;flex-direction:column;gap:2px}.socials-card-label{color:#64748b;color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase}.socials-card-handle{color:#fff;color:var(--text-primary);font-size:.98rem;font-weight:700}.socials-card-desc{color:#94a3b8;color:var(--text-secondary);font-size:.82rem;margin-top:2px}.socials-card-arrow{color:#64748b;color:var(--text-muted);font-size:1.1rem;transition:transform .2s ease,color .2s ease}.socials-card:hover .socials-card-arrow{color:#94a3b8;color:var(--text-secondary);transform:translateX(4px)}@media (max-width:920px){.projects-columns{gap:56px;grid-template-columns:1fr}.projects-section-head{background:none;padding:0 0 4px 22px;position:static}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@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{flex-direction:column-reverse;gap:36px;min-height:auto;padding:40px 20px 60px;text-align:center}.hero-bio{max-width:100%}.hero-cta{justify-content:center}.portrait{height:200px;width:200px}.scroll-hint{display:none}.what-i-do-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.projects-grid{gap:14px;grid-template-columns:1fr 1fr}.project-preview-window{height:130px}.preview-chrome{gap:4px;height:22px;padding-left:8px}.preview-viewport{top:22px}.chrome-url{display:none}.preview-screenshot.is-logo{padding:10px}.project-content{gap:8px;padding:14px}.project-title-row{gap:8px}.project-icon-sm svg{height:22px;width:22px}.project-content h2{font-size:.9rem;line-height:1.3}.project-role{font-size:.68rem;margin-top:-2px}.project-desc{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;font-size:.78rem;line-height:1.6;overflow:hidden}.project-note{font-size:.7rem}.tech-tags{gap:5px}.tech-tag{font-size:.62rem;padding:2px 7px}.project-link-btn{font-size:.72rem;justify-content:center;padding:7px 12px;text-align:center;width:100%}.about-highlights{grid-template-columns:repeat(3,1fr)}.footer-content{flex-direction:column;gap:14px;text-align:center}.socials-email-card{flex-wrap:wrap;gap:14px}.socials-copy-btn{justify-content:center;width:100%}}@media (max-width:480px){.hero{padding:32px 16px 48px}.about-page,.projects-page,.skills-page,.socials-page{padding:48px 16px}.skills-grid{grid-template-columns:1fr 1fr}.what-i-do-card{padding:24px 20px}.about-highlights{grid-template-columns:1fr}.highlight-card{padding:16px}.timeline{padding-left:28px}.timeline-dot{left:-22px}.timeline-card{padding:14px 16px}.projects-grid{gap:12px}.project-preview-window{height:110px}.preview-screenshot.is-logo{padding:8px}.project-content{padding:12px}}
/*# sourceMappingURL=main.779c096b.css.map*/