@import "https://googleapis.com";*{box-sizing:border-box;margin:0;padding:0}body{color:#111;background:#f6f7fb;font-family:Montserrat,sans-serif;line-height:1.6}#root{width:100%}.app-container{min-height:100vh;padding:50px;transition:all .5s}@media (width<=900px){#intro-section h1{font-size:3.5rem}#intro-section h2{font-size:1.1rem}#intro-section p{font-size:1rem;line-height:1.9}}@media (width<=600px){#intro-section{margin-top:50px}#intro-section h1{letter-spacing:-2px;font-size:2.8rem}nav{gap:12px}nav a{width:fit-content}#contacts-cv{gap:12px}}.product-theme{box-shadow:inset 0 0 120px #ffd90087,inset 0 0 220px #ffb7001f}.software-theme{box-shadow:inset 0 0 120px #3b83f68f,inset 0 0 220px #2563eb1f}.pdfss-root{z-index:1;justify-content:center;align-items:center;width:fit-content;max-width:100%;margin:auto;display:flex;position:relative}.pdfss-stage{background:#111;border-radius:14px;position:relative;overflow:hidden;box-shadow:0 8px 30px #00000059}.pdfss-page{display:none}.pdfss-page.active{display:block}.pdfss-nav{z-index:20;color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.pdfss-nav:hover:not(:disabled){background:#000c;transform:translateY(-50%)scale(1.08)}.pdfss-nav:disabled{opacity:.3;cursor:not-allowed}.pdfss-left{left:16px}.pdfss-right{right:16px}.pdfss-expand{z-index:25;color:#fff;cursor:pointer;background:#0009;border:none;border-radius:10px;width:42px;height:42px;font-size:1.2rem;transition:background .2s;position:absolute;top:14px;right:14px}.pdfss-expand:hover{background:#000000d9}.pdfss-counter{z-index:20;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;border-radius:999px;padding:8px 14px;font-size:.95rem;font-weight:500;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.pdfss-root.fullscreen{z-index:1001;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;inset:0}.pdfss-root.fullscreen .pdfss-stage{max-width:95vw;max-height:95vh}.react-pdf__Page canvas{border-radius:18px;max-width:100%;display:block;box-shadow:0 20px 45px #0000002e;height:auto!important}.pdfss-stage.clickable{cursor:zoom-in;transition:transform .25s,box-shadow .25s}.pdfss-stage.clickable:hover{transform:translateY(-4px);box-shadow:0 18px 45px #00000040}.pdfss-root.fullscreen .pdfss-stage{cursor:default}.pdfss-root.fullscreen .react-pdf__Page{transform-origin:50%}.pdfss-root{position:relative}.pdfss-stage{z-index:2;position:relative}.pdfss-exit{z-index:1;color:#fff;cursor:pointer;border:0;border-radius:4px;width:60px;height:60px;font-size:18px;line-height:36px;position:absolute;top:3px;right:8px}.pdfss-backdrop{z-index:1;background:#0009;position:fixed;inset:0}#loreal-container{flex-direction:column;gap:50px;display:flex}.skills-container{flex-wrap:wrap;align-items:center;gap:16px;margin:0;padding:0;list-style:none;display:flex}.skills-container h3{margin-right:10px;font-size:1.3rem}.skills-box{background:#f3f4f6;border-radius:999px;padding:12px 18px;font-size:.95rem;font-weight:600;transition:transform .2s,background .2s,color .2s}.expandable-content{opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;transform:translateY(-6px)}.expandable-content.open{opacity:1;pointer-events:auto;transform:translateY(0)}.section-content{will-change:max-height}.expandable-content{will-change:opacity, transform}.content-teaser{color:#333;margin-top:8px;font-size:1rem;line-height:1.9}.expandable-content{line-height:1.9}@media (width<=1150px){.section-content{grid-template-columns:1fr;grid-template-areas:"top""slideshow""text";gap:50px}.left-display-section{width:100%;position:static}.top-display-section h3{font-size:3rem}}@media (width<=700px){.top-display-section h3{letter-spacing:-2px;font-size:2.3rem}.top-display-section h4{font-size:1.05rem}.right-display-section p{font-size:.95rem;line-height:1.85}.skills-container{gap:12px}.skills-box{padding:10px 14px;font-size:.85rem}}#intro-section{flex-direction:column;align-items:center;max-width:1800px;margin:20px auto 30px;padding:0 8%;display:flex}#intro-section h1{letter-spacing:-3px;margin-bottom:18px;font-size:3rem;line-height:1}#intro-section h2{color:#666;margin-bottom:15px;font-size:1.3rem;font-weight:500}#intro-paragraph{color:#333;text-align:center;max-width:1200px;font-size:1.05rem;line-height:2}#github-link{color:#111827;cursor:pointer;border-radius:12px;align-items:center;padding:11px 15px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}#github-link span{transition:transform .3s;display:inline-block}#github-link span:nth-child(4),#github-link span:nth-child(6){margin-right:.35rem}#github-link:hover span{animation:.6s forwards wave}#github-link:hover span:first-child{animation-delay:0s}#github-link:hover span:nth-child(2){animation-delay:50ms}#github-link:hover span:nth-child(3){animation-delay:.1s}#github-link:hover span:nth-child(4){animation-delay:.15s}#github-link:hover span:nth-child(5){animation-delay:.2s}#github-link:hover span:nth-child(6){animation-delay:.25s}#github-link:hover span:nth-child(7){animation-delay:.3s}#github-link:hover span:nth-child(8){animation-delay:.35s}#github-link:hover span:nth-child(9){animation-delay:.4s}#github-link:hover span:nth-child(10){animation-delay:.45s}#github-link:hover span:nth-child(11){animation-delay:.5s}#github-link:hover span:nth-child(12){animation-delay:.55s}@keyframes wave{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}#github-logo{width:18px;height:18px;margin-left:8px;transition:transform .3s;animation-delay:.3s}#github-link:hover #github-logo{animation:.6s .3s forwards wave}#github-logo{object-fit:contain;width:20px;height:20px}#profile-pic{object-fit:cover;border:2px solid #ddd;border-radius:50%;width:180px;height:180px;margin-bottom:20px;box-shadow:0 2px 8px #00000026}.email-button{cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;padding:11px 15px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.email-button:hover{transform:translateY(-3px)scale(1.05)}.email-wrapper{align-items:center;display:flex;position:relative}#copied-message{white-space:nowrap;margin-right:8px;font-size:.8rem;font-weight:500;animation:.4s forwards expandLeft;position:absolute;right:100%}@keyframes expandLeft{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}.pulse-hint{animation:5s ease-in-out infinite bounce}@keyframes bounce{0%,84%{opacity:1;transform:translateY(0)}88%{opacity:.8;transform:translateY(-4px)}92%{opacity:1;transform:translateY(0)}96%{transform:translateY(-2px)}to{transform:translateY(0)}}#contacts-cv{flex-wrap:wrap;justify-content:center;align-items:center;gap:15px;padding:0 8%;display:flex;position:relative}nav{flex-flow:column wrap;align-items:center;gap:18px;padding:0 8%;display:flex}nav div{gap:10px;display:flex}nav h2{align-items:center;margin:30px auto;font-size:2rem;display:flex}nav a{color:#111;background:#fff;border:1px solid #00000014;border-radius:999px;padding:12px 22px;font-weight:600;text-decoration:none;transition:all .25s;box-shadow:0 4px 12px #0000000d}nav a:hover{color:#fff;background:#111;transform:translateY(-2px)}.project-type-link{color:#111827;background:#f3f4f6;border-radius:12px;padding:12px 20px;font-weight:600;text-decoration:none;transition:all .3s}.project-type-link:hover{color:#fff;background:#111827;transform:translateY(-2px)}.section-container{background:#fff;border-radius:28px;width:90%;max-width:1400px;min-height:700px;margin:60px auto;padding:80px 3%;transition:max-height .45s;overflow:hidden;box-shadow:0 10px 30px #00000014,0 2px 8px #0000000a}.section-content.collapsed{max-height:520px;overflow:hidden}.section-content.expanded{max-height:2000px}.left-column{flex-direction:column;gap:16px;padding-right:10px;display:flex}.left-column h3{color:#111;letter-spacing:-1px;margin:0;font-size:2.2rem;line-height:1.1}.left-column h4{color:#666;margin:0;font-size:1.1rem;font-weight:500}.left-column h5{color:#333;flex-direction:column;gap:10px;font-size:.95rem;font-weight:500;line-height:1.6;display:flex}.left-column h5 a{color:#111;border-bottom:2px solid #111;width:fit-content;text-decoration:none;transition:opacity .2s}.left-column h5 a:hover{opacity:.6}#see-more-button{--pad-y:10px;--pad-x:14px;padding:var(--pad-y) var(--pad-x);letter-spacing:.2px;cursor:pointer;background:0 0;border:none;outline:none;font:600 14px/1.1 system-ui;transition:transform .18s cubic-bezier(.2,.8,.2,1),border-color .18s,color .18s,background-color .18s,box-shadow .18s;position:relative}.right-column{flex-direction:column;align-items:center;gap:24px;display:flex;position:sticky;top:40px}.right-column button{cursor:pointer;background:#111;border:none;border-radius:16px;padding:14px 22px;transition:all .2s}.right-column button:hover{background:#222;transform:translateY(-2px)}.right-column button a{color:#fff;font-weight:600;text-decoration:none}.skills-container{flex-wrap:wrap;gap:16px;margin:0;padding:0;list-style:none;display:flex}.skills-container h3{margin:0 12px 0 0;font-size:1.5rem}.skills-box{color:#111;background:#d2c1f1;border-radius:999px;padding:12px 18px;font-size:.95rem;font-weight:600;transition:all .2s}.skills-box:hover{color:#fff;background:#111;transform:translateY(-2px)}.section-content{grid-template-columns:1fr 1fr;align-items:start;gap:70px;display:grid}@media (width<=1100px){.section-content{flex-direction:column;gap:50px}.left-display-section,.right-display-section{width:100%}.right-display-section h3{font-size:2.4rem}}@media (width<=700px){.section-container{padding:60px 24px}.right-display-section h3{font-size:2rem}.right-display-section p{font-size:.95rem;line-height:1.8}.skills-container{gap:12px}.skills-box{padding:10px 14px;font-size:.85rem}}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;height:100vh;display:flex}.loading-spinner{border:3px solid #e5e7eb;border-top-color:#10b981;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#6b7280;letter-spacing:.05em;font-size:1rem}.loading-text:after{content:"";animation:1.5s steps(4,end) infinite dots}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:transparent;--input-disabled-border-color:transparent;--input-hover-border-color:black;--link-outline:none}@media screen and (forced-colors:active){:root{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selecteditem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert();backdrop-filter:invert()}}.annotationLayer{pointer-events:none;transform-origin:0 0;z-index:3;position:absolute;top:0;left:0}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg)translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg)translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg)translateY(-100%)}.annotationLayer canvas{width:100%;height:100%;position:absolute}.annotationLayer section{text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0;margin:0;position:absolute}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{width:100%;height:100%;font-size:1em;position:absolute;top:0;left:0}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;vertical-align:top;width:100%;height:100%;margin:0}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{border:2px solid var(--input-disabled-border-color);cursor:not-allowed;background:0 0}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);background:0 0;border-radius:2px}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:#0000;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);border-radius:2px}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{content:"";background-color:canvastext;display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{width:1px;height:80%;left:45%}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;width:50%;height:50%;top:20%;left:30%}.annotationLayer .textWidgetAnnotation input.comb{padding-left:2px;padding-right:0;font-family:monospace}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{width:100%;height:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none;position:absolute}.annotationLayer .popup{max-width:calc(180px * var(--total-scale-factor));box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto;background-color:#ff9;position:absolute}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{margin-left:calc(5px * var(--total-scale-factor));display:inline-block}.annotationLayer .popupContent{margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor));border-top:1px solid #333}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .annotationTextContent{opacity:0;color:#0000;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer:1;--highlight-bg-color:#b400aa;--highlight-selected-bg-color:#006400}@media screen and (forced-colors:active){:root{--highlight-bg-color:Highlight;--highlight-selected-bg-color:ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg)translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg)translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg)translate(-100%)}.textLayer{text-align:initial;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2;line-height:1;position:absolute;inset:0;overflow:hidden}.textLayer :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;margin:0;position:absolute}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:0 0}.textLayer .endOfContent{z-index:-1;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{width:0;height:0;display:none;position:absolute;top:0;left:0}
