@charset "UTF-8";.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-base);gap:var(--space-sm);font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-medium);line-height:1;text-align:center;border:var(--border-width) solid;border-radius:var(--radius-none);cursor:var(--cursor-pointer);transition:background-color var(--transition-fast);user-select:none;background:transparent;outline:none}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn{white-space:nowrap}.btn--primary{border-color:var(--color-border-primary);color:var(--color-text-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--primary:active:not(:disabled){background-color:rgba(var(--color-primary-rgb),.3)}.btn--secondary{border-color:var(--color-border);color:var(--color-text-secondary)}.btn--secondary:hover:not(:disabled){background-color:var(--color-gray-hover)}.btn--secondary:active:not(:disabled){background-color:rgba(var(--color-gray-rgb),.3)}.btn--ghost{border-color:transparent;color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){color:var(--color-text-primary);background-color:#ffffff0d}.btn--ghost:active:not(:disabled){background-color:#ffffff1a}.btn--solid{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface);font-weight:var(--font-semibold)}.btn--solid:hover:not(:disabled){background-color:#d394e5;border-color:#d394e5}.btn--outline{border-color:rgba(var(--color-gray-rgb),.5);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.btn--outline:hover:not(:disabled){border-color:var(--color-text-primary)}.btn--sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-base)}.btn--md{padding:var(--space-sm) var(--space-base);font-size:var(--text-md)}.btn--lg{padding:var(--space-md) var(--space-lg);font-size:var(--text-lg)}.btn--cta{min-height:48px;padding:0 22px;font-size:14px}.btn--disabled,.btn:disabled{opacity:.5;cursor:not-allowed}.heading{font-family:var(--font-primary);font-weight:var(--font-medium);color:var(--color-text-primary);line-height:var(--leading-tight);margin:0}.heading__prefix{color:var(--color-text-accent);margin-right:4px}.heading--h1{font-size:var(--text-2xl);font-weight:var(--font-semibold)}.heading--h2{font-size:var(--text-xl);font-weight:var(--font-medium)}.heading--h3{font-size:var(--text-lg);font-weight:var(--font-medium)}.heading-group{display:flex;align-items:center;gap:var(--space-base)}.heading-group__line{flex:1;height:1px;background-color:var(--color-border)}.text{font-family:var(--font-primary);line-height:var(--leading-normal);margin:0}.text--sm{font-size:var(--text-sm)}.text--base{font-size:var(--text-base)}.text--md{font-size:var(--text-md)}.text--lg{font-size:var(--text-lg)}.text--regular{font-weight:var(--font-regular)}.text--medium{font-weight:var(--font-medium)}.text--semibold{font-weight:var(--font-semibold)}.text--primary{color:var(--color-text-primary)}.text--secondary{color:var(--color-text-secondary)}.text--accent{color:var(--color-text-accent)}.container{width:100%;max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-base);padding-right:var(--space-base)}@media(min-width:768px){.container{padding-left:var(--space-lg);padding-right:var(--space-lg)}}.stack{display:flex;flex-direction:column}.stack--gap-xs{gap:var(--space-xs)}.stack--gap-sm{gap:var(--space-sm)}.stack--gap-md{gap:var(--space-md)}.stack--gap-base{gap:var(--space-base)}.stack--gap-lg{gap:var(--space-lg)}.stack--gap-xl{gap:var(--space-xl)}.stack--gap-2xl{gap:var(--space-2xl)}.stack--gap-3xl{gap:var(--space-3xl)}.stack--gap-4xl{gap:var(--space-4xl)}.stack--align-flex-start{align-items:flex-start}.stack--align-center{align-items:center}.stack--align-flex-end{align-items:flex-end}.stack--align-stretch{align-items:stretch}.flex{display:flex}.flex--row{flex-direction:row}.flex--column{flex-direction:column}.flex--gap-xs{gap:var(--space-xs)}.flex--gap-sm{gap:var(--space-sm)}.flex--gap-md{gap:var(--space-md)}.flex--gap-base{gap:var(--space-base)}.flex--gap-lg{gap:var(--space-lg)}.flex--gap-xl{gap:var(--space-xl)}.flex--justify-flex-start{justify-content:flex-start}.flex--justify-center{justify-content:center}.flex--justify-flex-end{justify-content:flex-end}.flex--justify-space-between{justify-content:space-between}.flex--justify-space-around{justify-content:space-around}.flex--align-flex-start{align-items:flex-start}.flex--align-center{align-items:center}.flex--align-flex-end{align-items:flex-end}.flex--align-stretch{align-items:stretch}.flex--align-baseline{align-items:baseline}.flex--nowrap{flex-wrap:nowrap}.flex--wrap{flex-wrap:wrap}.grid{display:grid;width:100%}.grid--gap-xs{gap:var(--space-xs)}.grid--gap-sm{gap:var(--space-sm)}.grid--gap-md{gap:var(--space-md)}.grid--gap-base{gap:var(--space-base)}.grid--gap-lg{gap:var(--space-lg)}.grid--gap-xl{gap:var(--space-xl)}.grid--cols-1,.grid--cols-2{grid-template-columns:minmax(0,1fr)}@media(min-width:768px){.grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.grid--cols-3{grid-template-columns:minmax(0,1fr)}@media(min-width:768px){.grid--cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.grid--cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:768px){.grid--cols-4{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.card{display:flex;flex-direction:column;background:transparent;height:100%}.card--bordered{border:var(--border-width) solid var(--color-border)}.card--flat{background:#ffffff08;border:none}.card__header{padding:var(--space-base);border-bottom:var(--border-width) solid var(--color-border)}.card__title{font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.card__content{padding:var(--space-base);flex:1;display:flex;flex-direction:column}.header{position:fixed;top:0;left:0;right:0;z-index:var(--z-fixed);background-color:var(--color-background);padding:var(--space-base) 0}.header__content{height:32px}.header__logo{position:relative;display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;transition:opacity var(--transition-fast)}.header__logo:focus-visible{outline:none}.header__logo:focus-visible:after{content:"";position:absolute;inset:-4px;border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--color-primary);opacity:.4;pointer-events:none}.header__logo:hover{opacity:.8}.header__logo-svg{display:block;color:var(--color-gray)!important}.header__logo-svg path{fill:var(--color-gray)!important}.header__nav{display:none;gap:var(--space-xl);align-items:center}@media(min-width:768px){.header__nav{display:flex}}.header__nav-link{position:relative;text-decoration:none;color:var(--color-text-secondary);transition:color var(--transition-fast)}.header__nav-link span{color:inherit}.header__nav-link:focus-visible{outline:none}.header__nav-link:focus-visible:after{content:"";position:absolute;inset:-4px;border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--color-primary);opacity:.4;pointer-events:none}.header__nav-link:hover{color:var(--color-text-primary)}.header__nav-link:hover .header__nav-prefix{color:var(--color-primary)}.header__nav-link--active{color:var(--color-white)}.header__nav-link--active .header__nav-prefix{color:var(--color-primary)}.header__nav-prefix{color:var(--color-text-secondary);margin-right:2px;transition:color var(--transition-fast)}.footer{padding:var(--space-xl) 0 var(--space-lg) 0;background-color:var(--color-background);border-top:1px solid var(--color-border)}.footer__content{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;width:100%;margin-bottom:24px}@media(max-width:767px){.footer__content{flex-direction:column;gap:24px}}.footer__brand{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.footer__name-section{display:flex;flex-direction:row;gap:16px;align-items:center}.footer__logo-svg{display:block;flex-shrink:0;color:var(--color-gray)!important}.footer__logo-svg path{fill:var(--color-gray)!important}.footer__name{color:var(--color-text-primary);font-size:26px;font-weight:600;margin:0;line-height:1}.footer__title{color:var(--color-primary);font-size:14px;font-weight:500;margin:0;line-height:1}.footer__social{display:flex;flex-direction:column;gap:9px;align-items:flex-end}@media(max-width:767px){.footer__social{align-items:flex-start}}.footer__social-title{color:var(--color-text-primary);font-size:14px;font-weight:500;margin:0;line-height:1}.footer__social-links{display:flex;flex-direction:row;gap:10px;align-items:flex-start}.footer__social-link{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--color-text-secondary);font-size:16px;transition:all var(--transition-fast);text-decoration:none}.footer__social-link:hover{color:var(--color-primary);transform:translateY(-2px)}.footer__copyright{text-align:center;padding-top:16px}@media(min-width:768px){.footer__copyright{text-align:left}}.footer__copyright-text{color:var(--color-text-secondary);font-size:12px;margin:0}.input-wrapper{display:flex;flex-direction:column;gap:var(--space-xs);width:100%}.input__label{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary);line-height:var(--leading-normal)}.input{width:100%;padding:var(--space-sm);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-none);font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-regular);color:var(--color-text-primary);line-height:var(--leading-normal);transition:all var(--transition-fast);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:rgba(var(--color-gray-rgb),.75);opacity:1}.input:focus,.input:focus-visible{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);outline:none!important;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.input:hover:not(:disabled){border-color:rgba(var(--color-primary-rgb),.5)}.input:disabled,.input--disabled{opacity:.5;cursor:not-allowed;background:#ffffff05}.input--error{border-color:var(--color-error)}.input--error:focus{border-color:var(--color-error);background:rgba(var(--color-error-rgb),.05)}.input:-webkit-autofill,.input:-webkit-autofill:hover,.input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-background) inset;transition:background-color 5000s ease-in-out 0s}.input__error-message{font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-primary)}.textarea-wrapper{display:flex;flex-direction:column;gap:var(--space-xs);width:100%}.textarea__label{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary);line-height:var(--leading-normal)}.textarea{width:100%;padding:var(--space-sm);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-none);font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-regular);color:var(--color-text-primary);line-height:var(--leading-normal);min-height:120px;resize:vertical;transition:all var(--transition-fast);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.textarea::placeholder{color:rgba(var(--color-gray-rgb),.75);opacity:1}.textarea:focus,.textarea:focus-visible{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);outline:none!important;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.textarea:hover:not(:disabled){border-color:rgba(var(--color-primary-rgb),.5)}.textarea:disabled,.textarea--disabled{opacity:.5;cursor:not-allowed;background:#ffffff05;resize:none}.textarea--error{border-color:var(--color-error)}.textarea--error:focus{border-color:var(--color-error);background:rgba(var(--color-error-rgb),.05)}.textarea__error-message{font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-primary)}.search-bar{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-none);transition:all var(--transition-fast)}.search-bar:hover{border-color:rgba(var(--color-primary-rgb),.5)}.search-bar:focus-within{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.search-bar__icon{flex-shrink:0}.search-bar__input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-regular);color:var(--color-text-primary);line-height:var(--leading-normal)}.search-bar__input::placeholder{color:var(--color-text-secondary);opacity:1}.search-bar__input:focus,.search-bar__input:focus-visible{outline:none!important;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.search-bar__input:-webkit-autofill,.search-bar__input:-webkit-autofill:hover,.search-bar__input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-background) inset;transition:background-color 5000s ease-in-out 0s}.search-bar__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:var(--space-xs);background:transparent;border:none;cursor:var(--cursor-pointer);transition:all var(--transition-fast);color:var(--color-text-secondary)}.search-bar__clear:hover{color:var(--color-text-primary);background:#ffffff0d}.search-bar__clear:active{transform:scale(.95)}.burger-button{display:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:24px;height:24px;background:transparent;border:none;padding:0;cursor:var(--cursor-pointer);position:relative;transition:all var(--transition-fast)}@media(max-width:767px){.burger-button{display:flex}}.burger-button__line{width:24px;height:2px;background:var(--color-border);transition:all var(--transition-fast);transform-origin:center}.burger-button:hover .burger-button__line{background:var(--color-text-primary)}.burger-button--open .burger-button__line{background:var(--color-text-primary);position:absolute}.burger-button--open .burger-button__line:nth-child(1){transform:rotate(45deg)}.burger-button--open .burger-button__line:nth-child(2){opacity:0}.burger-button--open .burger-button__line:nth-child(3){transform:rotate(-45deg)}.mobile-menu__backdrop{position:fixed;inset:0;background:#00000080;z-index:998;animation:fadeIn var(--transition-fast)}.mobile-menu{position:fixed;inset:64px 0 0;z-index:999;background:var(--color-background);padding:var(--space-2xl) var(--space-base);display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto;animation:slideInFromTop .3s ease}@media(min-width:768px){.mobile-menu{display:none}}.mobile-menu__nav{display:flex;flex-direction:column;gap:var(--space-xl)}.mobile-menu__link{display:flex;align-items:center;gap:4px;text-decoration:none;color:var(--color-text-secondary);transition:color var(--transition-fast)}.mobile-menu__link:hover{color:var(--color-text-primary)}.mobile-menu__link:hover .mobile-menu__link-prefix{color:var(--color-primary)}.mobile-menu__link--active{color:var(--color-text-primary)}.mobile-menu__link--active .mobile-menu__link-prefix{color:var(--color-primary)}.mobile-menu__link--active span{font-weight:var(--font-medium)}.mobile-menu__link-prefix{color:var(--color-primary);font-family:var(--font-primary);font-size:var(--text-xl);font-weight:var(--font-medium)}.mobile-menu__footer{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}@keyframes slideInFromTop{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.close-button{display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:var(--border-width) solid var(--color-border);cursor:var(--cursor-pointer);transition:all var(--transition-fast);color:var(--color-text-secondary);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.close-button__icon{display:block;width:100%;height:100%}.close-button--sm{width:24px;height:24px}.close-button--md{width:32px;height:32px}.close-button--lg{width:40px;height:40px}.close-button--default:hover{color:var(--color-text-primary);background:#ffffff0d;border-color:var(--color-text-primary)}.close-button--danger:hover{color:var(--color-error);background:rgba(var(--color-error-rgb),.1);border-color:var(--color-error)}.close-button:active{transform:scale(.95)}.icon{display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.icon--clickable{background:transparent;border:none;padding:0;cursor:var(--cursor-pointer);outline:none}.icon--clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.icon--clickable:hover{transform:scale(1.1);opacity:.8}.icon--clickable:active{transform:scale(.95)}.icon__svg{display:block;width:100%;height:100%}.icon--sm{width:16px;height:16px}.icon--md{width:24px;height:24px}.icon--lg{width:32px;height:32px}.icon--primary{color:var(--color-primary)}.icon--secondary{color:var(--color-text-secondary)}.icon--white{color:var(--color-text-primary)}.icon--gray{color:var(--color-gray)}.tag{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;font-family:var(--font-primary);font-size:12px;font-weight:500;line-height:1.2;border-radius:var(--radius-none);white-space:nowrap;letter-spacing:.3px;width:fit-content;max-width:max-content}.tag--default{color:#e0e0e0;background:rgba(var(--color-gray-rgb),.08);border:1px solid rgba(var(--color-gray-rgb),.4)}.tag--primary{color:#e5b3ff;background:rgba(var(--color-primary-rgb),.15);border:1px solid rgba(var(--color-primary-rgb),.6)}.tag--secondary{color:#fff;background:#ffffff1a;border:1px solid rgba(255,255,255,.4)}.tag--outline{color:var(--color-gray);background:transparent;border:1px solid rgba(var(--color-gray-rgb),.45)}.tag--sm{padding:3px 8px;font-size:11px;font-weight:400;letter-spacing:0}@media(max-width:767px){.tag{padding:3px 6px;font-size:11px;letter-spacing:.2px}}@media(min-width:768px)and (max-width:1023px){.tag{padding:4px 7px;font-size:11px}}.dots-pattern{display:grid;position:absolute;z-index:0}.dots-pattern__dot{border-radius:50%}.empty-square{position:absolute;border:var(--border-width) solid;background:transparent;z-index:0;pointer-events:none}.blur-image{position:relative;overflow:hidden;display:block;background:rgba(var(--color-gray-rgb),.05);width:100%;height:auto}.blur-image__placeholder{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity .3s ease}.blur-image__img{width:100%;height:auto;display:block;object-fit:cover;opacity:0;transition:opacity .4s ease-in}.blur-image__img--loaded{opacity:1}.blur-image__img--error{opacity:.5;filter:grayscale(100%)}.blur-image{contain:layout style paint;will-change:opacity}.blur-image--16-10{aspect-ratio:16/10}.blur-image--16-9{aspect-ratio:16/9}.blur-image--4-3{aspect-ratio:4/3}.blur-image--1-1{aspect-ratio:1/1}.back-button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-base);background:transparent;border:var(--border-width) solid var(--color-border);cursor:var(--cursor-pointer);transition:all var(--transition-fast);font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-medium);color:var(--color-text-secondary);outline:none;text-decoration:none}.back-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.back-button--default{border-color:var(--color-border);color:var(--color-text-secondary)}.back-button--default:hover{color:var(--color-text-primary);background-color:#ffffff0d}.back-button--default:hover .icon{color:var(--color-text-primary)}.back-button--ghost{border-color:transparent;color:var(--color-text-secondary)}.back-button--ghost:hover{color:var(--color-text-primary);background-color:#ffffff0d}.back-button--ghost:hover .icon{color:var(--color-text-primary)}.back-button:active{transform:scale(.98)}.back-button__text{line-height:1}.page-header{width:100%;margin-bottom:var(--space-2xl)}.page-header__title-group{display:flex;flex-direction:column;gap:var(--space-sm)}.page-header__subtitle{margin-top:var(--space-xs)}.page-wrapper{position:relative;width:100%;padding:var(--space-2xl) 0}@media(max-width:767px){.page-wrapper{padding:var(--space-xl) 0}}.content-section{width:100%}.content-section--compact .content-section__content{margin-top:var(--space-base)}.content-section--default .content-section__content{margin-top:var(--space-lg)}.content-section--wide .content-section__content{margin-top:var(--space-xl)}.vertical-centered-box{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background-color:var(--color-background);animation:fadeIn .2s ease}.content{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.loader-circle{width:48px;height:48px;border:4px solid rgba(var(--color-gray-rgb),.2);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loader-line-mask{display:none}.loader-message{color:var(--color-text-secondary);font-size:var(--text-md);font-weight:var(--font-medium);margin:0;text-align:center}.loader-progress{width:200px;margin-top:var(--space-base)}.loader-progress-bar{height:4px;background-color:var(--color-primary);border-radius:2px;transition:width .3s ease}.loader-progress-text{display:block;margin-top:var(--space-xs);color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.skeleton-loader{background:rgba(var(--color-gray-rgb),.1);border-radius:var(--radius-none);position:relative;overflow:hidden;animation:skeletonPulse 1.5s ease-in-out infinite}.skeleton-loader:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);animation:skeletonShimmer 2s infinite}.skeleton-loader__group{display:flex;flex-direction:column;gap:var(--space-sm)}@keyframes skeletonPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes skeletonShimmer{0%{left:-100%}to{left:100%}}.loading-state{width:100%;min-height:unset;display:flex;align-items:center;justify-content:center;padding:var(--space-md) 0}.loading-state--spinner{flex-direction:column}.loading-state--skeleton{align-items:flex-start;justify-content:flex-start}.loading-state__spinner{width:40px;height:40px;border:3px solid rgba(var(--color-gray-rgb),.2);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-state{width:100%;min-height:unset;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.error-state__icon{color:var(--color-error);display:flex;align-items:center;justify-content:center}.empty-state{width:100%;min-height:unset;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.empty-state__icon{color:var(--color-text-secondary);opacity:.5;display:flex;align-items:center;justify-content:center}.empty-state__action{margin-top:var(--space-sm)}.select-wrapper{display:flex;flex-direction:column;gap:var(--space-xs);width:100%}.select__label{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary);line-height:var(--leading-normal)}.select__container{position:relative;width:100%}.select{width:100%;padding:var(--space-sm);padding-right:var(--space-2xl);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-none);font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-regular);color:var(--color-text-primary);line-height:var(--leading-normal);transition:all var(--transition-fast);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:var(--cursor-pointer)}.select:hover:not(:disabled){border-color:rgba(var(--color-primary-rgb),.5)}.select:focus,.select:focus-visible{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);outline:none!important;box-shadow:none!important}.select:disabled,.select--disabled{opacity:.5;cursor:not-allowed;background:#ffffff05}.select--error{border-color:var(--color-error)}.select--error:focus{border-color:var(--color-error);background:rgba(var(--color-error-rgb),.05)}.select option{background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--text-base)}.select__arrow{position:absolute;right:var(--space-sm);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-secondary);display:flex;align-items:center;transition:color var(--transition-fast),transform var(--transition-fast)}.select:focus~.select__arrow{color:var(--color-primary)}.select__error-message{font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-primary)}.checkbox{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:var(--cursor-pointer);user-select:none;transition:opacity var(--transition-fast)}.checkbox--disabled{opacity:.5;cursor:not-allowed}.checkbox--disabled .checkbox__visual{cursor:not-allowed}.checkbox:hover:not(.checkbox--disabled) .checkbox__visual{border-color:var(--color-primary)}.checkbox__native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.checkbox__native:focus-visible+.checkbox__visual{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox__visual{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:transparent;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.checkbox--checked .checkbox__visual,.checkbox--indeterminate .checkbox__visual{border-color:var(--color-primary);background-color:var(--color-primary)}.checkbox__check{color:#fff;flex-shrink:0}.checkbox__dash{display:block;width:8px;height:2px;background:#fff;border-radius:1px}.checkbox__label{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-regular);color:var(--color-text-primary);line-height:var(--leading-normal);transition:color var(--transition-fast)}.checkbox--disabled .checkbox__label{color:var(--color-text-secondary)}.alert{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) var(--space-base);border:var(--border-width) solid;border-left-width:4px;border-radius:var(--radius-sm);font-family:var(--font-primary);transition:opacity var(--transition-base),transform var(--transition-base)}.alert--dismissing{opacity:0;transform:translate(8px)}.alert--info{border-color:color-mix(in srgb,var(--color-info) 30%,transparent);border-left-color:var(--color-info);background:color-mix(in srgb,var(--color-info) 5%,transparent)}.alert--info .alert__icon{color:var(--color-info)}.alert--success{border-color:color-mix(in srgb,var(--color-success) 30%,transparent);border-left-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 5%,transparent)}.alert--success .alert__icon{color:var(--color-success)}.alert--warning{border-color:color-mix(in srgb,var(--color-warning) 30%,transparent);border-left-color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 5%,transparent)}.alert--warning .alert__icon{color:var(--color-warning)}.alert--error{border-color:color-mix(in srgb,var(--color-error) 30%,transparent);border-left-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 5%,transparent)}.alert--error .alert__icon{color:var(--color-error)}.alert__icon{flex-shrink:0;display:flex;align-items:center;margin-top:1px}.alert__content{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.alert__title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-primary);line-height:var(--leading-tight);display:block}.alert__body{font-size:var(--text-base);font-weight:var(--font-regular);color:var(--color-text-secondary);line-height:var(--leading-normal)}.alert__dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;cursor:var(--cursor-pointer);color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);margin-top:-2px}.alert__dismiss:hover{color:var(--color-text-primary);background:#ffffff14}.alert__dismiss:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.divider--horizontal{display:flex;align-items:center;width:100%}.divider--horizontal:before,.divider--horizontal:after{content:"";flex:1;height:1px;background:var(--color-border);opacity:.3}.divider--horizontal:not(.divider--with-label):after{display:none}.divider--horizontal:not(.divider--with-label):before{flex:1}.divider--vertical{display:inline-block;width:1px;height:100%;min-height:1em;background:var(--color-border);opacity:.3;align-self:stretch;flex-shrink:0}.divider--with-label{gap:var(--space-md)}.divider--with-label:before,.divider--with-label:after{display:block}.divider--horizontal.divider--spacing-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.divider--horizontal.divider--spacing-md{margin-top:var(--space-base);margin-bottom:var(--space-base)}.divider--horizontal.divider--spacing-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.divider--vertical.divider--spacing-sm{margin-left:var(--space-sm);margin-right:var(--space-sm)}.divider--vertical.divider--spacing-md{margin-left:var(--space-base);margin-right:var(--space-base)}.divider--vertical.divider--spacing-lg{margin-left:var(--space-lg);margin-right:var(--space-lg)}.divider__label{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;line-height:1}.badge-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-primary);font-weight:var(--font-semibold);white-space:nowrap;line-height:1;border-radius:999px}.badge--sm{min-width:16px;height:16px;font-size:var(--text-xs);padding:0 var(--space-xs)}.badge--md{min-width:20px;height:20px;font-size:var(--text-sm);padding:0 var(--space-xs)}.badge--dot{width:8px;height:8px;min-width:8px;padding:0;border-radius:50%}.badge--overlay{position:absolute;top:-6px;right:-6px}.badge--overlay.badge--sm{top:-4px;right:-4px}.badge--overlay.badge--dot{top:-2px;right:-2px}.badge--default{background:var(--color-gray);color:var(--color-background)}.badge--primary{background:var(--color-primary);color:#fff}.badge--success{background:var(--color-success);color:#fff}.badge--warning{background:var(--color-warning);color:#fff}.badge--error{background:var(--color-error);color:#fff}.tooltip-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.tooltip{position:absolute;z-index:var(--z-dropdown);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-regular);color:var(--color-text-primary);white-space:nowrap;line-height:var(--leading-normal);opacity:0;pointer-events:none;transition:opacity var(--transition-base),transform var(--transition-base)}.tooltip--visible{opacity:1;pointer-events:auto;transform:translate(0)!important}.tooltip:before{content:"";position:absolute;border:5px solid transparent}.tooltip--top{bottom:calc(100% + 9px);left:50%;transform:translate(-50%) translateY(4px)}.tooltip--top.tooltip--visible{transform:translate(-50%) translateY(0)}.tooltip--top:before{top:100%;left:50%;transform:translate(-50%);border-top-color:var(--color-border);border-bottom:none;filter:drop-shadow(0 1px 0 var(--color-border))}.tooltip--top:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--color-surface);border-bottom:none}.tooltip--bottom{top:calc(100% + 9px);left:50%;transform:translate(-50%) translateY(-4px)}.tooltip--bottom.tooltip--visible{transform:translate(-50%) translateY(0)}.tooltip--bottom:before{bottom:100%;left:50%;transform:translate(-50%);border-bottom-color:var(--color-border);border-top:none}.tooltip--bottom:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-bottom-color:var(--color-surface);border-top:none}.tooltip--left{right:calc(100% + 9px);top:50%;transform:translateY(-50%) translate(4px)}.tooltip--left.tooltip--visible{transform:translateY(-50%) translate(0)}.tooltip--left:before{left:100%;top:50%;transform:translateY(-50%);border-left-color:var(--color-border);border-right:none}.tooltip--left:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-left-color:var(--color-surface);border-right:none}.tooltip--right{left:calc(100% + 9px);top:50%;transform:translateY(-50%) translate(-4px)}.tooltip--right.tooltip--visible{transform:translateY(-50%) translate(0)}.tooltip--right:before{right:100%;top:50%;transform:translateY(-50%);border-right-color:var(--color-border);border-left:none}.tooltip--right:after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-right-color:var(--color-surface);border-left:none}.code-block{display:flex;flex-direction:column;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;font-family:var(--font-primary);position:relative}.code-block__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-base);background:var(--color-background);border-bottom:var(--border-width) solid var(--color-border);gap:var(--space-sm)}.code-block__header-left{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.code-block__header-right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.code-block__title{font-size:var(--text-sm);font-weight:var(--font-regular);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.code-block__title-comment{color:var(--color-primary);font-weight:var(--font-medium)}.code-block__language{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary);letter-spacing:.05em;text-transform:uppercase}.code-block__copy{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:var(--cursor-pointer);padding:var(--space-xs);color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);gap:var(--space-xs);min-width:24px;min-height:24px}.code-block__copy:hover{color:var(--color-text-primary);background:#ffffff0f}.code-block__copy:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.code-block__copy--floating{position:absolute;top:var(--space-sm);right:var(--space-sm);z-index:1}.code-block__copied-text{font-size:var(--text-xs);color:var(--color-success);font-family:var(--font-primary);font-weight:var(--font-medium);white-space:nowrap}.code-block__body{position:relative;overflow-x:auto}.code-block__body::-webkit-scrollbar{height:4px}.code-block__body::-webkit-scrollbar-track{background:transparent}.code-block__body::-webkit-scrollbar-thumb{background:rgba(var(--color-gray-rgb),.3);border-radius:2px}.code-block__pre{margin:0;padding:var(--space-base);overflow:visible;background:transparent}.code-block__code{display:block;font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-regular);color:var(--color-text-primary);line-height:var(--leading-relaxed);white-space:pre;tab-size:2}.code-block--numbered .code-block__code{display:flex;flex-direction:column}.code-block__line{display:flex;gap:var(--space-lg)}.code-block__line:hover{background:#ffffff05}.code-block__line-number{flex-shrink:0;width:2ch;text-align:right;font-size:var(--text-base);color:var(--color-text-secondary);opacity:.4;user-select:none;font-variant-numeric:tabular-nums}.code-block__line-content{flex:1;color:var(--color-text-primary)}.app-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.skip-link{position:fixed;top:-100px;left:16px;z-index:calc(var(--z-top) + 1);padding:10px 14px;background:var(--color-primary);color:var(--color-surface);font-weight:var(--font-semibold);text-decoration:none}.skip-link:focus{top:12px;outline:2px solid var(--color-white);outline-offset:2px}.app-layout__main:focus{outline:none}.app-layout__main{flex:1;min-height:100vh;min-height:100dvh;padding-top:65px;display:flex;flex-direction:column}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.git-log{--git-main-x: 12px;--git-lane-x: 40px;--git-node-y: 22px;--git-col: 56px;--git-row-gap: 22px;--git-line: rgba(171, 178, 191, .45);--git-branch: rgba(199, 120, 221, .55);position:relative;list-style:none;margin:0;padding:0;width:100%;max-width:750px}.git-log:before{content:"";position:absolute;left:var(--git-main-x);top:var(--git-node-y);bottom:6px;width:1.5px;background:var(--git-line);transform:translate(-.75px)}.git-log__group,.git-log__branches{list-style:none;margin:0;padding:0}.git-log__status{color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:12px}.git-log__status--loading{min-height:1200px}@media(max-width:600px){.git-log__status--loading{min-height:1800px}}.git-row{position:relative;display:grid;grid-template-columns:var(--git-col) minmax(0,1fr);padding-bottom:var(--git-row-gap)}.git-row__body{min-width:0;padding-top:calc(var(--git-node-y) - 10px)}.git-graph{position:relative;align-self:stretch}.git-graph svg{position:absolute;overflow:visible}.git-graph path{fill:none;stroke:var(--git-branch);stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke}.git-graph__commit{position:absolute;left:calc(var(--git-main-x) - 5.5px);top:calc(var(--git-node-y) - 5.5px);width:11px;height:11px;border-radius:50%;background:var(--cv-background);border:2px solid var(--cv-gray);z-index:1}.git-graph__commit--head{background:var(--cv-primary);border-color:var(--cv-primary);box-shadow:0 0 0 4px #c778dd2e}.git-graph__out{left:var(--git-main-x);top:var(--git-node-y);width:calc(var(--git-lane-x) - var(--git-main-x));height:calc(100% - var(--git-node-y) + var(--git-row-gap))}.git-graph__lane{position:absolute;left:var(--git-lane-x);top:0;bottom:calc(-1 * var(--git-row-gap));width:1.5px;background:var(--git-branch);transform:translate(-.75px)}.git-graph__lane--end{bottom:auto;height:var(--git-node-y)}.git-graph__node{position:absolute;left:calc(var(--git-lane-x) - 4.5px);top:calc(var(--git-node-y) - 4.5px);width:9px;height:9px;border-radius:50%;background:var(--cv-primary);z-index:1}.git-graph__node--open{background:var(--cv-background);border:1.5px solid var(--cv-primary)}.git-row--root{height:calc(var(--git-node-y) + 6px);padding-bottom:0}.git-graph__root{position:absolute;left:calc(var(--git-main-x) - 4px);top:calc(var(--git-node-y) - 4px);width:8px;height:8px;border-radius:50%;background:var(--cv-gray);z-index:1}.git-ref{display:inline-block;margin-right:8px;padding:1px 6px;border:.5px solid var(--cv-border);color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:10px;line-height:14px;vertical-align:middle}.git-ref--head{border-color:var(--cv-primary);color:var(--cv-primary)}.git-commit{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-bottom:6px;border-bottom:.5px solid rgba(171,178,191,.35)}.git-commit__company{margin:0;color:var(--cv-white);font-family:var(--cv-font-medium);font-size:14px;line-height:20px;font-weight:600}.git-commit__position{color:var(--cv-primary);font-family:var(--cv-font-regular);font-size:12px}.git-commit__dates{margin-left:auto;color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:11px;white-space:nowrap}.git-branch{display:flex;flex-direction:column;gap:6px}.git-branch__name{color:var(--cv-primary);font-family:var(--cv-font-regular);font-size:11px;line-height:14px;opacity:.85}.git-branch__state{color:var(--cv-gray)}.git-branch__details{padding:2px 0 0}.edu-log{--edu-dot-x: 12px;--edu-row-y: 9px;position:relative;list-style:none;margin:0;padding:0;width:100%;max-width:750px}.edu-log__row{position:relative;display:grid;grid-template-columns:56px 104px minmax(0,1fr);align-items:start;padding-bottom:18px}.edu-log__row:not(:last-child):before{content:"";position:absolute;left:var(--edu-dot-x);top:var(--edu-row-y);bottom:calc(-1 * var(--edu-row-y));width:1.5px;background:#abb2bf73;transform:translate(-.75px)}.edu-log__row:last-child{padding-bottom:0}.edu-log__dot{position:absolute;left:calc(var(--edu-dot-x) - 4px);top:calc(var(--edu-row-y) - 4px);width:8px;height:8px;border-radius:50%;background:var(--cv-gray);z-index:1}.edu-log__row--current .edu-log__dot{background:var(--cv-primary);box-shadow:0 0 0 3px #c778dd2e}.edu-log__row--paused .edu-log__dot{background:var(--cv-background);border:1.5px solid var(--cv-gray)}.edu-log__years{grid-column:2;color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:11px;line-height:18px;white-space:nowrap}.edu-log__row--current .edu-log__years{color:var(--cv-primary)}.edu-log__main{grid-column:3;display:flex;flex-direction:column;gap:8px;min-width:0}.edu-log__line{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}.edu-log__school{margin:0;color:var(--cv-white);font-family:var(--cv-font-medium);font-size:13px;line-height:18px;font-weight:600}.edu-log__degree{color:var(--cv-primary);font-family:var(--cv-font-regular);font-size:12px}.edu-log__duration{color:var(--cv-gray)}.edu-log__note{margin:0;color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:12px;line-height:17px}@media(max-width:600px){.edu-log{--edu-dot-x: 8px}.edu-log__row{grid-template-columns:40px minmax(0,1fr)}.edu-log__years,.edu-log__main{grid-column:2}.git-log{--git-main-x: 8px;--git-lane-x: 28px;--git-col: 40px}.git-commit__dates{margin-left:0;flex-basis:100%}.cv-experience__project-header{flex-direction:column;gap:2px}.cv-experience__project-dates{text-align:left}}@media print{.git-log{--git-line: #999;--git-branch: #999}.git-graph__commit--head,.git-graph__node,.git-graph__root{background:#666;border-color:#666;box-shadow:none}.git-commit__company{color:#000}.git-row,.edu-log__row{page-break-inside:avoid}.edu-log__school{color:#000}}:root{--cv-primary: #c778dd;--cv-gray: #abb2bf;--cv-background: #282c33;--cv-white: #ffffff;--cv-border: var(--cv-gray);--cv-font-regular: "Fira Code Variable", "Fira Code", "JetBrains Mono", "Monaco", monospace;--cv-font-medium: "Fira Code Variable", "Fira Code", "JetBrains Mono", "Monaco", monospace;--cv-font-semibold: "Fira Code Variable", "Fira Code", "JetBrains Mono", "Monaco", monospace}.cv{background:var(--cv-background);position:relative;overflow:hidden;min-height:auto;padding:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:center}.cv-header,.cv-grid,.cv-summary,.cv-section{width:100%;max-width:1024px;margin-left:auto;margin-right:auto}.cv,.cv *{box-sizing:border-box}.cv-header{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;width:100%;margin-bottom:24px}.cv-header__info{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.cv-header__name-section{display:flex;flex-direction:row;gap:16px;align-items:center}.cv-header__logo{flex-shrink:0;width:26px;height:26px}.cv-header__logo-svg{display:block;color:var(--cv-primary);path{fill:var(--cv-primary)!important}}.cv-header__name{color:var(--cv-white);text-align:left;font-family:var(--cv-font-semibold);font-size:26px;font-weight:600;margin:0}.cv-header__title{color:var(--cv-primary);text-align:left;font-family:var(--cv-font-medium);font-size:14px;font-weight:500;margin:0}.cv-header__contact{display:flex;flex-direction:column;gap:9px;align-items:flex-end}.cv-header__contact-row{display:flex;flex-direction:row;gap:10px;align-items:flex-start}.cv-contact-badge{background:var(--cv-background);border-style:solid;border-color:var(--cv-border);border-width:.5px;padding:4px 6px;display:flex;flex-direction:row;gap:4px;align-items:center}.cv-contact-badge__icon{flex-shrink:0;width:16px;height:16px;color:var(--cv-gray)}.cv-contact-badge__text{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-regular);font-size:12px;font-weight:400}.cv-contact-badge--link{text-decoration:none;cursor:var(--cursor-pointer);transition:border-color .15s ease,opacity .15s ease}.cv-contact-badge--link:hover{border-color:var(--cv-primary);opacity:.9}.cv-contact-badge--link:focus-visible{outline:2px solid var(--cv-primary);outline-offset:2px}.cv-summary{background:var(--cv-background);border-style:solid;border-color:var(--cv-border);border-width:.5px;display:flex;flex-direction:column;gap:0px;width:100%;max-width:750px;margin-bottom:20px}.cv-summary__header{padding:6px 8px;display:flex;flex-direction:row;gap:10px;align-items:flex-start;border-bottom:.5px solid var(--cv-border)}.cv-summary__title{color:var(--cv-white);text-align:left;font-family:var(--cv-font-medium);font-size:14px;font-weight:500;margin:0}.cv-summary__content{padding:8px}.cv-summary__text{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-regular);font-size:12px;line-height:17px;font-weight:400;margin:0}.cv-section{margin-bottom:40px}.cv-section__header{background:var(--cv-background);border-style:solid;border-color:var(--cv-border);border-width:.5px;padding:8px 12px;margin-bottom:20px}.cv-section__title{color:var(--cv-white);text-align:left;font-family:var(--cv-font-medium);font-size:14px;line-height:20px;font-weight:600;letter-spacing:.3px;margin:0;text-transform:uppercase}.cv-experience{display:flex;flex-direction:column;gap:28px;width:100%;max-width:750px;margin-bottom:0;position:relative}.cv-experience:before{content:"";position:absolute;left:31px;top:0;bottom:0;width:1px;background:var(--cv-border)}.cv-experience__item{display:flex;flex-direction:row;gap:16px;align-items:flex-start}.cv-experience__dates{background:var(--cv-background);border-style:solid;border-color:var(--cv-border);border-width:.5px;padding:6px 7px;display:flex;flex-direction:column;gap:4px;flex-shrink:0;z-index:1}.cv-experience__date{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-medium);font-size:10px;font-weight:600;white-space:nowrap}.cv-experience__content{background:var(--cv-background);border-style:solid;border-color:var(--cv-border);border-width:.5px;display:flex;flex-direction:column;gap:0px;flex:1;z-index:1}.cv-experience__header{padding:6px 8px;display:flex;flex-direction:row;gap:10px;align-items:flex-start;border-bottom:.5px solid var(--cv-border)}.cv-experience__company{color:var(--cv-white);text-align:left;font-family:var(--cv-font-medium);font-size:13px;line-height:18px;font-weight:600;margin:0}.cv-experience__details{padding:8px 0 8px 8px;display:flex;flex-direction:column;gap:4px}.cv-experience__detail{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-regular);font-size:12px;line-height:17px;font-weight:400;margin:0}.cv-experience__company-group{display:flex;flex-direction:column;gap:14px}.cv-experience__position{color:var(--cv-primary);text-align:left;font-family:var(--cv-font-regular);font-size:11px;line-height:16px;font-weight:400;margin:0}.cv-experience__location{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-regular);font-size:10px;line-height:14px;font-weight:400;margin:0;opacity:.8}.cv-experience__projects{display:flex;flex-direction:column;gap:20px;padding-left:48px;padding-top:10px;position:relative}.cv-experience__project{background:transparent;border:none;padding:8px 0 8px 16px;display:flex;flex-direction:column;gap:8px;position:relative}.cv-experience__project:before{content:"";position:absolute;left:-17px;top:6px;width:22px;height:10px;border-bottom:1.5px dashed var(--cv-primary);border-left:1.5px dashed var(--cv-primary);border-bottom-left-radius:8px;background:transparent;opacity:.6;z-index:-1}.cv-experience__project:after{content:"";position:absolute;left:3px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--cv-primary);z-index:1}.cv-experience__project-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.cv-experience__project-name{color:var(--cv-white);text-align:left;font-family:var(--cv-font-medium);font-size:13px;line-height:18px;font-weight:600;margin:0}.cv-experience__project-dates{color:var(--cv-gray);text-align:right;font-family:var(--cv-font-regular);font-size:10px;line-height:14px;font-weight:400;margin:0;opacity:.8;white-space:nowrap;flex-shrink:0}.cv-experience__project--card{border:.5px solid var(--cv-border);padding:12px 14px}.cv-experience__project--card .cv-experience__project-header{flex-direction:column;gap:2px;padding-bottom:8px;border-bottom:.5px solid var(--cv-border);margin-bottom:2px}.cv-experience__project--card .cv-experience__project-dates{text-align:left}.cv-experience__technologies{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.cv-experience__tech-tag{display:inline-block;padding:3px 8px;background:var(--cv-background);border:.5px solid var(--cv-border);border-radius:3px;color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:9px;line-height:13px;font-weight:400;white-space:nowrap}.cv-sidebar{display:flex;flex-direction:column;gap:16px;width:100%;max-width:175px}.cv-sidebar-section{background:var(--cv-background);border-style:solid;border-color:var(--cv-border);border-width:.5px;display:flex;flex-direction:column;gap:0px}.cv-sidebar-section__header{padding:6px 7px;display:flex;flex-direction:row;gap:10px;align-items:flex-start;border-bottom:.5px solid var(--cv-border)}.cv-sidebar-section__title{color:var(--cv-white);text-align:left;font-family:var(--cv-font-medium);font-size:12px;font-weight:500;margin:0}.cv-sidebar-section__content{padding:8px;display:flex;flex-direction:column;gap:7px}.cv-language-item{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between}.cv-language-item__name,.cv-language-item__level{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-regular);font-size:12px;font-weight:400}.cv-skills-row{display:flex;flex-direction:row;gap:8px;align-items:flex-start;flex-wrap:wrap}.cv-skill-tag{color:var(--cv-gray);text-align:left;font-family:var(--cv-font-regular);font-size:12px;line-height:17px;font-weight:400}.cv-sidebar-section__prompt{color:var(--cv-primary)}.cv-inline-list{margin:0;color:var(--cv-gray);font-family:var(--cv-font-regular);font-size:12px;line-height:20px}.cv-inline-list__item{white-space:nowrap}.resume-container{width:100%;min-height:100vh;background:var(--cv-background);display:flex;flex-direction:column;align-items:center}.resume-actions{display:flex;justify-content:flex-end;width:100%;max-width:800px;padding:12px 20px 0}.cv-print-btn{font-family:var(--cv-font);font-size:var(--cv-text-xs);color:var(--cv-primary);background:transparent;border:1px solid var(--cv-primary);padding:6px 16px;cursor:var(--cursor-pointer);transition:background .2s,color .2s}.cv-print-btn:hover{background:var(--cv-primary);color:#fff}.resume-view-toggle{display:flex;gap:12px;justify-content:center;padding:30px 20px;margin:0 auto;max-width:500px;width:100%}.view-toggle-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#c778dd1a;border:1px solid rgba(199,120,221,.3);border-radius:8px;color:var(--cv-gray);font-family:var(--cv-font-medium);font-size:14px;font-weight:500;cursor:var(--cursor-pointer);transition:all .3s ease}.view-toggle-btn:hover{background:#c778dd26;border-color:#c778dd80;transform:translateY(-2px)}.view-toggle-btn.active{background:var(--cv-primary);border-color:var(--cv-primary);color:#fff;box-shadow:0 4px 12px #c778dd4d}.view-toggle-btn svg{font-size:16px}@media print{.resume-actions,.resume-view-toggle{display:none!important}}@media(max-width:480px){.resume-view-toggle{flex-direction:column;gap:8px;padding:16px}.view-toggle-btn{width:100%;justify-content:center}}.cv-dots{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;position:absolute;z-index:-1}.cv-dots--top-left{width:72px;height:38px;right:15%;top:180px}.cv-dots--middle-right{width:67px;height:67px;right:8%;top:520px}.cv-dots--bottom-right{width:101px;height:101px;right:18%;top:820px}.cv-dots__row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;align-self:stretch;flex-shrink:0}.cv-dots__dot{background:var(--cv-gray);border-radius:50%;flex-shrink:0;width:4px;height:4px}.cv-grid{display:grid;grid-template-columns:1fr 175px;gap:40px;position:relative;z-index:1;align-items:start}.cv-main-column{display:flex;flex-direction:column;gap:20px;min-width:0}@media(max-width:1023px){.cv{padding:30px 20px}.cv-grid{grid-template-columns:1fr;gap:32px}.cv-summary,.cv-experience,.cv-sidebar{max-width:100%}.cv-header{flex-direction:column;gap:20px;align-items:flex-start}.cv-header__info{align-items:flex-start}.cv-header__name-section{justify-content:flex-start}.cv-header__contact{align-items:flex-start;width:100%}.cv-header__contact-row{justify-content:flex-start;flex-wrap:wrap}.cv-dots{display:none}}@media(max-width:767px){.cv{padding:12px 16px}.cv-header__name-section{flex-direction:column;gap:12px;justify-content:flex-start}.cv-header__name{font-size:26px}.cv-header__title{font-size:14px}.cv-header__contact-row{flex-direction:column;gap:10px;width:100%}.cv-contact-badge{width:100%;justify-content:flex-start}.cv-experience__item{flex-direction:column;gap:12px}.cv-experience:before{left:8px;top:23px}.cv-experience__dates{margin-left:24px;position:relative}.cv-experience__dates:after{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:16px;height:1px;background:var(--cv-border);z-index:2}.cv-experience__content{margin-left:24px}.cv-experience__projects{padding-left:36px}.cv-experience__project{padding:8px 0 8px 14px}.cv-experience__project-header{flex-direction:column;gap:2px}.cv-experience__project-dates{text-align:left}.cv-experience__project:before{left:-28px;width:32px}.cv-experience__project:after{left:2px}.cv-experience__tech-tag{font-size:9px;padding:4px 8px}.cv-sidebar{max-width:100%}.cv-skills-row{gap:8px;justify-content:center}.cv-grid{gap:28px}}@media print{.cv{background:#fff;color:#000;min-height:auto;padding:0}.cv-dots,.resume-view-toggle,.resume-actions-bottom{display:none!important}.cv-header__name,.cv-summary__title,.cv-experience__company,.cv-experience__project-name,.cv-sidebar-section__title{color:#000}.cv-summary__text,.cv-experience__date,.cv-experience__detail,.cv-experience__position,.cv-experience__location,.cv-experience__project-dates,.cv-contact-badge__text,.cv-language-item__name,.cv-language-item__level,.cv-skill-tag,.cv-inline-list{color:#333}.cv-header__title{color:#666}.cv-summary,.cv-experience__dates,.cv-experience__content,.cv-experience__project,.cv-sidebar-section,.cv-contact-badge{border-color:#ccc;background:#fff}.cv-experience__project:before{border-color:#999;opacity:1}.cv-experience__project:after{background:#999}.cv-experience__tech-tag,.cv .tag{background:#f0f0f0;border-color:#ccc;color:#666}.cv-experience,.cv-experience__company-group,.cv-sidebar{page-break-inside:avoid}}.contact__direct a{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px}.contact__direct a:hover{color:var(--color-white)}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-cyrillic-ext-wght-normal-DhYMMuQd.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-cyrillic-wght-normal-Y3u8pIsh.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-greek-ext-wght-normal-wWus70Ix.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-greek-wght-normal-B2SviObF.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-symbols2-wght-normal-CE6EOz_n.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-latin-ext-wght-normal-Dvfvaomy.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fonts/fira-code-latin-wght-normal-CHoedHDv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}html{font-size:62.5%}body{margin:0;padding:0;font-family:var(--font-primary);font-size:var(--text-md);font-weight:var(--font-regular);color:var(--color-text-primary);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;min-height:100dvh;line-height:var(--leading-normal)}h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote{margin:0;padding:0}ul,ol{list-style:none}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}button{font:inherit;cursor:var(--cursor-pointer);border:none;background:none}input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}:focus-visible{outline:2px solid #0066cc;outline-offset:2px}:root{--cursor-default: auto;--cursor-pointer: pointer}@media(hover:hover)and (pointer:fine){:root{--cursor-default: url(/cursors/arrow.svg) 5 3, auto;--cursor-pointer: url(/cursors/pointer.svg) 5 3, pointer}html{cursor:var(--cursor-default)}a,[role=button],[role=tab],label[for],select,summary{cursor:var(--cursor-pointer)}input:not([type=checkbox],[type=radio],[type=range],[type=submit],[type=button]),textarea,[contenteditable=true]{cursor:text}}:root{--color-primary: #c778dd;--color-gray: #abb2bf;--color-background: #282c33;--color-surface: #1e2227;--color-white: #ffffff;--color-text-primary: var(--color-white);--color-text-secondary: var(--color-gray);--color-text-accent: var(--color-primary);--color-border: var(--color-gray);--color-border-primary: var(--color-primary);--color-primary-hover: rgba(199, 120, 221, .2);--color-gray-hover: rgba(171, 178, 191, .2);--color-primary-rgb: 199, 120, 221;--color-gray-rgb: 171, 178, 191;--color-error: #ef4444;--color-success: #22c55e;--color-warning: #f59e0b;--color-info: #3b82f6;--color-error-rgb: 239, 68, 68;--color-success-rgb: 34, 197, 94;--color-warning-rgb: 245, 158, 11;--color-info-rgb: 59, 130, 246}:root{--font-primary: "Fira Code Variable", "Fira Code", "JetBrains Mono", "Monaco", monospace;--text-xs: 10px;--text-sm: 12px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 24px;--text-2xl: 32px;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-0: 0;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 96px;--space-5xl: 128px;--container-max-width: 1024px;--border-width: 1px;--radius-none: 0;--radius-sm: 2px;--radius-md: 4px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--breakpoint-mobile: 767px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-modal: 40;--z-top: 50}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}#root{width:100%;min-height:100vh;min-height:100dvh}
