.navbar{z-index:1000;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle,#222);opacity:1;pointer-events:auto;background:#0a0a0ad9;justify-content:space-between;align-items:center;height:48px;padding:0 40px;display:flex;position:fixed;top:0;left:0;right:0;transform:none}.navbar__logo{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--accent-strong,#0f766e);flex-shrink:0;font-size:11px;text-decoration:none}.navbar__links{align-items:center;gap:32px;margin:0;padding:0;list-style:none;display:flex}.navbar__link{font-family:var(--font-body,sans-serif);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted,#555);font-size:13px;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.navbar__link:hover{color:var(--text-light,#e8dcc8)}.navbar__link--active{color:var(--accent-strong,#0f766e)}.navbar__link:after{content:"";background:var(--accent-strong,#0f766e);transform-origin:0;height:1px;transition:transform .3s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.navbar__link--active:after{transform:scaleX(1)}.navbar__link--resume{color:var(--accent-strong,#0f766e);border:1px solid #0f766e4d;border-radius:2px;padding:4px 14px;font-size:11px;transition:color .3s,border-color .3s,background .3s}.navbar__link--resume:hover{border-color:var(--accent-strong,#0f766e);color:var(--accent-strong,#0f766e);background:#2dd4bf1a}.navbar__link--resume:after{display:none}.navbar__download-icon{font-size:11px;transition:transform .3s;display:inline-block}.navbar__link--resume:hover .navbar__download-icon{transform:translateY(2px)}.navbar__overlay-link--resume{color:var(--accent-strong,#0f766e);border-top:1px solid var(--border-subtle,#222);margin-top:16px;padding-top:24px;font-size:24px}.navbar__progress{background:var(--gradient,linear-gradient(90deg,#2dd4bf,#22d3ee));transform-origin:0;width:100%;height:2px;position:absolute;bottom:0;left:0;transform:scaleX(0)}.navbar__menu-toggle{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--text-muted,#555);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:10px;transition:color .3s;display:none}.navbar__menu-toggle:hover{color:var(--accent-strong,#0f766e)}.navbar__overlay{z-index:999;opacity:0;pointer-events:none;background:#0a0a0af7;flex-direction:column;justify-content:center;align-items:center;gap:32px;transition:opacity .3s;display:flex;position:fixed;inset:0}.navbar__overlay--open{opacity:1;pointer-events:auto}.navbar__overlay-link{font-family:var(--font-display,sans-serif);letter-spacing:4px;text-transform:uppercase;color:var(--text-muted,#555);font-size:32px;font-weight:600;text-decoration:none;transition:color .3s}.navbar__overlay-link:hover,.navbar__overlay-link--active{color:var(--accent-strong,#0f766e)}.navbar__overlay-close{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--text-muted,#555);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:10px;transition:color .3s;position:absolute;top:14px;right:40px}.navbar__overlay-close:hover{color:var(--accent-strong,#0f766e)}[data-theme=light] .navbar{background:#f4faf9cc}[data-theme=light] .navbar__overlay{background:#f4faf9f7}[data-theme=light] .navbar__link--resume{border-color:#0f766e66}.navbar__overlay-toggle{margin-top:16px}@media (prefers-reduced-motion:reduce){.navbar,.navbar__link:after{transition:none}}@media (max-width:1024px){.navbar{padding:0 32px}.navbar__links{gap:24px}.navbar__link{letter-spacing:1.5px;font-size:12px}}@media (max-width:600px){.navbar{padding:0 20px}.navbar__links{display:none}.navbar__menu-toggle{display:block}.navbar__overlay-close{right:20px}}
@property --border-top{syntax:"<percentage>";inherits:false;initial-value:0%}@property --border-right{syntax:"<percentage>";inherits:false;initial-value:0%}@property --border-bottom{syntax:"<percentage>";inherits:false;initial-value:0%}@property --border-left{syntax:"<percentage>";inherits:false;initial-value:0%}.hero{min-height:100vh;background:var(--background,#f4faf9);flex-direction:column;justify-content:space-between;min-height:100dvh;padding:72px 40px 24px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";z-index:0;pointer-events:none;background:conic-gradient(from 198deg,#2dd4bf00 0%,#2dd4bfe6 12%,#22d3eee6 30%,#22d3ee00 50%);border-radius:50%;width:760px;height:760px;position:absolute;top:38%;left:calc(50% + 900px);right:auto;transform:translate(-50%,-50%);-webkit-mask:radial-gradient(circle,#0000 66%,#000 68% 72%,#0000 75%);mask:radial-gradient(circle,#0000 66%,#000 68% 72%,#0000 75%)}.hero:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle,#2dd4bf14,#0000 58%);border-radius:50%;width:760px;height:760px;position:absolute;top:38%;left:calc(50% + 900px);right:auto;transform:translate(-50%,-50%)}.hero__meta{justify-content:space-between;align-items:flex-start;display:flex}.hero__meta-logo{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--secondary,#2dd4bf);font-size:11px}.hero__meta-label{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--text-muted,#555);font-size:10px}.hero__meta-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.hero__content{z-index:1;flex:1;align-items:center;gap:60px;width:100%;max-width:1200px;margin:auto;display:flex;position:relative}.hero__photo-col{flex-shrink:0;width:340px}.hero__photo-frame{aspect-ratio:3/4;border:1px solid var(--accent-strong,#0f766e);will-change:clip-path;background:radial-gradient(at 50% 30%,#cdeee8 0%,#e3f5f1 55%,#f4faf9 100%);position:relative;overflow:hidden}.hero__corner{pointer-events:none;opacity:.5;z-index:2;width:16px;height:16px;position:absolute}.hero__corner:before,.hero__corner:after{content:"";background:var(--secondary,#2dd4bf);position:absolute}.hero__corner--tl{top:12px;left:12px}.hero__corner--tl:before{width:16px;height:1px;top:0;left:0}.hero__corner--tl:after{width:1px;height:16px;top:0;left:0}.hero__corner--tr{top:12px;right:12px}.hero__corner--tr:before{width:16px;height:1px;top:0;right:0}.hero__corner--tr:after{width:1px;height:16px;top:0;right:0}.hero__corner--bl{bottom:12px;left:12px}.hero__corner--bl:before{width:16px;height:1px;bottom:0;left:0}.hero__corner--bl:after{width:1px;height:16px;bottom:0;left:0}.hero__corner--br{bottom:12px;right:12px}.hero__corner--br:before{width:16px;height:1px;bottom:0;right:0}.hero__corner--br:after{width:1px;height:16px;bottom:0;right:0}.hero__monogram{font-family:var(--font-display,sans-serif);color:var(--secondary,#2dd4bf);opacity:.15;font-size:32px;font-weight:700;line-height:1;position:absolute;bottom:24px;left:24px}.hero__photo-caption{align-items:center;gap:0;margin-top:12px;display:flex}.hero__photo-caption span{font-family:var(--font-mono,monospace);letter-spacing:2px;text-transform:uppercase;color:var(--text-dim,#444);white-space:nowrap;font-size:10px}.hero__photo-line{background:linear-gradient(90deg,transparent,var(--border-hover,#333),transparent);flex:1;height:1px;margin:0 16px}.hero__text-col{flex:1;min-width:0}.hero__name{margin:0;padding:0}.hero__name-line{display:block;overflow:hidden}.hero__name-inner{font-family:var(--font-display,sans-serif);text-transform:uppercase;letter-spacing:clamp(4px,.6vw,10px);color:var(--foreground,#04201f);font-size:clamp(36px,8vw,96px);font-weight:700;line-height:1.05;display:block}.hero__subtitle{font-family:var(--font-body,sans-serif);text-transform:none;color:var(--foreground,#04201f);letter-spacing:.5px;margin-top:24px;font-size:20px;font-weight:400;line-height:1.5;display:block}.hero__lead{max-width:48ch;font-family:var(--font-body,sans-serif);color:var(--text-body,#16332f);margin-top:16px;font-size:16px;font-weight:400;line-height:1.7}.hero__ctas{flex-wrap:wrap;gap:14px;margin-top:28px;display:flex}.hero__cta{font-family:var(--font-body,sans-serif);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:2px;align-items:center;gap:8px;padding:13px 24px;font-size:13px;font-weight:600;text-decoration:none;transition:background .25s,color .25s,border-color .25s;display:inline-flex}.hero__cta-icon{transition:transform .25s;display:inline-block}.hero__cta--primary{color:#fff;background:linear-gradient(135deg,#0f766e,#0e7490);border-color:#0000}.hero__cta--primary:hover{filter:brightness(1.08);box-shadow:0 0 24px #2dd4bf66}.hero__cta--primary:hover .hero__cta-icon{transform:translateY(3px)}.hero__cta--secondary{color:var(--foreground,#04201f);border-color:var(--border-ui,#6f8784);background:0 0}.hero__cta--secondary:hover{border-color:var(--accent-strong,#0f766e);color:var(--accent-strong,#0f766e)}.hero__cta--secondary:hover .hero__cta-icon{transform:translateY(3px)}.hero__photo-img{object-fit:cover;z-index:0}.hero__badges{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero__badge{font-family:var(--font-mono,monospace);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;display:inline-flex}.hero__badge--primary{color:var(--secondary,#2dd4bf);background-image:linear-gradient(90deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf)),linear-gradient(180deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf)),linear-gradient(90deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf)),linear-gradient(180deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf));background-position:0 0,100% 0,100% 100%,0 100%;background-repeat:no-repeat;background-size:var(--border-top)1px,1px var(--border-right),var(--border-bottom)1px,1px var(--border-left)}.hero__badge--secondary{color:var(--foreground,#04201f)}.hero__badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.hero__badge-dot--green{background:#4ade80;animation:2s ease-in-out infinite hero-pulse;box-shadow:0 0 8px #4ade8066}.hero__badge-dot--gold{background:var(--secondary,#2dd4bf);animation:2.5s ease-in-out .5s infinite hero-pulse;box-shadow:0 0 8px #2dd4bf66}@keyframes hero-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}.hero__pills{flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.hero__pill{font-family:var(--font-mono,monospace);letter-spacing:2px;text-transform:uppercase;color:var(--foreground,#04201f);background-color:var(--surface,#fff);border:1px solid var(--border-hover,#c4d6d3);cursor:pointer;border-radius:2px;padding:6px 14px;font-size:10px;transition:transform .22s,box-shadow .22s,color .22s,border-color .22s,background-color .22s}.hero__pill:hover{color:var(--accent-strong,#0f766e);border-color:var(--accent-strong,#0f766e);background-color:#2dd4bf1a;transform:translateY(-2px);box-shadow:0 5px 14px #0f766e29}.hero__pill--accent{color:var(--secondary,#2dd4bf);background-color:#0000;background-image:linear-gradient(90deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf)),linear-gradient(180deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf)),linear-gradient(90deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf)),linear-gradient(180deg,var(--secondary,#2dd4bf),var(--secondary,#2dd4bf))}@media (prefers-reduced-motion:reduce){.hero__badge-dot--green,.hero__badge-dot--gold{animation:none}.hero__pill{transition:none}.hero__pill:hover{transform:none}}@media (max-width:1024px){.hero{padding:64px 32px 24px}.hero__content{text-align:center;flex-direction:column;gap:32px}.hero__photo-col{width:220px}.hero__content--no-photo{justify-content:center}.hero__content--no-photo .hero__text-col{flex:0 auto}.hero__photo-caption{justify-content:center}.hero__subtitle{font-size:17px}.hero__lead{margin-left:auto;margin-right:auto;font-size:15px}.hero__ctas,.hero__badges,.hero__pills{justify-content:center}}@media (max-width:600px){.hero{padding:56px 20px 20px}.hero__content{gap:24px}.hero__photo-col{width:140px}.hero__photo-caption{display:none}.hero__subtitle{margin-top:12px;font-size:15px}.hero__lead{margin-top:12px;font-size:14px}.hero__ctas{justify-content:center;gap:10px;margin-top:20px}.hero__cta{letter-spacing:1px;padding:11px 18px;font-size:12px}.hero__badges{gap:8px;margin-top:16px}.hero__badge{padding:6px 12px;font-size:9px}.hero__pills{gap:6px;margin-top:12px}.hero__pill{letter-spacing:1px;padding:4px 8px;font-size:8px}.hero__meta-label{letter-spacing:2px;font-size:8px}.hero__meta-logo{font-size:10px}}
.projects{background:var(--background,#0a0a0a);max-width:1200px;margin:0 auto;padding:120px 40px}.projects__header{justify-content:space-between;align-items:flex-end;margin-bottom:0;display:flex}.projects__label{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--accent-strong,#0f766e);margin-bottom:16px;font-size:10px;display:block}.projects__title{font-family:var(--font-display,sans-serif);text-transform:uppercase;letter-spacing:clamp(3px,.4vw,8px);color:var(--text-light,#e8dcc8);margin:0;font-size:clamp(36px,5vw,64px);font-weight:700;line-height:1.05}.projects__count{font-family:var(--font-mono,monospace);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted,#555);white-space:nowrap;font-size:10px}.projects__divider{background:var(--gradient,linear-gradient(90deg,#2dd4bf,#22d3ee));transform-origin:0;opacity:.5;height:1px;margin:32px 0 0}.projects__tabs{scrollbar-width:none;flex-wrap:wrap;gap:10px;margin:48px 0 0;padding:0;display:flex;overflow-x:auto}.projects__tabs::-webkit-scrollbar{display:none}.projects__tab{border:1px solid var(--border-subtle,#222);font-family:var(--font-mono,monospace);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted,#8a8a8a);cursor:pointer;white-space:nowrap;background:0 0;border-radius:2px;align-items:center;gap:12px;padding:11px 20px;font-size:11px;transition:color .25s,border-color .25s,background .25s;display:inline-flex}.projects__tab:hover{color:var(--text-light,#e8dcc8);border-color:var(--border-hover,#333)}.projects__tab:focus-visible{outline:2px solid var(--focus-ring,#0f766e);outline-offset:2px}.projects__tab--active{color:var(--accent-strong,#0f766e);background:#2dd4bf1f;border-color:#0f766e73}.projects__tab--active:hover{color:var(--accent-strong,#0f766e);border-color:#0f766e8c}.projects__tab-count{letter-spacing:1.5px;color:var(--text-dim,#828282);opacity:.55;border-left:1px solid;padding-left:12px;font-size:10px;transition:color .25s,opacity .25s}.projects__tab:hover .projects__tab-count{opacity:.75}.projects__tab--active .projects__tab-count{color:var(--accent-strong,#0f766e);opacity:.8}.projects__panel{padding-top:24px}.projects__category{margin-top:56px}.projects__category-title{font-family:var(--font-mono,monospace);letter-spacing:3px;text-transform:uppercase;color:var(--accent-strong,#0f766e);align-items:center;gap:16px;margin:0;font-size:12px;font-weight:500;display:flex}.projects__category-count{letter-spacing:1.5px;color:var(--text-dim,#828282);font-size:10px}.projects__category-rule{background:var(--border-subtle,#222);flex:1;height:1px}.projects__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.projects__list>li{display:block}@keyframes projects-card-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.projects__list>li{animation:.45s ease-out both projects-card-in}.projects__list>li:nth-child(2){animation-delay:60ms}.projects__list>li:nth-child(3){animation-delay:.12s}.projects__list>li:nth-child(4){animation-delay:.18s}.projects__list>li:nth-child(5){animation-delay:.24s}.projects__list>li:nth-child(6){animation-delay:.3s}.projects__card{border-bottom:1px solid var(--border-subtle,#222);will-change:transform,opacity;align-items:center;gap:48px;min-width:0;padding:48px 0;display:flex}.projects__list>li:last-child .projects__card{border-bottom:none}.projects__card-info{flex:0 0 380px}.projects__card-number{font-family:var(--font-display,sans-serif);color:#0f766ecc;margin-bottom:16px;font-size:64px;font-weight:700;line-height:1;transition:color .4s;display:block}.projects__card:hover .projects__card-number{color:#0f766ecc}.projects__card-title{font-family:var(--font-display,sans-serif);text-transform:uppercase;letter-spacing:2px;color:var(--text-light,#e8dcc8);margin:0 0 12px;font-size:24px;font-weight:600}.projects__card-subtitle{font-family:var(--font-body,sans-serif);color:var(--foreground,#ededed);margin:0 0 20px;font-size:15px;line-height:1.6}.projects__card-tech{flex-wrap:wrap;gap:6px;margin:0 0 20px;padding:0;list-style:none;display:flex}.projects__tech-badge{font-family:var(--font-body,sans-serif);letter-spacing:2px;text-transform:uppercase;color:var(--foreground,#04201f);background-color:var(--surface,#fff);border:1px solid var(--border-hover,#c4d6d3);cursor:pointer;border-radius:2px;padding:4px 10px;font-size:10px;font-weight:500;transition:transform .22s,box-shadow .22s,color .22s,border-color .22s,background-color .22s}.projects__tech-badge:hover{color:var(--accent-strong,#0f766e);border-color:var(--accent-strong,#0f766e);background-color:#2dd4bf1a;transform:translateY(-2px);box-shadow:0 5px 14px #0f766e29}.projects__card-title-link{color:inherit;text-decoration:none;transition:color .3s;display:inline-block}.projects__card-title-link:hover{color:var(--accent-strong,#0f766e)}.projects__card-actions{flex-wrap:wrap;gap:12px 28px;display:flex}.projects__card-link{font-family:var(--font-mono,monospace);letter-spacing:2px;text-transform:uppercase;color:var(--accent-strong,#0f766e);align-items:center;gap:8px;font-size:11px;text-decoration:none;transition:opacity .3s;display:inline-flex}.projects__card-link:hover{opacity:.7}.projects__card-arrow{font-size:14px;transition:transform .3s;display:inline-block}.projects__card:hover .projects__card-arrow{transform:translate(2px,-2px)}.projects__card-preview{flex:1;min-width:0}.projects__card-image{aspect-ratio:16/10;border:1px solid #0f766e40;position:relative;overflow:hidden}.projects__card-screenshot{object-fit:cover;z-index:1;border-radius:4px;box-shadow:0 8px 32px #04201f26;width:90%!important;height:90%!important;position:absolute!important;inset:5%!important}.projects__card-screenshot--contain{background:#04201f0f;object-fit:contain!important}.projects__corner{pointer-events:none;opacity:.4;z-index:1;width:14px;height:14px;position:absolute}.projects__corner:before,.projects__corner:after{content:"";background:var(--secondary,#2dd4bf);position:absolute}.projects__corner--tl{top:10px;left:10px}.projects__corner--tl:before{width:14px;height:1px;top:0;left:0}.projects__corner--tl:after{width:1px;height:14px;top:0;left:0}.projects__corner--tr{top:10px;right:10px}.projects__corner--tr:before{width:14px;height:1px;top:0;right:0}.projects__corner--tr:after{width:1px;height:14px;top:0;right:0}.projects__corner--bl{bottom:10px;left:10px}.projects__corner--bl:before{width:14px;height:1px;bottom:0;left:0}.projects__corner--bl:after{width:1px;height:14px;bottom:0;left:0}.projects__corner--br{bottom:10px;right:10px}.projects__corner--br:before{width:14px;height:1px;bottom:0;right:0}.projects__corner--br:after{width:1px;height:14px;bottom:0;right:0}@media (prefers-reduced-motion:reduce){.projects__card{will-change:auto}.projects__card-image{transition:none}.projects__list>li{animation:none}.projects__tab,.projects__tech-badge{transition:none}.projects__tech-badge:hover{transform:none}}@media (max-width:1024px){.projects{padding:80px 32px}.projects__card{flex-direction:column;gap:24px;padding:40px 0}.projects__card-info{text-align:center;flex:none;width:100%}.projects__card-number{font-size:48px}.projects__card-tech,.projects__card-actions,.projects__card-link{justify-content:center}.projects__card-preview{width:100%}.projects__header{flex-direction:column;align-items:flex-start;gap:12px}}@media (max-width:600px){.projects{padding:60px 20px}.projects__card{gap:20px;padding:32px 0}.projects__card-number{margin-bottom:8px;font-size:36px}.projects__card-title{letter-spacing:1px;font-size:18px}.projects__card-subtitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.projects__card-tech{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:4px;overflow-x:auto}.projects__card-tech::-webkit-scrollbar{display:none}.projects__tech-badge{letter-spacing:1px;flex-shrink:0;padding:3px 8px;font-size:8px}}
