:root{--color-text-primary: #ffffff;--color-text-secondary: #969696;--color-text-link: #8b93ff;--color-bg-page: #242424;--color-bg-button: #1a1a1a;--color-bg-section: #282828;--color-border-subtle: rgba(255, 255, 255, .18);--color-transparent: transparent;--color-accent-glow: rgba(120, 120, 255, .35);--color-focus: #8b93ff}:root{--space-0: 0;--space-2: 2px;--space-4: 4px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-15: 15px;--space-16: 16px;--space-20: 20px;--space-30: 30px;--space-32: 32px;--space-40: 40px;--space-48: 48px;--space-50: 50px;--space-60: 60px;--space-70: 70px;--space-80: 80px;--space-100: 100px;--space-150: 150px;--space-section-gap: clamp(var(--space-80), 11vw, var(--space-150));--space-section-padding-block: clamp(var(--space-60), 7vw, var(--space-100));--space-section-padding-inline: clamp(var(--space-20), 4vw, var(--space-50));--gap-4: .25rem;--gap-8: .5rem;--gap-12: .75rem;--gap-16: 1rem;--gap-24: 1.5rem;--gap-32: 2rem;--gap-48: 3rem;--gap-60: 60px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 20px;--radius-full: 50%;--letter-spacing-sm: 1px;--letter-spacing-md: 2px;--letter-spacing-lg: 3px;--letter-spacing-xl: 5px;--space-button-y: .6em;--space-button-x: 1.2em;--space-hero-left-offset: 20%;--scroll-anchor-offset: 5rem}*,*:before,*:after{box-sizing:border-box}:root{line-height:1.5;font-weight:400;font-family:DM Sans,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-optical-sizing:auto;font-style:normal;color-scheme:dark;color:var(--color-text-primary);background-color:var(--color-bg-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:var(--space-0);min-height:100dvh;width:100%;background-color:var(--color-bg-page);color:var(--color-text-primary);overflow-x:hidden}#root{width:100%;min-height:100dvh}a{font-weight:500;color:var(--color-text-link);text-decoration:inherit}:where(a,button,[tabindex]):focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}button{border-radius:var(--radius-sm);border:1px solid var(--color-transparent);padding:var(--space-button-y) var(--space-button-x);font-size:1em;font-weight:500;font-family:inherit;color:var(--color-text-primary);background-color:var(--color-bg-button);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-text-link)}img{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-16);top:var(--space-16);z-index:100;padding:var(--space-8) var(--space-16);background-color:var(--color-bg-section);color:var(--color-text-primary);border-radius:var(--radius-sm);transform:translateY(-200%);transition:transform .2s ease}.skip-link:focus-visible{transform:translateY(0)}#about-me,#technologies,#my-works,#contacts,#main-content{scroll-margin-top:var(--scroll-anchor-offset)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.content-container{display:block;width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(var(--space-16),4vw,var(--space-48))}.main-page{display:flex;flex-direction:column;min-height:100dvh}.main-page>main{flex:1 0 auto;display:flex;flex-direction:column;row-gap:var(--space-section-gap);padding-bottom:var(--space-section-gap)}.hero{display:grid;grid-template-columns:1fr 1fr;padding-top:var(--space-section-gap)}.hero__text{display:flex;justify-content:flex-start;flex-direction:column;padding-left:var(--space-hero-left-offset)}.hero__eyebrow{font-size:1rem;margin-bottom:var(--space-8);color:var(--color-text-link);text-transform:uppercase;letter-spacing:var(--letter-spacing-xl);font-weight:700}.hero__heading{display:flex;flex-direction:column;margin:var(--space-8) var(--space-0) var(--space-0);font-size:3rem;line-height:1.1;text-transform:uppercase;letter-spacing:var(--letter-spacing-md);font-weight:700}.hero__heading-line--muted{color:var(--color-text-secondary)}.hero__typed{display:flex;flex-direction:column;margin-block:var(--space-4);min-height:2.2em}.hero__typed-line{display:block;min-height:1.1em}.hero__caret{display:inline-block;width:3px;height:.9em;background:var(--color-text-primary);margin-left:var(--space-2);opacity:0;vertical-align:-.08em}.hero__caret.is-visible{opacity:1}.hero__caret.is-blinking{animation:hero-caret-blink .75s step-end infinite}@keyframes hero-caret-blink{0%,to{opacity:1}50%{opacity:0}}.hero__media{position:relative;display:flex}.hero__media:before{content:"";position:absolute;width:100%;height:100%;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--color-accent-glow),var(--color-transparent) 70%);filter:blur(40px);z-index:-1}.hero__image{width:auto;max-width:100%;height:550px;max-height:70vh;object-fit:contain;border-radius:var(--radius-lg)}@media(max-width:900px){.hero{row-gap:var(--gap-32)}.hero__text{padding-left:var(--space-0);align-items:flex-start}.hero__heading{font-size:2rem}.hero__caret{height:1em}.hero__media{justify-content:center}.hero__image{height:auto;width:70%}}@media(max-width:480px){.hero{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.hero__caret.is-blinking{animation:none}}.menu-container{margin:var(--space-0) auto;overflow:hidden}.menu-nav{display:flex}.menu-button{padding:var(--space-15) var(--space-60);background:none;cursor:pointer;font-size:1.2rem;font-weight:600;color:var(--color-text-primary);border-radius:unset;transition:all .3s ease;border-left:unset;border-right:unset;border-top:unset;border-bottom:unset;text-transform:uppercase;letter-spacing:var(--letter-spacing-lg)}.menu-button:hover{border-bottom:3px solid;border-left:unset;border-right:unset;border-top:unset;border-color:var(--color-text-link)}.menu-button.active{color:var(--color-text-primary);border-bottom:3px solid var(--color-text-link)}.content-area{padding:var(--space-15);color:var(--color-text-primary);min-height:150px;font-size:1rem}.tab-content{animation:fadeIn .4s ease}.tab-content p{margin-block:var(--space-0) var(--space-16)}.tab-content p:last-child{margin-block-end:var(--space-0)}.time-inform{display:flex;justify-content:end;margin-block:var(--space-8) var(--space-0);color:var(--color-text-secondary);font-size:.85rem;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.menu-nav{flex-wrap:wrap;justify-content:center;gap:var(--gap-4)}.menu-button{padding:var(--space-12) var(--space-16);font-size:.95rem;letter-spacing:var(--letter-spacing-sm)}}.timeline{display:flex;flex-direction:column;padding:var(--gap-32)}.timeline-item{display:flex;gap:var(--gap-32);min-height:160px}.timeline-line{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.timeline-dot{width:14px;height:14px;border-radius:var(--radius-full);border:2px solid var(--color-text-link);background:var(--color-transparent);flex-shrink:0;margin-top:var(--space-4)}.timeline-line:after{content:"";flex:1;width:1px;background:var(--color-text-link)}.timeline-item:last-child .timeline-line:after{display:none}.timeline-content{padding-bottom:var(--gap-48)}.timeline-content h3{margin:var(--space-0);font-size:18px;font-weight:700;letter-spacing:var(--letter-spacing-md);text-transform:uppercase}.timeline-content .timeline-date{margin:var(--space-0);color:var(--color-text-secondary);font-size:14px;line-height:1.6;padding-bottom:var(--space-12)}.timeline-content .timeline-description{margin:var(--space-0);color:var(--color-text-primary);font-size:14px;line-height:1.6}@media(max-width:600px){.timeline{padding:var(--gap-16) var(--gap-8)}.timeline-item{gap:var(--gap-16);min-height:unset}.timeline-content{padding-bottom:var(--gap-32)}}.tech{margin:var(--space-0) auto}.tech__title-container .tech__title{margin-top:var(--space-0);text-transform:uppercase;letter-spacing:var(--letter-spacing-lg);margin-bottom:var(--space-0);font-size:2rem}.tech__title-container .tech__subtitle{font-size:1rem;margin-bottom:var(--space-50);margin-top:var(--space-0);color:var(--color-text-link);text-transform:uppercase;font-weight:700;font-style:italic}.tech__groups{display:grid;gap:var(--gap-32)}.tech__group-title{margin:var(--space-0) var(--space-0) var(--space-12);color:var(--color-text-link);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-spacing-md)}.tech__list{display:flex;flex-wrap:wrap;gap:var(--gap-8);margin:var(--space-0);padding:var(--space-0);list-style:none}.tech__item{padding:var(--space-8) var(--space-16);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-section);font-size:.95rem;cursor:default;transition:border-color .3s ease}.tech__item:hover{border-color:var(--color-text-link)}@media(prefers-reduced-motion:reduce){.tech__item{transition:none}}@media(max-width:768px){.tech__title-container .tech__title{font-size:1.5rem}.tech__item{font-size:.875rem}}.tech__group--secondary{border-top:1px solid var(--color-border-subtle);padding-top:var(--gap-32)}.tech__group--secondary .tech__group-title{color:var(--color-text-secondary)}.quote-block{margin:var(--space-0);display:flex;align-items:center;text-align:center;flex-direction:column;padding-block:var(--space-section-padding-block);padding-inline:var(--space-section-padding-inline);background-color:var(--color-bg-section);border-radius:var(--radius-md)}.quotation-mark{width:auto;height:70px;padding-bottom:var(--space-10)}.quote{max-width:60%;margin:var(--space-0);font-size:2rem;font-weight:700;font-style:italic}@media(max-width:768px){.quotation-mark{width:auto;height:50px}.quote{max-width:100%;font-size:1.35rem}}.footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding-block:var(--space-32);color:var(--color-text-secondary)}.footer__links ul{display:flex;flex-direction:row;gap:var(--gap-60);margin:var(--space-0);padding:var(--space-0);list-style-type:none}.footer__links a{display:inline-block;padding-block:var(--space-4);color:var(--color-text-secondary);transition-duration:.3s}.footer__links a:hover{color:var(--color-text-link);cursor:pointer}@media(max-width:700px){.footer{flex-direction:column-reverse;align-items:center;gap:var(--gap-24);text-align:center}.footer__links ul{flex-wrap:wrap;justify-content:center;gap:var(--gap-16) var(--gap-24)}}.header{display:flex;justify-content:center;padding-top:var(--space-16)}.header__list{list-style-type:none;display:flex;flex-direction:row;gap:var(--gap-16);margin:var(--space-0);padding-left:var(--space-0)}.header__list__item a{display:inline-block;padding:var(--space-8) var(--space-12);color:var(--color-text-secondary);transition:color .3s}.header__list__item a:hover{color:var(--color-text-link);cursor:pointer}@media(max-width:600px){.header__list{flex-wrap:wrap;justify-content:center;gap:var(--gap-4) var(--gap-8)}}.selected-works{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-70)}.selected-works>*:nth-child(2n){margin-top:var(--space-50)}.selected-work-title .selected-work-main-title{margin-top:var(--space-0);text-transform:uppercase;letter-spacing:var(--letter-spacing-lg);margin-bottom:var(--space-0);font-size:2rem}.selected-work-title .selected-work-second-title{font-size:1rem;margin-bottom:var(--space-50);margin-top:var(--space-0);color:var(--color-text-link);text-transform:uppercase;font-weight:700;font-style:italic}@media(max-width:900px){.selected-works{grid-template-columns:1fr;gap:var(--space-20)}.selected-works>*:nth-child(2n){margin-top:var(--space-0)}}.selected-work-block-image img{width:100%;height:auto}.selected-work-block-description p{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-lg);font-size:.7rem;margin-bottom:var(--space-0)}.selected-work-block-title{display:flex;justify-content:space-between;width:100%}.selected-works-block:hover svg{color:var(--color-text-link)}.selected-work-block-title p{font-size:1.5rem;margin-top:unset;color:var(--color-text-primary)}.selected-work-block-title svg{color:var(--color-text-primary);width:auto;transition-duration:.3s}@media(max-width:480px){.selected-work-block-title{flex-wrap:wrap;gap:var(--gap-8)}.selected-work-block-title p{max-width:80%}}.contact{display:flex;text-align:center;flex-direction:column;padding-block:var(--space-section-padding-block);padding-inline:var(--space-section-padding-inline);background-color:var(--color-bg-section);border-radius:var(--radius-md)}.contact-title{font-size:clamp(1.75rem,6vw,5rem);line-height:1.1;font-weight:700;text-transform:uppercase;max-width:20ch;margin-bottom:var(--space-0);margin-top:var(--space-0);margin-inline:auto;text-align:center}.contact-subtitle{font-size:2rem;font-weight:700;color:var(--color-text-link);margin-top:var(--space-0)}.contact-container{display:grid;grid-template-columns:1fr 1fr 1fr;font-size:1.5rem;padding-top:var(--space-30)}.contact-email,.contact-tel{color:var(--color-text-primary);transition-duration:.3s}.contact-email:hover,.contact-tel:hover{color:var(--color-text-link)}.contact-pipe{margin-top:var(--space-0);margin-bottom:var(--space-0)}@media(max-width:768px){.contact-title{font-size:clamp(1.75rem,8vw,3rem);max-width:100%}.contact-subtitle{font-size:1.3rem}.contact-container{grid-template-columns:1fr;font-size:1.1rem;row-gap:var(--gap-12)}.contact-pipe{display:none}}@supports (text-wrap: balance){.contact-title{text-wrap:balance}}.scroll-fade-in{opacity:0;transform:translateY(42px);transition:opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.scroll-fade-in.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.scroll-fade-in{opacity:1;transform:none;transition:none;will-change:auto}}
