:root{--color-bg:#080b12;--color-surface:#0d111a;--color-surface-hover:#121827;--color-text:#f5f7fa;--color-text-muted:#8b93a1;--color-border:#1b2230;--color-primary:#8b5cf6;--color-accent:#22d3ee;--container-width:1200px;--container-padding:24px;--radius-md:10px;--transition-fast:.18s ease;--transition-normal:.28s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:Geist,system-ui,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}code,pre,.mono{font-family:Geist Mono,monospace}.container{width:min(100% - (var(--container-padding) * 2), var(--container-width));margin-inline:auto}.site-header{z-index:1000;width:100%;padding:16px 0;transition:padding .28s,background-color .28s,-webkit-backdrop-filter .28s,backdrop-filter .28s;position:fixed;top:0;left:0}.navbar{border:1px solid var(--color-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(14px);background:#0d111abf;justify-content:space-between;align-items:center;min-height:64px;padding:0 20px;display:flex;position:relative}.navbar__logo{color:var(--color-text);letter-spacing:-.03em;transition:color var(--transition-fast);align-items:center;gap:9px;font-family:Geist Mono,monospace;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.navbar__logo-mark{width:30px;height:30px;color:var(--color-text);transition:transform var(--transition-normal), color var(--transition-normal);flex-shrink:0}.navbar__logo-text{white-space:nowrap}.navbar__logo-text span{color:var(--color-accent)}.navbar__logo:hover{color:var(--color-text)}.navbar__logo:hover .navbar__logo-mark{color:var(--color-primary);transform:rotate(-4deg)}.navbar__desktop{align-items:center;gap:28px;display:flex}.navbar__link{color:var(--color-text-muted);transition:color var(--transition-fast), transform var(--transition-fast);font-size:.9rem;font-weight:500;position:relative}.navbar__link:after{content:"";background:var(--color-accent);transform-origin:100%;width:100%;height:1px;transition:transform var(--transition-normal);position:absolute;bottom:-6px;left:0;transform:scaleX(0)}.navbar__link:hover{color:var(--color-text)}.navbar__link:hover:after{transform-origin:0;transform:scaleX(1)}.navbar__toggle{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:none}.navbar__toggle svg{width:22px;height:22px}.navbar__mobile{display:none}@media (width<=767px){.site-header{padding-top:12px}.navbar{min-height:58px;padding-inline:16px}.navbar__desktop{display:none}.navbar__toggle{display:flex}.navbar__mobile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);opacity:0;visibility:hidden;width:min(220px,100vw - 48px);transition:opacity var(--transition-normal), visibility var(--transition-normal), transform var(--transition-normal);flex-direction:column;gap:4px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-8px)}.navbar__mobile--open{opacity:1;visibility:visible;transform:translateY(0)}.navbar__mobile-link{color:var(--color-text-muted);transition:color var(--transition-fast), background-color var(--transition-fast);border-radius:6px;padding:10px 12px;font-size:.9rem}.navbar__mobile-link:hover{color:var(--color-text);background:var(--color-surface-hover)}}.about-section{padding:100px 0;overflow:hidden}.about{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:center;gap:80px;display:grid}.about__visual{justify-content:center;display:flex}.about__image-wrapper{aspect-ratio:1;border:1px solid var(--color-border);background:radial-gradient(circle,#8b5cf61f,#0000 65%);border-radius:50%;place-items:center;width:min(100%,360px);display:grid;position:relative}.about__image-wrapper img{transform:rotateY(180deg)}.about__image-wrapper:before{content:"";border-radius:inherit;border:1px solid #22d3ee1a;position:absolute;inset:-1px;transform:rotate(-8deg)}.about__image{object-fit:cover;border-radius:50%;width:82%;height:82%}.about__content{max-width:650px}.about__eyebrow{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500}.about__title{letter-spacing:-.05em;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:650;line-height:1.05}.about__text{max-width:620px;color:var(--color-text-muted);margin-top:20px;font-size:.98rem;line-height:1.75}.about__text+.about__text{margin-top:12px}.about__actions{align-items:center;gap:10px;margin-top:32px;display:flex}.about__button{min-height:42px;transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0 18px;font-size:.85rem;font-weight:550;display:inline-flex}.about__button:hover{transform:translateY(-2px)}.about__button--primary{color:#fff;background:var(--color-primary)}.about__button--primary:hover{background:#7c3aed}.about__button--secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.about__button--secondary:hover{background:var(--color-surface);border-color:var(--color-accent)}@media (width<=900px){.about{grid-template-columns:1fr;gap:50px}.about__visual{order:-1}.about__image-wrapper{width:min(55vw,300px)}.about__content{max-width:700px}}@media (width<=767px){.about-section{padding:80px 0}.about{gap:38px}.about__image-wrapper{width:min(70vw,250px)}.about__title{font-size:clamp(2rem,10vw,2.8rem)}.about__text{font-size:.92rem;line-height:1.7}.about__actions{margin-top:26px}}@media (width<=420px){.about__actions{flex-direction:column;align-items:stretch}.about__button{width:100%}}@media (prefers-reduced-motion:reduce){.about__button{transition:none}.about__button:hover{transform:none}}.contact-section{padding:100px 0;overflow:hidden}.contact{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:80px;display:grid}.contact__intro{max-width:500px}.contact__eyebrow{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500}.contact__title{letter-spacing:-.05em;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:650;line-height:1.05}.contact__description{max-width:460px;color:var(--color-text-muted);margin-top:20px;font-size:.98rem;line-height:1.75}.contact__form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:28px;display:grid;box-shadow:0 18px 45px #0003}.contact__field{flex-direction:column;gap:8px;display:flex}.contact__field:nth-child(4){grid-column:1/-1}.contact__field label{color:var(--color-text);font-size:.8rem;font-weight:500}.contact__field input,.contact__field textarea{width:100%;color:var(--color-text);border:1px solid var(--color-border);font:inherit;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);background:#090d15;border-radius:7px;outline:none;padding:11px 13px;font-size:.85rem}.contact__field input{height:44px}.contact__field textarea{resize:vertical;min-height:140px;line-height:1.6}.contact__field input::placeholder,.contact__field textarea::placeholder{color:#5f6877}.contact__field input:focus,.contact__field textarea:focus{border-color:var(--color-primary);background:#0b1019;box-shadow:0 0 0 3px #8b5cf61a}.contact__submit{color:#fff;background:var(--color-primary);cursor:pointer;min-height:44px;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:0;border-radius:7px;grid-column:1/-1;padding:0 20px;font-size:.85rem;font-weight:550}.contact__submit:hover{background:#7c3aed;transform:translateY(-2px);box-shadow:0 8px 20px #7c3aed33}.contact__submit:active{transform:translateY(0)}.form_error{color:#e78787;display:block}.success-alert{z-index:9999;color:#fff;box-sizing:border-box;background:#0f172a;border:1px solid #22c55e;border-radius:12px;justify-content:space-between;align-items:center;gap:30px;width:min(90%,500px);min-height:150px;padding:18px 24px;animation:.3s alertSlideIn;display:flex;position:fixed;top:30px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000040}.success-alert span{text-align:center;flex:1;font-size:17px;font-weight:500}.success-alert button{color:#fff;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:28px;line-height:1;display:flex}.success-alert button:hover{opacity:.7}@keyframes alertSlideIn{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}@media (width<=900px){.contact{grid-template-columns:1fr;gap:45px}.contact__intro{max-width:650px}}@media (width<=767px){.contact-section{padding:80px 0}.contact{gap:35px}.contact__title{font-size:clamp(2rem,10vw,2.8rem)}.contact__description{font-size:.92rem}.contact__form{grid-template-columns:1fr;gap:18px;padding:20px}.contact__field:nth-child(4),.contact__submit{grid-column:auto}}@media (width<=420px){.contact__form{padding:16px}}@media (prefers-reduced-motion:reduce){.contact__email,.contact__field input,.contact__field textarea,.contact__submit{transition:none}.contact__submit:hover{transform:none}}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);margin-top:40px;padding:70px 0 24px}.footer__grid{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:50px;padding-bottom:60px;display:grid}.footer__brand{max-width:320px}.footer__logo{color:var(--color-text);letter-spacing:-.02em;transition:color var(--transition-fast);font-family:Geist Mono,monospace;font-size:1.15rem;font-weight:600;display:inline-block}.footer__logo:hover{color:var(--color-accent)}.footer__tagline{color:var(--color-text-muted);margin-top:14px;font-size:.88rem;line-height:1.7}.footer__socials{align-items:center;gap:8px;margin-top:22px;display:flex}.footer__social-link{width:30px;height:30px;color:var(--color-text-muted);border:1px solid var(--color-border);transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);background:0 0;border-radius:6px;place-items:center;font-size:.75rem;display:grid}.footer__social-link:hover{color:var(--color-accent);background:var(--color-surface-hover);border-color:var(--color-accent);transform:translateY(-2px)}.footer__column{min-width:0}.footer__heading{color:var(--color-text);margin-bottom:18px;font-size:.85rem;font-weight:600}.footer__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.footer__list li,.footer__list a{color:var(--color-text-muted);transition:color var(--transition-fast);font-size:.8rem;line-height:1.5}.footer__list a:hover{color:var(--color-text)}.footer__bottom{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:22px;display:flex}.footer__bottom p{color:var(--color-text-muted);font-size:.72rem}.footer__back-to-top{color:var(--color-text-muted);transition:color var(--transition-fast);font-family:Geist Mono,monospace;font-size:.7rem}.footer__back-to-top:hover{color:var(--color-accent)}@media (width<=900px){.footer{padding-top:60px}.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 35px;padding-bottom:50px}.footer__brand{max-width:360px}}@media (width<=767px){.footer{margin-top:20px;padding:55px 0 20px}.footer__grid{grid-template-columns:1fr;gap:35px;padding-bottom:40px}.footer__brand{max-width:100%}.footer__heading{margin-bottom:14px}.footer__list{gap:8px}.footer__bottom{flex-direction:column;align-items:flex-start;gap:12px}}@media (width<=420px){.footer__tagline{max-width:280px}}.hero{align-items:center;min-height:100vh;padding:120px 0 80px;display:flex}.hero__content{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:80px;display:grid}.hero__text{max-width:680px}.hero__eyebrow{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500}.hero__title{letter-spacing:-.055em;max-width:700px;font-size:clamp(3rem,6vw,5.5rem);font-weight:650;line-height:.98}.hero__title span{color:var(--color-text-muted);display:block}.hero__description{max-width:560px;color:var(--color-text-muted);margin-top:28px;font-size:1.05rem;line-height:1.7}.hero__actions{align-items:center;gap:12px;margin-top:36px;display:flex}.hero__button{min-height:44px;transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0 20px;font-size:.9rem;font-weight:550;display:inline-flex}.hero__button:hover{transform:translateY(-2px)}.hero__button--primary{color:#fff;background:var(--color-primary)}.hero__button--primary:hover{background:#7c3aed}.hero__button--secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.hero__button--secondary:hover{background:var(--color-surface);border-color:var(--color-primary)}.hero__visual{flex-direction:column;align-items:center;gap:18px;display:flex}.hero__image-wrapper{aspect-ratio:1;border:1px solid var(--color-border);background:radial-gradient(circle,#8b5cf61f,#0000 65%);border-radius:50%;place-items:center;width:min(100%,400px);display:grid;position:relative}.hero__image-wrapper:before{content:"";border-radius:inherit;border:1px solid #22d3ee1f;position:absolute;inset:-1px;transform:rotate(8deg)}.hero__image{object-fit:cover;border-radius:50%;width:82%;height:82%}.hero__socials{align-items:center;gap:8px;display:flex}.hero__social-link{width:30px;height:30px;color:var(--color-text-muted);border:1px solid var(--color-border);transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);background:0 0;border-radius:6px;place-items:center;font-size:.8rem;display:grid}.hero__social-link:hover{color:var(--color-accent);background:var(--color-surface);border-color:var(--color-accent);transform:translateY(-2px)}@media (width<=900px){.hero{padding-top:110px}.hero__content{grid-template-columns:1fr;gap:60px}.hero__text{max-width:700px}.hero__visual{order:-1}.hero__image-wrapper{width:min(55vw,320px)}}@media (width<=767px){.hero{min-height:auto;padding:110px 0 60px}.hero__content{gap:44px}.hero__visual{gap:14px}.hero__image-wrapper{width:min(70vw,260px)}.hero__title{letter-spacing:-.06em;font-size:clamp(2.7rem,13vw,4rem)}.hero__description{margin-top:22px;font-size:.95rem}.hero__actions{width:100%;margin-top:28px}.hero__button{flex:1}}@media (width<=420px){.hero__actions{flex-direction:column}.hero__button{width:100%}}.projects-section{padding:60px 0 100px;overflow:hidden}.projects-header{max-width:650px;margin-bottom:48px}.projects-eyebrow{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500}.projects-title{letter-spacing:-.045em;font-size:clamp(2rem,4vw,3.2rem);font-weight:650;line-height:1.05}.projects-description{max-width:580px;color:var(--color-text-muted);margin-top:18px;font-size:.98rem;line-height:1.7}.projects-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);opacity:0;min-width:0;transition:opacity .65s ease, transform .65s cubic-bezier(.22, 1, .36, 1), border-color var(--transition-normal), box-shadow var(--transition-normal);flex-direction:column;display:flex;overflow:hidden;transform:translate(-80px);box-shadow:0 10px 30px #0000002e}.projects-section--visible .project-card{opacity:1;transition-delay:calc(var(--card-index) * .1s);transform:translate(0)}.projects-section--visible .project-card:hover{border-color:#8b5cf680;transform:translateY(-6px);box-shadow:0 18px 45px #0000004d,0 0 25px #8b5cf614}.project-card__image{aspect-ratio:16/10;border-bottom:1px solid var(--color-border);background:#10151f;position:relative;overflow:hidden}.project-card__image img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.project-card:hover .project-card__image img{transform:scale(1.04)}.project-card__content{flex-direction:column;flex:1;padding:20px;display:flex}.project-card__title{letter-spacing:-.02em;font-size:1.15rem;font-weight:600}.project-card__description{color:var(--color-text-muted);margin-top:10px;font-size:.85rem;line-height:1.65}.project-card__technologies{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.project-card__technologies span{color:var(--color-text-muted);border:1px solid var(--color-border);background:#8b93a10f;border-radius:5px;padding:4px 8px;font-family:Geist Mono,monospace;font-size:.68rem}.project-card__actions{gap:8px;margin-top:auto;padding-top:22px;display:flex}.project-card__button{min-height:36px;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-size:.75rem;font-weight:550;display:inline-flex}.project-card__button--primary{color:#fff;background:var(--color-primary)}.project-card__button--primary:hover{background:#7c3aed}.project-card__button--secondary{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.project-card__button--secondary:hover{color:var(--color-text);border-color:var(--color-accent)}@media (width<=1100px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.projects-section{padding:50px 0}.projects-header{margin-bottom:32px}.projects-grid{grid-template-columns:1fr;gap:16px}.project-card{transform:translate(-50px)}.project-card__content{padding:18px}}@media (width<=420px){.project-card__actions{flex-direction:column}.project-card__button{width:100%}}@media (prefers-reduced-motion:reduce){.project-card{opacity:1;transition:none;transform:none}.project-card:hover{transform:none}.project-card__image img{transition:none}}.skills-section{padding:100px 0;overflow:hidden}.skills-header{max-width:650px;margin-bottom:44px}.skills-eyebrow{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500}.skills-title{letter-spacing:-.045em;font-size:clamp(2rem,4vw,3.2rem);font-weight:650;line-height:1.05}.skills-description{max-width:580px;color:var(--color-text-muted);margin-top:18px;font-size:.98rem;line-height:1.7}.skills-carousel{width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.skills-track{direction:ltr;width:max-content;animation:30s linear infinite skills-scroll;display:flex}.skills-carousel:hover .skills-track{animation-play-state:paused}.skill-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:150px;transition:border-color var(--transition-normal), background-color var(--transition-normal), transform var(--transition-normal), box-shadow var(--transition-normal);flex-direction:column;flex:0 0 180px;justify-content:center;align-items:center;margin-right:16px;padding:20px;display:flex;box-shadow:0 10px 30px #00000029}.skill-card:hover{background:var(--color-surface-hover);border-color:#8b5cf680;transform:translateY(-5px);box-shadow:0 16px 35px #00000040,0 0 25px #8b5cf614}.skill-card__icon{width:38px;height:38px;color:var(--color-text-muted);transition:color var(--transition-normal), transform var(--transition-normal)}.skill-card:hover .skill-card__icon{color:var(--color-accent);transform:scale(1.08)}.skill-card__name{color:var(--color-text);margin-top:14px;font-family:Geist Mono,monospace;font-size:.78rem;font-weight:500}@keyframes skills-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (width<=900px){.skills-section{padding:80px 0}.skill-card{flex-basis:190px}.skills-track{animation-duration:26s}}@media (width<=767px){.skills-section{padding:70px 0}.skills-header{margin-bottom:32px}.skills-description{font-size:.92rem}.skill-card{flex-basis:180px;height:140px}.skills-track{animation-duration:22s}}@media (width<=420px){.skill-card{flex-basis:160px;height:130px}.skill-card__icon{width:32px;height:32px}}@media (prefers-reduced-motion:reduce){.skills-track{animation:none}}
