:root{--bg-base:#F7F6F2;--bg-elevated:#FFFFFF;--bg-overlay:#FDFCF8;--bg-subtle:#EDEBE4;--border-subtle:#E3DFD4;--border-default:#CFC8B8;--border-strong:#A89F8A;--text-primary:#15181C;--text-secondary:#4A5560;--text-tertiary:#737D89;--text-disabled:#ADB4BC;--accent-primary:#0F9D58;--accent-primary-dim:#0B7A44;--accent-primary-faint:rgba(15,157,88,.1);--accent-secondary:#2563EB;--accent-secondary-dim:#1E4FBF;--accent-secondary-faint:rgba(37,99,235,.1);--font-sans:"Inter","Geist",system-ui,sans-serif;--font-mono:"JetBrains Mono","Geist Mono","Fira Code",monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;--s-12:48px;--s-16:64px;--s-20:80px;--s-24:96px;--s-32:128px;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-xl:16px;--shadow-sm:0 1px 2px rgba(20,24,30,.05);--shadow-md:0 4px 12px rgba(20,24,30,.06);--shadow-lg:0 12px 32px rgba(20,24,30,.08);--glow-green:0 0 0 3px rgba(15,157,88,.12);--ease-default:cubic-bezier(.4,0,.2,1);--ease-precise:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}img,svg{display:block;max-width:100%}::selection{background:var(--accent-primary);color:#fff}.container{max-width:1280px;margin:0 auto;padding:0 var(--s-6)}section{position:relative}.section-pad{padding:var(--s-32) 0}@media (max-width:768px){.section-pad{padding:var(--s-20) 0}}.section-head{display:flex;flex-direction:column;gap:var(--s-4);margin-bottom:var(--s-12)}.section-label{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);display:flex;align-items:center;gap:var(--s-3)}.section-label:before{content:"";width:24px;height:1px;background:var(--accent-primary)}.section-title{font-size:clamp(30px,4.2vw,44px);line-height:1.15;font-weight:600;letter-spacing:-.02em;max-width:800px;text-wrap:balance}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#f7f6f2c7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle)}.nav-inner{max-width:1280px;margin:0 auto;padding:0 var(--s-6);height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--s-6)}.logo{font-family:var(--font-mono);font-size:14px;font-weight:500;letter-spacing:.04em;display:flex;align-items:center;gap:var(--s-2);color:var(--text-primary)}.logo-mark{height:28px;width:auto;border-radius:var(--r-sm);display:block;flex-shrink:0;object-fit:contain}.nav-links{display:flex;align-items:center;gap:var(--s-8)}.nav-links a{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);transition:color .2s var(--ease-default)}.nav-links a:before{content:attr(data-num);color:var(--text-disabled);margin-right:6px;font-size:11px}.nav-links a:hover{color:var(--text-primary)}.nav-right{display:flex;align-items:center;gap:var(--s-3)}.lang-switch{display:flex;border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden;font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated)}.lang-switch a{padding:6px 10px;color:var(--text-tertiary);transition:all .2s var(--ease-default);letter-spacing:.05em;text-decoration:none}.lang-switch a.active{background:var(--text-primary);color:var(--bg-base)}.lang-switch a:not(.active):hover{color:var(--text-primary)}.nav-cta{font-family:var(--font-mono);font-size:13px;padding:8px 14px;border:1px solid var(--border-default);border-radius:var(--r-md);color:var(--text-primary);transition:all .2s var(--ease-default);display:inline-flex;align-items:center;gap:8px}.nav-cta:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.nav-cta .dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:pulse 2s var(--ease-default) infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@media (max-width:900px){.nav-links{display:none}}@media (max-width:500px){.nav-cta span:not(.dot){display:none}}.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;font-size:15px;font-weight:500;border-radius:var(--r-md);transition:all .2s var(--ease-default);cursor:pointer;border:1px solid transparent;font-family:var(--font-sans);letter-spacing:-.01em}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-primary-dim);box-shadow:var(--glow-green)}.btn-primary:active{transform:scale(.98)}.btn-secondary{border-color:var(--border-default);color:var(--text-primary)}.btn-secondary:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.btn svg{width:16px;height:16px;stroke-width:1.75}.hero{min-height:100vh;padding-top:calc(64px + var(--s-20));padding-bottom:var(--s-16);position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.hero-bg{position:absolute;inset:0;pointer-events:none;z-index:0}.hero-grid{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(101,108,118,.1) 1px,transparent 0);background-size:40px 40px;mask-image:radial-gradient(ellipse at 50% 40%,black 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 40%,black 30%,transparent 75%)}.hero-pcb{position:absolute;inset:0;width:100%;height:100%;opacity:.55}.hero-inner{position:relative;z-index:2}.hero-corner{position:absolute;font-family:var(--font-mono);font-size:12px;color:var(--text-tertiary);letter-spacing:.06em;z-index:3;pointer-events:none}.hero-corner .br{color:var(--text-disabled)}.hero-corner .act{color:var(--accent-primary)}.hero-corner-tl{top:calc(64px + var(--s-6));left:var(--s-6)}.hero-corner-br{bottom:var(--s-8);right:var(--s-6);display:flex;align-items:center;gap:var(--s-2)}.hero-corner-br .chev{width:14px;height:14px;border-right:1px solid var(--text-tertiary);border-bottom:1px solid var(--text-tertiary);transform:rotate(45deg);animation:scroll-chev 2s var(--ease-default) infinite;margin-left:4px;margin-top:-4px}@keyframes scroll-chev{0%,to{transform:rotate(45deg) translate(0);opacity:.3}50%{transform:rotate(45deg) translate(3px,3px);opacity:1}}.hero-meta{display:flex;align-items:center;gap:var(--s-4);margin-bottom:var(--s-8);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);flex-wrap:wrap}.hero-meta .status{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid var(--border-subtle);border-radius:var(--r-sm);background:var(--bg-elevated)}.hero-meta .status .ddot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:pulse 2s var(--ease-default) infinite}.hero-meta .divider{width:24px;height:1px;background:var(--border-default)}.roles{display:flex;flex-direction:column;gap:var(--s-3);margin-bottom:var(--s-8)}.role{font-size:clamp(34px,5.8vw,60px);line-height:1.15;letter-spacing:-.03em;font-weight:600;color:var(--text-tertiary);transition:color .6s var(--ease-precise);position:relative;display:flex;align-items:baseline;gap:var(--s-4);white-space:nowrap}.role.active{color:var(--accent-primary)}.role .idx{font-family:var(--font-mono);font-size:14px;color:var(--text-disabled);letter-spacing:0;font-weight:400;align-self:flex-start;margin-top:14px}.role.active .idx{color:var(--accent-primary);opacity:.6}.hero-sub{max-width:620px;color:var(--text-secondary);font-size:18px;line-height:1.6;margin-bottom:var(--s-12)}.hero-ctas{display:flex;gap:var(--s-4);flex-wrap:wrap}.hero-terminal{margin-top:var(--s-16);max-width:640px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden;font-family:var(--font-mono);font-size:13px;box-shadow:var(--shadow-sm)}.term-head{display:flex;align-items:center;gap:var(--s-2);padding:10px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-overlay)}.term-dot{width:10px;height:10px;border-radius:50%;background:var(--border-default)}.term-title{margin-left:var(--s-4);color:var(--text-tertiary);font-size:12px;letter-spacing:.04em}.term-body{padding:var(--s-4) var(--s-6);color:var(--text-secondary);line-height:1.8}.term-body .p{color:var(--accent-primary)}.term-body .k{color:var(--accent-secondary)}.term-body .c{color:var(--text-tertiary)}.cursor{display:inline-block;width:8px;height:14px;background:var(--accent-primary);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);align-items:start}@media (max-width:900px){.about-grid{grid-template-columns:1fr;gap:var(--s-12)}}.bio p{color:var(--text-secondary);font-size:18px;line-height:1.7;max-width:60ch;margin-bottom:var(--s-4)}.bio p strong{color:var(--text-primary);font-weight:500}.bio .hp{font-family:var(--font-mono);font-size:13px;color:var(--accent-primary)}.specs{border-top:1px solid var(--border-subtle)}.spec-row{display:grid;grid-template-columns:120px 1fr;gap:var(--s-4);padding:var(--s-4) 0;border-bottom:1px dashed var(--border-subtle);align-items:baseline}.spec-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.spec-value{font-size:15px;color:var(--text-primary);line-height:1.5}.spec-value .m{font-family:var(--font-mono);color:var(--text-secondary);font-size:14px}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-6)}@media (max-width:900px){.projects-grid{grid-template-columns:1fr}}.project{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--s-6);transition:all .3s var(--ease-default);display:flex;flex-direction:column;gap:var(--s-3);position:relative;box-shadow:var(--shadow-sm)}.project:hover{border-color:#0f9d5859;transform:translateY(-2px);box-shadow:var(--shadow-md)}.project-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);border-bottom:1px dashed var(--border-subtle);padding-bottom:var(--s-3);margin-bottom:var(--s-1)}.project-num{font-family:var(--font-mono);font-size:11px;color:var(--accent-primary);letter-spacing:.08em}.project-kind{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase}.project-title{font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);font-family:var(--font-mono)}.project-subtitle{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);letter-spacing:.02em}.project-desc{color:var(--text-secondary);font-size:14.5px;line-height:1.65;margin-top:var(--s-2)}.project-how{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px dashed var(--border-subtle)}.project-how .how-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--s-2);display:block}.project-how ul{list-style:none;display:flex;flex-direction:column;gap:6px}.project-how li{font-size:13.5px;color:var(--text-secondary);line-height:1.55;padding-left:16px;position:relative}.project-how li:before{content:"›";position:absolute;left:0;color:var(--accent-primary);font-family:var(--font-mono)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:var(--s-4)}.tag{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border-subtle);padding:3px 9px;border-radius:var(--r-sm)}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}@media (max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.services-grid{grid-template-columns:1fr}}.service{position:relative;padding:var(--s-8) var(--s-6);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-elevated);display:flex;flex-direction:column;gap:var(--s-4);transition:border-color .2s var(--ease-default);box-shadow:var(--shadow-sm)}.service:hover{border-color:var(--border-default)}.service:before,.service:after{content:"";position:absolute;width:14px;height:14px;border-color:var(--accent-primary);border-style:solid;opacity:.6;transition:opacity .2s var(--ease-default)}.service:before{top:-1px;left:-1px;border-width:1px 0 0 1px}.service:after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.service:hover:before,.service:hover:after{opacity:1}.service-icon{width:36px;height:36px;border:1px solid var(--border-subtle);border-radius:var(--r-sm);display:grid;place-items:center;color:var(--accent-primary);background:var(--accent-primary-faint)}.service-icon svg{width:20px;height:20px;stroke-width:1.5}.service-num{position:absolute;top:var(--s-4);right:var(--s-6);font-family:var(--font-mono);font-size:11px;color:var(--text-disabled);letter-spacing:.08em}.service-title{font-size:16px;font-weight:500;color:var(--text-primary)}.service-desc{color:var(--text-secondary);font-size:14px;line-height:1.6}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}@media (max-width:900px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.skills-grid{grid-template-columns:1fr}}.skill-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--s-6);box-shadow:var(--shadow-sm)}.skill-card-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:var(--s-3);border-bottom:1px dashed var(--border-subtle);margin-bottom:var(--s-4)}.skill-card-name{font-size:15px;font-weight:600;color:var(--text-primary)}.skill-card-id{font-family:var(--font-mono);font-size:11px;color:var(--accent-primary);letter-spacing:.08em}.skill-card ul{list-style:none;display:flex;flex-direction:column;gap:6px}.skill-card li{font-family:var(--font-mono);font-size:12.5px;color:var(--text-secondary);line-height:1.5;padding-left:14px;position:relative}.skill-card li:before{content:"›";position:absolute;left:0;color:var(--text-disabled)}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s-16)}@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:var(--s-12)}}.contact-intent p{font-size:18px;color:var(--text-secondary);line-height:1.7;margin-bottom:var(--s-6);max-width:46ch}.contact-intent strong{color:var(--text-primary);font-weight:500}.contact-links{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-8);border-top:1px solid var(--border-subtle);padding-top:var(--s-8)}.contact-link{display:flex;align-items:center;gap:var(--s-3);font-family:var(--font-mono);font-size:14px;color:var(--text-secondary);transition:color .2s var(--ease-default)}.contact-link:hover{color:var(--accent-primary)}.contact-link .kbd{color:var(--text-disabled);min-width:90px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.contact-link .arrow{margin-left:auto;color:var(--text-disabled);opacity:0;transition:opacity .2s var(--ease-default)}.contact-link:hover .arrow{opacity:1;color:var(--accent-primary)}.form{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--s-8);display:flex;flex-direction:column;gap:var(--s-6);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:var(--s-2)}.field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);display:flex;justify-content:space-between}.field label .req{color:var(--accent-primary)}.field input,.field textarea{background:var(--bg-overlay);border:1px solid var(--border-default);border-radius:var(--r-md);padding:12px 14px;color:var(--text-primary);font-family:var(--font-sans);font-size:15px;transition:all .2s var(--ease-default);resize:vertical}.field input.mono{font-family:var(--font-mono);font-size:14px}.field textarea{min-height:120px}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-faint)}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.form-note{font-family:var(--font-mono);font-size:12px;color:var(--text-tertiary);letter-spacing:.04em}.field-err{font-family:var(--font-mono);font-size:11px;color:#dc2626;margin-top:4px;display:block;min-height:16px}.captcha-field{align-items:flex-start}.captcha-field .cf-turnstile{min-height:65px}.form button[type=submit]:disabled{opacity:.55;cursor:not-allowed}.field input:invalid.touched,.field textarea:invalid.touched{border-color:#dc2626}.field input:valid.touched,.field textarea:valid.touched{border-color:var(--accent-primary)}footer{border-top:1px solid var(--border-subtle);margin-top:var(--s-20)}.footer-inner{max-width:1280px;margin:0 auto;padding:var(--s-6);display:flex;justify-content:space-between;align-items:center;gap:var(--s-6);font-family:var(--font-mono);font-size:12px;color:var(--text-tertiary);letter-spacing:.04em}.footer-inner a{color:var(--text-secondary);transition:color .2s var(--ease-default)}.footer-inner a:hover{color:var(--accent-primary)}.footer-socials{display:flex;gap:var(--s-6)}@media (max-width:600px){.footer-inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.role{transition:none}}html[lang=ru] body{font-family:var(--font-sans)}html[dir=rtl] body{font-family:Inter,Heebo,Assistant,Arial Hebrew,system-ui,sans-serif}html[dir=rtl] .role{white-space:normal}html[dir=rtl] .term-body,html[dir=rtl] .tags,html[dir=rtl] .tag,html[dir=rtl] .project-num,html[dir=rtl] .project-title,html[dir=rtl] .skill-card-id,html[dir=rtl] .service-num,html[dir=rtl] .skill-card li,html[dir=rtl] .spec-value .m,html[dir=rtl] .contact-link,html[dir=rtl] .footer-inner,html[dir=rtl] .nav-links a:before,html[dir=rtl] .hero-corner,html[dir=rtl] .hero-meta,html[dir=rtl] .form input,html[dir=rtl] .form textarea{direction:ltr;text-align:left;unicode-bidi:isolate}html[dir=rtl] .skill-card li{padding-left:0;padding-right:14px}html[dir=rtl] .skill-card li:before{left:auto;right:0}html[dir=rtl] .project-how li{padding-left:0;padding-right:16px}html[dir=rtl] .project-how li:before{left:auto;right:0}html[dir=rtl] .contact-link .arrow{margin-left:0;margin-right:auto;transform:scaleX(-1)}html[dir=rtl] .field label{direction:rtl;text-align:right}html[dir=rtl] .hero-corner-tl{right:var(--s-6);left:auto}html[dir=rtl] .hero-corner-br{left:var(--s-6);right:auto}html[dir=rtl] .spec-row{grid-template-columns:1fr 120px;direction:rtl}html[dir=rtl] .spec-label,html[dir=rtl] .spec-value{text-align:right}html[dir=rtl] .role .idx{margin-left:0;margin-right:0}html[dir=rtl] .nav-cta,html[dir=rtl] .form-foot{flex-direction:row-reverse}
