@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#0c0c10;--surface:#14141a;--surface2:#1a1a24;--border:#2a2a38;--accent:#5b8bf5;--accent-dim:#1e2a4a;--accent-glow:#5b8bf526;--text:#e8e8f0;--text-secondary:#9494b0;--muted:#6b6b85;--success:#34d399;--font-display:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--radius:8px;--radius-lg:16px;--transition:.3s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6;overflow-x:hidden}body.cursor-ready{cursor:none}::selection{background:var(--accent-dim);color:var(--accent)}a{color:inherit;text-decoration:none}button{background:0 0;border:none;font-family:inherit}.cursor-ready button{cursor:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}.cursor-dot{background:var(--accent);pointer-events:none;z-index:9999;will-change:transform;border-radius:50%;width:8px;height:8px;transition:width .2s,height .2s,background .2s,top .2s,left .2s;position:fixed;top:-4px;left:-4px}.cursor-ring{pointer-events:none;z-index:9998;will-change:transform;border:1.5px solid #5b8bf566;border-radius:50%;width:36px;height:36px;transition:width .2s,height .2s,border-color .2s,top .2s,left .2s;position:fixed;top:-18px;left:-18px}.cursor-dot--hover{background:var(--accent);mix-blend-mode:difference;width:20px;height:20px;top:-10px;left:-10px}.cursor-ring--hover{border-color:#5b8bf599;width:56px;height:56px;top:-28px;left:-28px}@media (prefers-reduced-motion:reduce){.cursor-dot,.cursor-ring{display:none}}@media (hover:none){.cursor-dot,.cursor-ring{display:none}body{cursor:auto}}.navbar{z-index:100;transition:background var(--transition), backdrop-filter var(--transition), border-bottom var(--transition);justify-content:space-between;align-items:center;padding:20px 48px;display:flex;position:fixed;top:0;left:0;right:0}.navbar--scrolled{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#0c0c10d9}.navbar__logo{font-family:var(--font-mono);color:var(--text);letter-spacing:.05em;transition:color var(--transition);font-size:18px;font-weight:500}.navbar__logo:hover,.navbar__logo-bracket{color:var(--accent)}.navbar__links{gap:36px;list-style:none;display:flex}.navbar__link{font-family:var(--font-body);color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;transition:color var(--transition);font-size:13px;font-weight:500;position:relative}.navbar__link:after{content:"";background:var(--accent);width:0;height:1px;transition:width var(--transition);position:absolute;bottom:-2px;left:0}.navbar__link:hover{color:var(--text)}.navbar__link:hover:after{width:100%}.navbar__link--active{color:var(--accent)}.navbar__link--active:after{width:100%}.navbar__actions{align-items:center;gap:16px;display:flex}.navbar__lang{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);transition:color var(--transition), border-color var(--transition);letter-spacing:.08em;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500}.navbar__lang:hover{color:var(--accent);border-color:var(--accent)}.navbar__cv{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent);transition:background var(--transition), color var(--transition);letter-spacing:.04em;border-radius:4px;padding:6px 16px;font-size:12px;font-weight:500}.navbar__cv:hover{background:var(--accent);color:var(--bg)}@media (width<=768px){.navbar{padding:16px 24px}.navbar__links{display:none}}.terminal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:560px;overflow:hidden;box-shadow:0 0 60px #5b8bf514}.terminal__header{background:var(--surface2);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:12px 16px;display:flex}.terminal__dot{border-radius:50%;width:10px;height:10px}.terminal__dot--red{background:#ff5f57}.terminal__dot--yellow{background:#ffbd2e}.terminal__dot--green{background:#28ca41}.terminal__title{font-family:var(--font-mono);color:var(--muted);margin-left:8px;font-size:11px}.terminal__body{min-height:200px;padding:20px 24px;position:relative}.terminal__line{font-family:var(--font-mono);color:var(--muted);opacity:0;gap:10px;font-size:13px;line-height:1.8;transition:opacity .25s,transform .25s;display:flex;transform:translateY(4px)}.terminal__line--visible{opacity:1;transform:translateY(0)}.terminal__line--highlight span{color:var(--success)}.terminal__prompt{color:var(--accent);-webkit-user-select:none;user-select:none;flex-shrink:0}.terminal__cursor{color:var(--accent);font-family:var(--font-mono);margin-left:2px;font-size:13px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero{flex-direction:column;justify-content:center;min-height:100vh;padding:120px 48px 80px;display:flex;position:relative;overflow:hidden}.hero__bg-grid{pointer-events:none;background-image:linear-gradient(#5b8bf508 1px,#0000 1px),linear-gradient(90deg,#5b8bf508 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.hero__bg-grid:after{content:"";background:radial-gradient(60% 60% at 70%,#5b8bf50f 0%,#0000 70%);position:absolute;inset:0}.hero__content{grid-template-columns:1fr 1fr;align-items:center;gap:80px;width:100%;max-width:1200px;margin:0 auto;display:grid}.hero__eyebrow{font-family:var(--font-mono);color:var(--muted);letter-spacing:.06em;opacity:0;align-items:center;gap:8px;margin-bottom:28px;font-size:12px;transition:opacity .5s .1s,transform .5s .1s;display:flex;transform:translateY(12px)}.hero--visible .hero__eyebrow{opacity:1;transform:translateY(0)}.hero__dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 6px var(--success);border-radius:50%;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hero__name{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;opacity:0;margin-bottom:14px;font-size:clamp(20px,2.4vw,26px);font-weight:600;transition:opacity .55s .15s,transform .55s .15s;display:block;transform:translateY(14px)}.hero--visible .hero__name{opacity:1;transform:translateY(0)}.hero__headline{font-family:var(--font-display);opacity:0;margin-bottom:40px;font-weight:700;line-height:1.1;transition:opacity .6s .2s,transform .6s .2s;transform:translateY(16px)}.hero--visible .hero__headline{opacity:1;transform:translateY(0)}.hero__headline-role{color:var(--accent);font-size:clamp(14px,2vw,18px);font-weight:400;font-family:var(--font-mono);letter-spacing:.04em;margin-bottom:8px;display:block}.hero__headline-main{flex-direction:column;display:flex}.hero__headline-line{color:var(--text);letter-spacing:-.02em;font-size:clamp(32px,4.5vw,58px);display:block}.hero__stats{opacity:0;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:40px;transition:opacity .6s .35s,transform .6s .35s;display:grid;transform:translateY(12px)}.hero--visible .hero__stats{opacity:1;transform:translateY(0)}.counter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition);padding:16px}.counter:hover{border-color:var(--accent)}.counter__value{align-items:baseline;gap:2px;margin-bottom:4px;display:flex}.counter__number{font-family:var(--font-mono);color:var(--accent);font-size:28px;font-weight:500;line-height:1}.counter__suffix{font-family:var(--font-mono);color:var(--accent);font-size:18px;font-weight:500}.counter__label{color:var(--text-secondary);font-size:11px;line-height:1.3;font-family:var(--font-mono)}.hero__cta{opacity:0;flex-wrap:wrap;gap:12px;transition:opacity .6s .45s,transform .6s .45s;display:flex;transform:translateY(12px)}.hero--visible .hero__cta{opacity:1;transform:translateY(0)}.hero__cta-primary{background:var(--accent);color:var(--bg);font-family:var(--font-display);border-radius:var(--radius);letter-spacing:.02em;transition:background var(--transition), transform var(--transition), box-shadow var(--transition);padding:12px 28px;font-size:14px;font-weight:600}.hero__cta-primary:hover{background:#7aa3f7;transform:translateY(-1px);box-shadow:0 8px 24px #5b8bf54d}.hero__cta-secondary{color:var(--text);font-family:var(--font-display);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition), color var(--transition);padding:12px 28px;font-size:14px;font-weight:500}.hero__cta-secondary:hover{border-color:var(--accent);color:var(--accent)}.hero__scroll{opacity:0;flex-direction:column;align-items:center;gap:8px;animation:1s 5s forwards fadeInScroll;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}@keyframes fadeInScroll{to{opacity:1}}.hero__scroll-line{background:linear-gradient(to bottom, transparent, var(--accent));width:1px;height:40px;animation:1.5s ease-in-out infinite scrollLine}@keyframes scrollLine{0%,to{opacity:.6;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.6)}}.hero__scroll-label{font-family:var(--font-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;font-size:10px}@media (width<=960px){.hero{padding:100px 24px 80px}.hero__content{grid-template-columns:1fr;gap:48px}.hero__stats{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.hero__stats{grid-template-columns:1fr 1fr;gap:12px}.hero__scroll{display:none}}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:24px;padding:32px;transition:border-color .3s,transform .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--accent-color,var(--accent));transform:translateY(-4px);box-shadow:0 20px 60px #0000004d}.project-card__spotlight{background:radial-gradient(300px circle at var(--spotlight-x,50%) var(--spotlight-y,50%), var(--spotlight-color,transparent), transparent 70%);pointer-events:none;z-index:0;transition:background .1s;position:absolute;inset:0}.project-card>:not(.project-card__spotlight){z-index:1;position:relative}.project-card__header{flex-direction:column;gap:12px;display:flex}.project-card__meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-card__eyebrow{font-family:var(--font-mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.project-card__metric{flex-shrink:0;align-items:baseline;gap:4px;display:flex}.project-card__metric-value{font-family:var(--font-mono);font-size:22px;font-weight:600;line-height:1}.project-card__metric-label{font-family:var(--font-mono);color:var(--muted);font-size:11px}.project-card__title-row{align-items:center;gap:10px;display:flex}.project-card__logo{object-fit:contain;flex-shrink:0;width:28px;height:28px}.project-card__title{font-family:var(--font-display);color:var(--text);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.project-card__body{flex-direction:column;flex:1;gap:14px;display:flex}.project-card__row{grid-template-columns:80px 1fr;align-items:start;gap:12px;display:grid}.project-card__row-label{font-family:var(--font-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding-top:2px;font-size:10px;font-weight:500}.project-card__row-text{color:var(--text);font-size:13.5px;line-height:1.6}.project-card__row--result .project-card__row-text{color:var(--success);opacity:1;font-weight:500}.project-card__footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;display:flex}.project-card__tags{flex-wrap:wrap;gap:6px;display:flex}.project-card__tag{font-family:var(--font-mono);color:var(--muted);background:var(--surface2);border:1px solid var(--border);letter-spacing:.04em;transition:color var(--transition), border-color var(--transition);border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:10px;display:inline-flex}.project-card__tag-icon{opacity:.6;flex-shrink:0;align-items:center;width:10px;height:10px;display:flex}.project-card__tag-icon svg{fill:currentColor;width:10px;height:10px}.project-card:hover .project-card__tag{border-color:#5b8bf540}.project-card__links{gap:10px;display:flex}.project-card__link{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent);transition:background var(--transition), color var(--transition);white-space:nowrap;border-radius:4px;padding:5px 12px;font-size:12px}.project-card__link:hover{background:var(--accent);color:var(--bg)}.project-card__link--secondary{color:var(--muted);border-color:var(--border)}.project-card__link--secondary:hover{background:var(--border);color:var(--text)}.section{padding:100px 48px}.section__inner{max-width:1200px;margin:0 auto}.section__header{margin-bottom:64px}.section__eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;opacity:0;margin-bottom:16px;font-size:11px;transition:opacity .5s 50ms,transform .5s 50ms;display:inline-block;transform:translateY(8px)}.section--visible .section__eyebrow{opacity:1;transform:translateY(0)}.section__title{font-family:var(--font-display);letter-spacing:-.02em;opacity:0;flex-direction:column;font-size:clamp(28px,4vw,48px);font-weight:700;line-height:1.1;transition:opacity .6s .15s,transform .6s .15s;display:flex;transform:translateY(12px)}.section--visible .section__title{opacity:1;transform:translateY(0)}.section__title span{color:var(--text);display:block}.section__sub{color:var(--text-secondary);opacity:0;max-width:480px;margin-top:16px;font-size:15px;line-height:1.65;transition:opacity .6s .25s,transform .6s .25s;transform:translateY(8px)}.section--visible .section__sub{opacity:1;transform:translateY(0)}.work__grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:24px;display:grid}@media (width<=768px){.section{padding:64px 24px}.section__header{margin-bottom:40px}.work__grid{grid-template-columns:1fr}}.stack__groups{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.stack__group{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--group-color);border-radius:var(--radius);opacity:0;transition:box-shadow var(--transition);flex-direction:column;gap:12px;padding:20px;display:flex;transform:translateY(8px)}.stack__group:hover{box-shadow:0 4px 20px color-mix(in srgb, var(--group-color) 12%, transparent)}.section--visible .stack__group{animation:.4s forwards stackReveal}@keyframes stackReveal{to{opacity:1;transform:translateY(0)}}.stack__group-label{font-family:var(--font-mono);color:var(--group-color);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.stack__group-items{flex-wrap:wrap;gap:6px;display:flex}.stack__chip{font-family:var(--font-display);color:var(--text-muted,var(--text));border:1px solid var(--border);transition:border-color var(--transition), color var(--transition);background:0 0;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.stack__chip:hover{border-color:var(--group-color);color:var(--text)}.stack__chip-icon{opacity:.7;flex-shrink:0;align-items:center;width:12px;height:12px;display:flex}.stack__chip-icon svg{fill:currentColor;width:12px;height:12px}.about__layout{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about__bio{flex-direction:column;gap:16px;margin-top:24px;display:flex}.about__bio p{color:var(--text);opacity:.85;font-size:15px;line-height:1.75}.about__exp-label{margin-bottom:28px;display:block}.about__timeline{flex-direction:column;gap:0;display:flex;position:relative}.about__timeline:before{content:"";background:linear-gradient(to bottom, var(--accent), transparent);width:1px;position:absolute;top:8px;bottom:0;left:7px}.about__exp-item{gap:20px;padding-bottom:32px;display:flex;position:relative}.about__exp-item:last-child{padding-bottom:0}.about__exp-dot{background:var(--bg);border:2px solid var(--accent);width:15px;height:15px;transition:background var(--transition);border-radius:50%;flex-shrink:0;margin-top:3px}.about__exp-item:hover .about__exp-dot{background:var(--accent)}.about__exp-content{flex-direction:column;gap:4px;display:flex}.about__exp-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.about__exp-role{font-family:var(--font-display);color:var(--text);font-size:15px;font-weight:600}.about__exp-period{font-family:var(--font-mono);color:var(--muted);flex-shrink:0;font-size:11px}.about__exp-company{font-family:var(--font-mono);color:var(--accent);letter-spacing:.04em;font-size:12px}.about__exp-summary{color:var(--text-secondary);margin-top:4px;font-size:13px;line-height:1.6}@media (width<=900px){.about__layout{grid-template-columns:1fr;gap:48px}}.contact__layout{grid-template-columns:1fr 1fr;align-items:center;gap:80px;display:grid}.contact__sub{color:var(--muted);max-width:380px;margin-top:20px;font-size:15px;line-height:1.75}.contact__right{flex-direction:column;gap:28px;display:flex}.contact__email-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition), transform var(--transition), box-shadow var(--transition);padding:28px 56px 28px 32px;position:relative;overflow:hidden}.contact__email-card:before{content:"";background:linear-gradient(135deg, var(--accent-dim) 0%, transparent 60%);opacity:0;transition:opacity var(--transition);position:absolute;inset:0}.contact__email-card:has(.contact__email-btn:hover){border-color:var(--accent);transform:translateY(-2px);box-shadow:0 16px 40px #5b8bf526}.contact__email-card:has(.contact__email-btn:hover):before{opacity:1}.contact__email-card:has(.contact__email-btn:hover) .contact__arrow{transform:translate(2px,-2px)}.contact__email-btn{z-index:0;position:absolute;inset:0}.contact__email-visual{z-index:1;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:relative}.contact__email-label{font-family:var(--font-mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.contact__email-row{align-items:center;gap:10px;display:flex}.contact__email-addr{font-family:var(--font-display);color:var(--text);font-size:18px;font-weight:600}.contact__arrow{z-index:1;color:var(--accent);transition:transform var(--transition);pointer-events:none;font-size:20px;position:absolute;top:24px;right:24px}.contact__copy-icon{z-index:2;width:26px;height:26px;color:var(--text-secondary);border-radius:var(--radius);pointer-events:auto;transition:color var(--transition), border-color var(--transition), background var(--transition);border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.contact__copy-icon:hover,.contact__copy-icon:focus-visible{color:var(--accent);border-color:var(--border);background:var(--surface2)}.contact__copy-icon--copied{color:var(--success)}.contact__social{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.contact__or{font-family:var(--font-mono);color:var(--muted);letter-spacing:.06em;font-size:11px}.contact__links{flex-wrap:wrap;gap:10px;display:flex}.contact__link{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);transition:color var(--transition), border-color var(--transition);border-radius:4px;padding:5px 12px;font-size:12px}.contact__link:hover{color:var(--accent);border-color:var(--accent)}@media (width<=900px){.contact__layout{grid-template-columns:1fr;gap:40px}}.footer{border-top:1px solid var(--border);padding:32px 48px}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;display:flex}.footer__logo{font-family:var(--font-mono);color:var(--text);font-size:13px}.footer__bracket{color:var(--accent)}.footer__built{font-family:var(--font-mono);color:var(--muted);font-size:11px}.footer__links{gap:20px;display:flex}.footer__links a{font-family:var(--font-mono);color:var(--muted);transition:color var(--transition);font-size:12px}.footer__links a:hover{color:var(--accent)}@media (width<=600px){.footer{padding:24px}.footer__inner{flex-direction:column;align-items:flex-start;gap:12px}}*{box-sizing:border-box;margin:0;padding:0}main{flex-direction:column;display:flex}
