*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#09090b;--bg-secondary:#111113;--bg-card:#18181b;--bg-card-hover:#1f1f23;--accent:#00ff87;--accent-dim:#00ff871f;--accent-glow:#00ff8740;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#52525b;--border:#ffffff12;--border-accent:#00ff874d;--font-display:"ClashDisplay-Variable","Clash Display",sans-serif;--font-body:"Satoshi-Variable","Satoshi",sans-serif;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--transition:0.3s cubic-bezier(0.4,0,0.2,1)}html{scroll-behavior:smooth}body,html{overflow-x:hidden;width:100%}body{background:#09090b;background:var(--bg-primary);color:#fafafa;color:var(--text-primary);font-family:Satoshi-Variable,Satoshi,sans-serif;font-family:var(--font-body);font-size:16px;line-height:1.7}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#09090b;background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#00ff87;background:var(--accent);border-radius:2px}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font-family:Satoshi-Variable,Satoshi,sans-serif;font-family:var(--font-body)}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pulse-ring{0%{opacity:.8;transform:scale(1)}70%{opacity:0;transform:scale(1.4)}to{opacity:0;transform:scale(1.4)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes grid-move{0%{transform:translateY(0)}to{transform:translateY(40px)}}.section{padding:100px 0;position:relative}.container{margin:0 auto;max-width:1100px;padding:0 24px}.section-label{align-items:center;color:#00ff87;color:var(--accent);display:inline-flex;font-family:Satoshi-Variable,Satoshi,sans-serif;font-family:var(--font-body);font-size:12px;font-weight:500;gap:8px;letter-spacing:.12em;margin-bottom:16px;text-transform:uppercase}.section-label:before{background:#00ff87;background:var(--accent);content:"";display:block;height:1px;width:24px}.section-title{color:#fafafa;color:var(--text-primary);font-family:ClashDisplay-Variable,Clash Display,sans-serif;font-family:var(--font-display);font-size:clamp(32px,5vw,52px);font-weight:800;line-height:1.1;margin-bottom:16px}.section-sub{color:#a1a1aa;color:var(--text-secondary);font-size:16px;line-height:1.8;max-width:520px}.reveal{opacity:0;transform:translateY(32px);transition:opacity .6s ease,transform .6s ease;will-change:opacity,transform}.reveal.visible{opacity:1;transform:translateY(0);will-change:auto}@media (max-width:480px){.container{padding:0 16px}.section{padding:72px 0}.section-title{font-size:clamp(26px,8vw,38px)}.btn-ghost,.btn-primary{font-size:13px;padding:12px 22px}}@media (max-width:720px){.btn-ghost,.btn-primary,.contact-mailto,.copy-btn,.footer-top,.nav-cta,.project-link{min-height:44px}}.navbar{border-bottom:1px solid #0000;left:0;padding:20px 0;pointer-events:none;position:fixed;right:0;top:0;transition:background .3s ease,padding .3s ease,border-color .3s ease;z-index:200}.nav-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1100px;padding:0 24px;pointer-events:all}.navbar.scrolled{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#09090be0;border-bottom-color:var(--border);padding:13px 0}.nav-logo{background:none;border:none;color:var(--text-primary);cursor:pointer;font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:-.02em;position:relative;transition:color .2s ease;z-index:201}.logo-bracket,.nav-logo:hover{color:var(--accent)}.nav-links-desktop{align-items:center;display:flex;gap:4px;list-style:none}.nav-link{background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:400;padding:8px 14px;transition:color .2s ease,background .2s ease}.nav-link.active,.nav-link:hover{background:var(--accent-dim);color:var(--text-primary)}.nav-cta{align-items:center;background:var(--accent);border-radius:999px;color:var(--bg-primary);display:inline-flex;font-size:13px;font-weight:500;margin-left:8px;padding:9px 20px;transition:opacity .2s ease,transform .2s ease;white-space:nowrap}.nav-cta:hover{opacity:.85;transform:translateY(-1px)}.burger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;justify-content:center;padding:8px;pointer-events:all;position:relative;z-index:201}.burger span{background:var(--text-primary);border-radius:2px;display:block;height:1.5px;pointer-events:none;transform-origin:center;transition:transform .3s ease,opacity .3s ease;width:22px}.burger.open span:first-child{transform:translateY(6.5px) rotate(45deg)}.burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.nav-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .3s ease;z-index:150}.nav-overlay.open{opacity:1;pointer-events:all}.nav-drawer{background:var(--bg-secondary);border-left:1px solid var(--border);bottom:0;display:flex;flex-direction:column;justify-content:center;padding:80px 32px 40px;pointer-events:none;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);width:min(300px,80vw);z-index:190}.nav-drawer.open{pointer-events:all;transform:translateX(0)}.nav-drawer-links{display:flex;flex:1 1;flex-direction:column;gap:4px;justify-content:center;list-style:none}.nav-drawer-links li{opacity:0;transform:translateX(20px);transition:opacity .3s ease,transform .3s ease}.nav-drawer.open .nav-drawer-links li{opacity:1;transform:translateX(0)}.nav-drawer-link{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:block;font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.02em;padding:10px 0;text-align:left;transition:color .2s ease;width:100%}.nav-drawer-link.active,.nav-drawer-link:hover{color:var(--accent)}.nav-drawer-cta{background:var(--accent);border-radius:999px;color:var(--bg-primary);display:inline-block;font-size:14px;font-weight:600;margin-top:16px;padding:13px 28px;transition:opacity .2s ease}.nav-drawer-cta:hover{opacity:.85}.nav-drawer-footer{align-items:center;border-top:1px solid var(--border);color:var(--text-muted);display:flex;font-size:13px;gap:10px;padding-top:32px}.nav-drawer-footer a{color:var(--text-secondary);transition:color .2s ease}.nav-drawer-footer a:hover{color:var(--accent)}@media (max-width:720px){.nav-links-desktop{display:none}.burger{display:flex}}.hero{align-items:center;display:flex;min-height:100vh;overflow:hidden;padding-top:80px;position:relative}.hero-grid-bg{animation:grid-move 8s linear infinite;background-image:linear-gradient(#ffffff08 1px,#0000 0),linear-gradient(90deg,#ffffff08 1px,#0000 0);background-size:48px 48px;inset:0;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 40%,#0000 100%);mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 40%,#0000 100%)}.hero-grid-bg,.hero-orb{pointer-events:none;position:absolute}.hero-orb{border-radius:50%;filter:blur(80px)}.hero-orb-1{animation:float 7s ease-in-out infinite;background:radial-gradient(circle,#00ff8726 0,#0000 70%);height:500px;right:-120px;top:-80px;width:500px}.hero-orb-2{animation:float 9s ease-in-out infinite reverse;background:radial-gradient(circle,#00b4ff1a 0,#0000 70%);bottom:80px;height:340px;left:-80px;width:340px}.hero-inner{grid-gap:60px;align-items:center;display:grid;gap:60px;grid-template-columns:1fr 1fr;position:relative;width:100%;z-index:1}.hero-badge{align-items:center;animation:fadeUp .6s ease both;background:var(--accent-dim);border:1px solid var(--border-accent);border-radius:999px;color:var(--accent);display:inline-flex;font-size:13px;font-weight:400;gap:8px;margin-bottom:24px;padding:6px 14px}.hero-badge-dot{background:var(--accent);border-radius:50%;height:6px;pointer-events:none;position:relative;width:6px}.hero-badge-dot:after{animation:pulse-ring 2s ease-out infinite;border:1.5px solid var(--accent);border-radius:50%;content:"";inset:-3px;pointer-events:none;position:absolute}.hero-name{animation:fadeUp .6s ease .1s both;color:var(--text-primary);font-family:var(--font-display);font-size:clamp(38px,6vw,70px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-bottom:16px}.hero-name-accent{color:var(--accent);display:inline-block;position:relative}.hero-name-accent:after{animation:slideRight .8s ease .7s both;background:var(--accent);border-radius:2px;bottom:2px;content:"";height:3px;left:0;opacity:.4;pointer-events:none;position:absolute;right:0;transform-origin:left}.hero-role{animation:fadeUp .6s ease .2s both;color:var(--text-secondary);font-family:var(--font-display);font-size:clamp(18px,2.5vw,26px);font-weight:600;height:36px;margin-bottom:20px}.hero-cursor{animation:blink .8s step-end infinite;color:var(--accent);margin-left:2px;pointer-events:none}.hero-description{animation:fadeUp .6s ease .3s both;color:var(--text-secondary);font-size:16px;line-height:1.8;margin-bottom:36px;max-width:460px}.hero-actions{animation:fadeUp .6s ease .4s both;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:48px}.btn-primary,.hero-actions{position:relative;z-index:2}.btn-primary{background:var(--accent);border-radius:999px;color:var(--bg-primary);cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.02em;padding:14px 28px;transition:var(--transition)}.btn-primary:hover{box-shadow:0 0 24px var(--accent-glow);opacity:.88;transform:translateY(-2px)}.btn-ghost{border:1px solid var(--border);border-radius:999px;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:500;padding:14px 28px;position:relative;transition:var(--transition);z-index:2}.btn-ghost:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.hero-stats{align-items:center;animation:fadeUp .6s ease .5s both;display:flex;gap:24px}.hero-stat{text-align:center}.stat-num{color:var(--text-primary);display:block;font-family:var(--font-display);font-size:26px;font-weight:800;line-height:1}.stat-label{color:var(--text-muted);display:block;font-size:11px;letter-spacing:.08em;margin-top:4px;text-transform:uppercase}.hero-stat-divider{background:var(--border);height:36px;width:1px}.hero-visual{animation:fadeIn .8s ease .4s both;flex-direction:column;gap:28px;z-index:1}.hero-avatar-ring,.hero-visual{align-items:center;display:flex;position:relative}.hero-avatar-ring{height:280px;justify-content:center;pointer-events:none;width:280px}.hero-avatar-ring-inner{animation:spin-slow 12s linear infinite;border:1px solid var(--border-accent);border-radius:50%;inset:0;pointer-events:none;position:absolute}.hero-avatar-ring-inner:before{background:var(--accent);border-radius:50%;content:"";height:6px;left:50%;pointer-events:none;position:absolute;top:-3px;transform:translateX(-50%);width:6px}.hero-avatar{animation:float 6s ease-in-out infinite;border:2px solid var(--border-accent);border-radius:50%;height:220px;overflow:hidden;pointer-events:none;width:220px}.hero-avatar img{height:100%;object-fit:cover;width:100%}.hero-orbit-dot{background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent-glow);height:10px;pointer-events:none;position:absolute;width:10px}.hero-orbit-dot-1{animation:pulse-ring 3s ease-out 0s infinite;right:30px;top:10px}.hero-orbit-dot-2{animation:pulse-ring 3s ease-out .5s infinite;bottom:20px;right:10px}.hero-orbit-dot-3{animation:pulse-ring 3s ease-out 1s infinite;bottom:40px;left:20px}.hero-tech-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;pointer-events:none}.hero-tech-badge{background:var(--bg-card);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:12px;font-weight:500;padding:5px 12px}.hero-scroll-hint{align-items:center;animation:fadeIn 1s ease 1.2s both;bottom:32px;color:var(--text-muted);display:flex;flex-direction:column;font-size:10px;gap:8px;left:50%;letter-spacing:.12em;pointer-events:none;position:absolute;text-transform:uppercase;transform:translateX(-50%);z-index:0}.hero-scroll-line{animation:float 2s ease-in-out infinite;background:linear-gradient(to bottom,var(--accent),#0000);height:40px;width:1px}@media (max-width:860px){.hero-inner{gap:48px;grid-template-columns:1fr;text-align:center}.hero-description{margin:0 auto 36px}.hero-actions,.hero-stats{justify-content:center}.hero-visual{order:-1}.hero-avatar-ring{height:220px;width:220px}.hero-avatar{height:170px;width:170px}.hero-name-accent:after{display:none}.hero-badge{margin:0 auto 24px}.hero-scroll-hint{display:none}}.about-inner{grid-gap:72px;align-items:center;display:grid;gap:72px;grid-template-columns:1fr 1fr}.about-em{color:var(--accent);font-style:italic}.about-highlights{display:flex;flex-direction:column;gap:16px}.about-highlight{align-items:flex-start;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;gap:14px;padding:16px 18px;transition:var(--transition)}.about-highlight:hover{background:var(--bg-card-hover);border-color:var(--border-accent)}.highlight-icon{flex-shrink:0;font-size:20px;line-height:1;margin-top:2px}.highlight-label{color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:2px}.highlight-desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.about-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.about-card-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;gap:6px;padding:14px 18px}.about-card-dot{border-radius:50%;height:10px;width:10px}.about-card-dot.red{background:#ff5f57}.about-card-dot.yellow{background:#febc2e}.about-card-dot.green{background:#28c840}.about-code{color:var(--text-secondary);font-family:Courier New,monospace;font-size:13px;line-height:1.7;overflow-x:auto;padding:24px;white-space:pre}.about-code strong{color:var(--accent);font-weight:600}.about-cta{border-radius:999px;font-size:14px;font-weight:600;padding:14px 28px;text-decoration:none;transition:var(--transition)}@media (max-width:860px){.about-inner{gap:48px;grid-template-columns:1fr}}.skills-header{margin-bottom:56px;max-width:560px}.skills-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-bottom:56px}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 22px;transition:var(--transition)}.skill-card:hover{background:var(--bg-card-hover);border-color:var(--border-accent);transform:translateY(-2px)}.skill-top{justify-content:space-between;margin-bottom:12px}.skill-info,.skill-top{align-items:center;display:flex}.skill-info{gap:10px}.skill-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.skill-name{color:var(--text-primary);font-size:14px;font-weight:500}.skill-level{color:var(--text-secondary);font-family:var(--font-display);font-size:13px;font-weight:700}.skill-bar{background:var(--border);border-radius:2px;height:4px;margin-bottom:10px;overflow:hidden}.skill-bar-fill{background:var(--accent);background:var(--color,var(--accent));background:var(--color);border-radius:2px;box-shadow:0 0 6px var(--color);height:100%;transition:width 1.2s cubic-bezier(.4,0,.2,1);width:0}.reveal.visible .skill-bar-fill{width:var(--width)}.skill-category{color:var(--text-muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.tools-section{text-align:center}.tools-label{color:var(--text-muted);font-size:13px;letter-spacing:.08em;margin-bottom:20px;text-transform:uppercase}.tools-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.tool-chip{background:var(--bg-card);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:13px;font-weight:400;padding:7px 16px;transition:var(--transition)}.tool-chip:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}@media (max-width:640px){.skills-grid{grid-template-columns:1fr}}.projects-header{margin-bottom:56px;max-width:560px}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease}.project-card:hover{border-color:var(--project-color,var(--accent));box-shadow:0 12px 40px #0006;transform:translateY(-4px)}.project-thumb{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;height:200px;justify-content:center;overflow:hidden;position:relative;transition:background .3s ease}.project-card:hover .project-thumb{background:color-mix(in srgb,var(--project-color) 8%,var(--bg-secondary))}.project-screenshot{display:block;height:100%;object-fit:cover;object-position:top center;transition:transform .4s ease;width:100%}.project-card:hover .project-screenshot{transform:scale(1.03)}.project-emoji{font-size:48px;transition:transform .3s ease}.project-card:hover .project-emoji{transform:scale(1.1)}.project-wip-badge{background:#f59e0b1f;border:1px solid #f59e0b4d;border-radius:999px;color:#f59e0b;font-size:11px;font-weight:500;padding:4px 10px;position:absolute;right:12px;top:12px}.project-body{display:flex;flex:1 1;flex-direction:column;padding:24px}.project-title{color:var(--text-primary);font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:10px}.project-desc{color:var(--text-secondary);flex:1 1;font-size:14px;line-height:1.7;margin-bottom:18px}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.project-tag{background:var(--bg-secondary);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:11px;font-weight:500;letter-spacing:.06em;padding:4px 10px;text-transform:uppercase}.project-links{display:flex;gap:10px}.project-link{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:9px 18px;transition:opacity .2s ease,transform .2s ease,border-color .2s ease,color .2s ease,background .2s ease}.project-link.primary{background:var(--accent);background:var(--project-color,var(--accent));color:var(--bg-primary)}.project-link.primary:hover{opacity:.85;transform:translateY(-1px)}.project-link.ghost{border:1px solid var(--border);color:var(--text-secondary)}.project-link.ghost:hover{border-color:var(--project-color,var(--accent));color:var(--accent);color:var(--project-color,var(--accent))}.project-wip .project-link.ghost{opacity:.5;pointer-events:none}@media (max-width:720px){.projects-grid{grid-template-columns:1fr}}.contact{background:linear-gradient(to bottom,var(--bg-primary),var(--bg-secondary))}.contact-inner{grid-gap:72px;align-items:center;display:grid;gap:72px;grid-template-columns:1fr 1fr}.contact-accent{color:var(--accent)}.contact-socials{display:flex;flex-wrap:wrap;gap:10px}.social-pill{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);display:inline-flex;font-size:13px;font-weight:500;gap:8px;padding:10px 18px;transition:var(--transition)}.social-pill:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:0;padding:36px}.contact-email-block{margin-bottom:24px}.contact-email-label{color:var(--text-muted);font-size:12px;letter-spacing:.1em;margin-bottom:10px;text-transform:uppercase}.contact-email-row{align-items:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.contact-email-text{color:var(--text-primary);font-family:Courier New,monospace;font-size:14px;word-break:break-all}.copy-btn{background:var(--accent-dim);border:1px solid var(--border-accent);border-radius:999px;color:var(--accent);flex-shrink:0;font-size:12px;font-weight:500;padding:5px 12px;transition:var(--transition);white-space:nowrap}.copy-btn:hover{opacity:.8}.copy-btn.copied{background:#28c8401f;border-color:#28c8404d;color:#28c840}.contact-divider{background:var(--border);height:1px;margin:24px 0}.contact-mailto{align-items:center;background:var(--accent);border-radius:var(--radius-md);color:var(--bg-primary);display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin-bottom:20px;padding:15px;transition:var(--transition)}.contact-mailto:hover{box-shadow:0 8px 24px var(--accent-glow);opacity:.88;transform:translateY(-2px)}.contact-availability{align-items:center;color:var(--text-muted);display:flex;font-size:13px;gap:8px;justify-content:center}.avail-dot{background:#28c840;border-radius:50%;height:7px;position:relative;width:7px}.avail-dot:after{animation:pulse-ring 2s ease-out infinite;border:1.5px solid #28c840;border-radius:50%;content:"";inset:-3px;position:absolute}@media (max-width:860px){.contact-inner{gap:48px;grid-template-columns:1fr}}.footer{background:var(--bg-secondary);border-top:1px solid var(--border);padding:28px 0}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.footer-logo{color:var(--text-primary);cursor:pointer;font-family:var(--font-display);font-size:18px;font-weight:800;letter-spacing:-.02em;transition:color var(--transition)}.footer-logo:hover{color:var(--accent)}.footer-copy{color:var(--text-muted);font-size:13px}.footer-top{border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:var(--transition)}.footer-top:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}@media (max-width:560px){.footer-inner{justify-content:center;text-align:center}}
/*# sourceMappingURL=main.ab0b8782.css.map*/