:root{--color-bg: #0b0b0d;--color-surface: rgba(255, 255, 255, .04);--color-surface-hover: rgba(255, 255, 255, .08);--color-border: rgba(255, 255, 255, .12);--color-border-subtle: rgba(255, 255, 255, .08);--color-text-primary: rgba(255, 255, 255, .95);--color-text-secondary: rgba(255, 255, 255, .65);--color-text-tertiary: rgba(255, 255, 255, .45);--color-accent: #ffffff;--color-accent-muted: rgba(255, 255, 255, .85);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-2xl: 4rem;--spacing-3xl: 6rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--max-width: 1200px;--max-width-narrow: 800px}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-base: 0ms}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg);min-height:100vh}:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:2px}.nav-link:focus-visible{outline:none}.skip-link{position:absolute;top:-100px;left:0;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-accent);color:var(--color-bg);text-decoration:none;font-weight:600;z-index:100;border-radius:0 0 var(--radius-md) 0}.skip-link:focus{top:0}.container{max-width:1440px;margin:0 auto;padding:0 5rem}@media (max-width: 767px){.container{padding:0 1.5rem}}.header{position:sticky;top:0;z-index:50;background-color:#0b0b0dcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border-subtle)}.nav{display:flex;align-items:center;justify-content:space-between;height:4rem}.nav-logo{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-fast)}.nav-logo-img{width:28px;height:28px;border-radius:6px;display:block}.nav-logo:hover,.nav-logo:focus{color:var(--color-accent-muted)}.nav-list{display:none;list-style:none;gap:var(--spacing-lg)}@media (min-width: 768px){.nav-list{display:flex}}@media (max-width: 767px){.nav-list--open{display:flex;position:absolute;top:4rem;left:0;right:0;flex-direction:column;background:#0b0b0df2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}}.nav-link{color:var(--color-text-secondary);text-decoration:none;font-size:.9375rem;font-weight:500;transition:color var(--transition-fast);position:relative}.nav-link:hover,.nav-link:focus{color:var(--color-text-primary)}.nav-link:focus,.nav-link:focus-visible{outline:none}.nav-link:after{content:"";position:absolute;bottom:-.25rem;left:0;width:0;height:1px;background:var(--color-accent);transition:width var(--transition-base)}.nav-link:hover:after,.nav-link:focus:after{width:100%}.nav-toggle{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;box-sizing:content-box;width:1.5rem;height:1.125rem;flex-shrink:0;background:none;border:none;cursor:pointer;padding:var(--spacing-xs);margin:calc(-1 * var(--spacing-xs));color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.nav-toggle:hover,.nav-toggle:focus,.nav-toggle:focus-visible,.nav-toggle:active{outline:none;box-shadow:none;border:none}@media (min-width: 768px){.nav-toggle{display:none}}.nav-toggle-line{width:1.5rem;height:2px;background:var(--color-text-primary);transition:all var(--transition-base)}.nav-toggle[aria-expanded=true] .nav-toggle-line:nth-child(1){transform:translateY(calc((1.125rem - 2px)/2)) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-line:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle-line:nth-child(3){transform:translateY(calc(-.5*(1.125rem - 2px))) rotate(-45deg)}.hero{padding:4.25rem 0 0}@media (max-width: 767px){.hero{padding:5rem 0}}.hero-content{max-width:800px}.hero-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:var(--spacing-lg)}@media (max-width: 767px){.hero-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}}.hero-name-block{display:flex;flex-direction:column;gap:.25rem}.hero-title{font-size:3rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;margin:0}@media (max-width: 767px){.hero-title{font-size:2rem}}.hero-subtitle{font-size:1.25rem;font-weight:600;color:var(--color-text-secondary);margin:0}.hero-tagline{font-size:1.125rem;color:var(--color-text-secondary);line-height:1.7;margin-bottom:2rem;white-space:pre-line}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}@media (max-width: 767px){.hero-actions{flex-direction:column;width:100%}}.section{padding:5rem 0}#contact.section{padding:3rem 0}@media (max-width: 767px){#contact.section{padding:3.25rem 0}}@media (max-width: 767px){#about.section{padding-top:0}}.section-alt{background-color:var(--color-surface)}.section-skills{padding:1.5rem 0 1.25rem}.section-title{font-size:2rem;font-weight:700;letter-spacing:-.02em}@media (min-width: 768px){.section-title{font-size:2.5rem}}.about-text{font-size:1.125rem;line-height:1.8;color:var(--color-text-secondary);max-width:100%}.about-text p{margin:0}.about-text p+p{margin-top:.5rem}.skills-slider{position:relative;padding:1rem 0 0;min-height:200px;overflow:visible}.skills-slider-track{overflow-x:auto;overflow-y:visible;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding:.5rem 0;container-type:inline-size;container-name:skills-track;touch-action:pan-x;cursor:grab}.skills-slider-track::-webkit-scrollbar{display:none}.skills-grid{display:flex;align-items:stretch;gap:1.5rem;padding:0}@media (max-width: 767px){.skills-grid{gap:.75rem}}.skill-category{flex:0 0 380px;flex:0 0 calc((100cqw - 2 * 1.5rem) / 3);min-width:0;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base);display:flex;flex-direction:column;align-self:stretch}@container skills-track (max-width: 900px){.skill-category{flex:0 0 calc((100cqw - 1.5rem)/2)}}@container skills-track (max-width: 600px){.skill-category{flex:0 0 calc(100cqw - 2rem);min-width:200px;padding:1rem}}.skill-category:hover{background:var(--color-surface-hover);border-color:var(--color-border);transform:translateY(-2px)}.skill-category-title{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text-primary)}@media (max-width: 767px){.skill-category-title{font-size:.875rem}}.skill-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;flex:1;align-content:flex-start}@media (max-width: 767px){.skill-list{gap:.375rem}}.skill-item{padding:.25rem .625rem;background:#ffffff0f;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--color-text-secondary);transition:all var(--transition-fast)}@media (max-width: 767px){.skill-item{font-size:.75rem;padding:.1875rem .5rem}}.skill-item:hover{background:#ffffff1a;color:var(--color-text-primary)}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 1024px){.projects-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr}}.project-card{padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base);display:flex;flex-direction:column;height:100%}@media (max-width: 1023px){.project-card{padding:1.5rem}}.project-card:hover{background:var(--color-surface-hover);border-color:var(--color-border);transform:translateY(-4px)}.project-header{margin-bottom:var(--spacing-md)}.project-title{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text-primary)}.project-subtitle{font-size:.875rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.project-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);line-height:1.7}.project-meta{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-subtle)}.project-role,.project-stack-label{font-size:.875rem;color:var(--color-text-tertiary)}.project-stack{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:.25rem}.project-tech{padding:.25rem .5rem;background:#ffffff0f;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--color-text-secondary);font-family:var(--font-mono)}.project-highlights{list-style:none;margin-bottom:var(--spacing-lg);flex-grow:1}.project-highlight{position:relative;padding-left:1.25rem;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);font-size:.9375rem;line-height:1.6}.project-highlight:before{content:"→";position:absolute;left:0;color:var(--color-text-tertiary)}.project-links{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.project-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-text-primary);text-decoration:none;font-size:.9375rem;font-weight:500;transition:color var(--transition-fast)}.project-link:hover,.project-link:focus{color:var(--color-accent-muted)}.project-link svg{width:1rem;height:1rem}.timeline{max-width:var(--max-width-narrow)}.timeline-item{position:relative;padding-left:var(--spacing-xl);padding-bottom:var(--spacing-xl);border-left:2px solid var(--color-border-subtle)}.timeline-item:last-child{padding-bottom:0;border-left-color:transparent}.timeline-item:before{content:"";position:absolute;left:-.5rem;top:0;width:.875rem;height:.875rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:50%}.timeline-item:hover:before{background:var(--color-accent);border-color:var(--color-accent)}.timeline-header{margin-bottom:var(--spacing-sm)}.timeline-title{font-size:1.25rem;font-weight:600;margin-bottom:.25rem;color:var(--color-text-primary)}.timeline-company{font-size:1rem;color:var(--color-text-secondary);font-weight:500}.timeline-period{font-size:.875rem;color:var(--color-text-tertiary);margin-bottom:var(--spacing-md)}.timeline-highlights{list-style:none}.timeline-highlight{position:relative;padding-left:1.25rem;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);line-height:1.6}.timeline-highlight:before{content:"•";position:absolute;left:0;color:var(--color-text-tertiary)}.contact-content{max-width:100%;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--spacing-xl)}.contact-text{font-size:1.125rem;color:var(--color-text-secondary);margin-bottom:0;line-height:1.7;flex:1 1 16rem}.contact-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--spacing-md);margin-bottom:0;flex-shrink:0}@media (max-width: 767px){.contact-links{flex-basis:100%}.contact-links .social-links{width:100%;justify-content:space-between;gap:0}}.contact-links-left{display:flex;flex-direction:column;gap:var(--spacing-md)}@media (min-width: 768px){.contact-links-left{flex-direction:row;align-items:center}}.contact-link{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary);text-decoration:none;font-size:1.125rem;transition:color var(--transition-fast)}.contact-link:hover,.contact-link:focus{color:var(--color-accent-muted)}.contact-icon{flex-shrink:0}.social-links{display:flex;gap:var(--spacing-md)}.social-link{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none;position:relative}.social-link svg{display:block;width:24px;height:24px;transform-origin:50% 50%}.social-link[data-link=email] svg{overflow:visible;transform:scale(1.22)}.social-link[data-link=telegram] svg{transform:scale(1.12)}.social-link[data-link=habr] svg{transform:scale(1.15)}.social-link[data-link=emailGmail] svg{overflow:visible;transform:scale(1.12)}.social-link[data-link=emailGmail] path{stroke:currentColor;stroke-width:.7;stroke-linejoin:round;stroke-linecap:round;paint-order:stroke fill}.social-link[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%) translateY(4px);padding:.375rem .75rem;background:var(--color-text-primary);color:var(--color-bg);font-size:.75rem;font-weight:500;white-space:nowrap;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.social-link[data-tooltip]:hover:after,.social-link[data-tooltip]:focus:after{opacity:1;transform:translate(-50%) translateY(0)}.social-link:hover,.social-link:focus{color:var(--color-text-primary);background:var(--color-surface-hover);border-color:var(--color-border);transform:translateY(-2px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;text-decoration:none;border-radius:var(--radius-md);border:1px solid;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans)}@media (max-width: 767px){.hero-actions .btn{width:100%}}.btn:focus{outline:2px solid var(--color-accent);outline-offset:2px}.btn-primary{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.btn-primary:hover,.btn-primary:focus{background:var(--color-accent-muted);border-color:var(--color-accent-muted);transform:translateY(-2px)}.btn-secondary{background:transparent;color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover,.btn-secondary:focus{background:var(--color-surface);border-color:var(--color-border);transform:translateY(-2px)}.btn-copy{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.btn-copy:hover,.btn-copy:focus{background:var(--color-surface-hover);border-color:var(--color-border)}.btn-icon{flex-shrink:0}.footer{padding:var(--spacing-xl) 0;border-top:1px solid var(--color-border-subtle)}.footer-text{text-align:center;color:var(--color-text-tertiary);font-size:.875rem}@media print{.header,.nav,.hero-actions,.contact-links,.social-links,.footer{display:none}body{background:#fff;color:#000}.section{page-break-inside:avoid}}
