@import url(https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=DM+Serif+Display:ital,wght@0,400;1,400&display=swap);:root{--clr-bg:#111213;--clr-surface:#1f2022;--clr-border:#2c2d2e;--clr-text-primary:#f0e7d8;--clr-text-secondary:#cfc8ba;--clr-accent:#dccbb4;--clr-accent-hover:#e9dbc5;--clr-accent-subtle:#b8a892}body,html{background-color:var(--clr-bg);color:var(--clr-text-primary);font-family:DM Sans,sans-serif;margin:0;overflow:auto;padding:0;scroll-behavior:smooth}h1,h2,h3,h4,h5,h6{font-family:"DM Serif Display",serif;font-weight:400;letter-spacing:.5px}.navbar{background-color:var(--clr-bg);justify-content:space-between;opacity:.7;padding:1rem 2rem;position:fixed;top:0;width:100%;z-index:1000}.nav-links,.navbar{align-items:center;display:flex}.nav-links{justify-content:flex-end;transition:transform .3s ease-in-out}.hamburger-menu{background:none;border:none;cursor:pointer;display:none;font-size:1.5rem}.hamburger-menu,.nav-link{color:var(--clr-text-primary)}.nav-link{font-size:1rem;font-weight:500;margin:0 1rem;text-decoration:none}.nav-link.active{font-weight:700}.nav-link.active,.nav-link:hover{color:var(--clr-accent)}@media (max-width:768px){.hamburger-menu{display:block;margin:50%}.nav-links{align-items:flex-start;background-color:var(--clr-bg);box-shadow:0 4px 6px #0000001a;display:none;flex-direction:column;left:0;opacity:0;padding:1rem;position:absolute;right:0;top:100%;transform:translateY(-100%);transition:transform .3s ease,opacity .3s ease;width:100%;z-index:1000}.nav-links.open{display:flex;opacity:1;transform:translateY(0)}.nav-link{margin:.5rem 0;padding:.5rem;text-align:left;transition:background-color .3s ease;width:100%}.nav-link:hover{background-color:var(--clr-accent)}}.language-buttons{display:flex;gap:10px;position:absolute;right:10vh;top:2vh}.language-buttons button{background-color:var(--clr-text-primary);border:none;border-radius:5px;color:var(--clr-bg);cursor:pointer;font-size:14px;font-weight:700;padding:5px 10px}.language-buttons button:hover{background-color:var(--clr-accent);color:var(--clr-text-primary)}.fade-overlay{animation:fadeOutIn 2s ease-in-out;background-color:var(--clr-border);height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:9999}@keyframes fadeOutIn{0%{opacity:0}50%{opacity:1}to{opacity:0}}.hero-container{color:var(--clr-text-primary);font-family:Kanit,sans-serif;margin-left:-70vh;margin-top:-20vh;text-align:left;width:600px}@media (max-width:768px){.hero-container{margin:0 auto;text-align:center;width:90%}.static-text.large{color:var(--clr-accent);font-size:1.5rem;margin-bottom:1rem;max-width:35%}.animated-text.small{font-size:2rem;font-weight:400}.passionate-text.small{color:var(--clr-text-primary);font-size:1.8rem;font-weight:300;margin:.5rem 0}.dynamic-text.small{color:var(--clr-accent-subtle);font-size:1.8rem}.subtext.small{font-size:1rem;line-height:1.5;margin:1rem auto;max-width:85%;padding-bottom:5%;padding-top:10%;text-align:justify}}#tsparticles{height:100%;left:0;position:fixed;top:0;width:100%;z-index:-1}.static-text{color:var(--clr-accent);font-size:2rem;margin-bottom:1rem}.animated-text{display:inline;font-size:3.5rem;font-weight:300;white-space:nowrap}.dynamic-text,.dynamic-text.small{color:var(--clr-accent-subtle);display:inline-block}.blinking-cursor{animation:blink .8s steps(2,start) infinite;background-color:currentColor;display:inline-block;height:1em;margin-top:0;width:1.5px}.hidden{display:none}.visible{animation:blink 1s step-start infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.subtext{animation:fade-in-right .8s ease-out .5s forwards;color:var(--clr-text-secondary);font-size:1.2rem;line-height:1.5;margin-left:auto;margin-right:0;margin-top:1rem;max-width:600px;opacity:0;text-align:justify;transform:translateX(20px)}@keyframes fade-in-right{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.landing-page{align-items:center;gap:2rem}.landing-page,.social-media{display:flex;flex-direction:column}.social-media{left:2rem;position:absolute;top:45%;transform:translateY(-50%)}.social-icon{animation:fall .8s ease-out forwards;font-size:2rem;margin:.5rem 0;opacity:0;text-decoration:none;transform:translateY(-100px);transition:color .3s ease,transform .3s ease}.social-icon:first-child{animation-delay:.4s}.social-icon:nth-child(2){animation-delay:.6s}.social-icon:nth-child(3),.social-icon:nth-child(4){animation-delay:.8s}@keyframes fall{0%{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:translateY(0)}}.social-icon:hover{color:var(--clr-accent);transform:scale(1.2)}@media (max-width:768px){.social-media{flex-direction:row;gap:1rem;justify-content:center;margin-top:1rem;position:static}.social-icon{font-size:1.5rem;margin:0}}@media (max-width:480px){.social-icon{font-size:1.2rem}.social-media{gap:.5rem}}.about-me-container{grid-gap:32px;display:grid;gap:32px;grid-template-columns:7fr 5fr;margin:32px auto 0;max-width:1200px;min-height:70vh;padding-left:32px;padding-right:32px;position:relative}@media (min-width:1440px){.about-me-container{margin-left:auto;margin-right:auto;max-width:1200px;padding-left:80px;padding-right:80px}}@media (max-width:1440px){.about-me-container{grid-template-columns:6fr 6fr;max-width:1100px;padding-left:24px;padding-right:24px}}@media (max-width:1200px){.about-me-container{gap:24px;grid-template-columns:1fr;max-width:800px;padding-left:16px;padding-right:16px}.about-me-container:after{display:none}}@media (max-width:900px){.about-me-container{gap:20px;grid-template-columns:1fr;max-width:98vw;padding-left:8px;padding-right:8px}.bio-container,.interests-container,.skill-card,.skills-container{padding:20px 12px}}@media (max-width:768px){.about-me-container{gap:16px;grid-template-columns:1fr;margin:0;max-width:100vw;padding-left:0;padding-right:0}.about-me-left,.about-me-right{gap:12px;padding:8px}.download-cv{margin-top:20px}.download-button{font-size:.9rem;padding:10px 20px}}@media (max-width:480px){.about-me-container{gap:12px;margin:0;max-width:100vw;padding-left:0;padding-right:0}.about-me-left,.about-me-right{padding:4px}.bio-container,.interests-container,.skill-card,.skills-container{padding:12px 4px}.download-button{font-size:.85rem;padding:8px 12px}}.bio-container,.interests-container,.skills-container{animation:fadeInUp .6s ease forwards;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:16px;box-shadow:0 4px 12px #00000059;color:var(--clr-text-primary);margin-bottom:0;overflow:hidden;padding:28px 24px;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.bio-container:before,.interests-container:before,.skills-container:before{background:linear-gradient(90deg,var(--clr-accent),var(--clr-accent-subtle));content:"";height:2px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.bio-container:hover,.interests-container:hover,.skills-container:hover{box-shadow:0 8px 24px #0006;transform:translateY(-2px)}.bio-container:hover:before,.interests-container:hover:before,.skills-container:hover:before{opacity:1}.bio-container:focus-within,.interests-container:focus-within,.skills-container:focus-within{outline:2px solid var(--clr-accent);outline-offset:2px}.about-title{font-size:2.2rem;font-weight:700;letter-spacing:1px;margin-bottom:.5em;text-align:center}.about-title,.interests-container h2,.skills-content h3{color:var(--clr-accent);font-family:"DM Serif Display",serif}.interests-container h2,.skills-content h3{font-size:1.25rem;font-weight:600;margin-bottom:12px}.skills-content{display:flex;flex-direction:column;gap:18px}.skill-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:16px;box-shadow:0 4px 12px #00000059;color:var(--clr-text-primary);margin-bottom:0;overflow:hidden;padding:20px 18px;position:relative}.interests-container ul,.skills-content ul{list-style:none;margin:0;padding-left:0}.interests-container li,.skills-content li{color:var(--clr-text-primary);font-size:1rem;line-height:1.5;margin-bottom:10px;padding-left:24px;position:relative}.interests-container li:before,.skills-content li:before{color:var(--clr-accent);content:"•";font-size:1.2em;left:0;position:absolute}.interests-container{color:var(--clr-text-primary)}.download-cv{margin-top:18px;text-align:center}.download-button{background:var(--clr-accent);border:none;border-radius:10px;box-shadow:none;color:var(--clr-bg);cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;letter-spacing:.2px;padding:12px 28px;text-decoration:none;transition:background .18s cubic-bezier(.4,0,.2,1),color .18s cubic-bezier(.4,0,.2,1)}.download-button:focus,.download-button:hover{background:var(--clr-accent-hover);color:var(--clr-bg);outline:none}.bio-container{animation-delay:.1s}.skills-container{animation-delay:.2s}.interests-container{animation-delay:.3s}.skill-card:first-child{animation-delay:.4s}.skill-card:nth-child(2){animation-delay:.5s}@media (prefers-contrast:high){.bio-container,.interests-container,.skill-card,.skills-container{border:2px solid var(--clr-text-primary)}}@media (prefers-reduced-motion:reduce){.bio-container,.interests-container,.skill-card,.skills-container{animation:none}.bio-container:hover,.download-button:hover,.interests-container:hover,.skill-card:hover,.skills-container:hover{transform:none}}.education-certifications-container{grid-gap:32px;display:grid;gap:32px;grid-template-columns:7fr 5fr;margin:0 10px;position:relative}.education-certifications-container:after{background:linear-gradient(to bottom,#0000,var(--clr-border),#0000);bottom:0;content:"";left:50%;opacity:.3;position:absolute;top:0;width:1px}.education-items{display:flex;flex-direction:column}.certifications-items,.education-items{background-color:var(--clr-surface);border-radius:12px;box-shadow:0 4px 8px #0000001a;gap:16px;padding:20px}.certifications-items{grid-gap:16px;display:grid;grid-template-columns:1fr}.certification-item,.education-item{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:16px;box-shadow:0 4px 12px #00000059;margin-bottom:0;overflow:hidden;padding:24px 20px;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.certification-item:before,.education-item:before{background:linear-gradient(90deg,var(--clr-accent),var(--clr-accent-subtle));content:"";height:2px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.certification-item:hover,.education-item:hover{box-shadow:0 8px 24px #0006;transform:translateY(-2px)}.certification-item:hover:before,.education-item:hover:before{opacity:1}.certification-item:focus-within,.education-item:focus-within{outline:2px solid var(--clr-accent);outline-offset:2px}.certification-header,.education-header{align-items:flex-start;display:flex;margin-bottom:12px}.certification-header h4,.education-header h3{color:var(--clr-text-primary);font-size:1.1rem;font-weight:600;line-height:1.3;margin:0 0 0 12px}.certification-header h4{font-size:1rem}.certification-logo,.institution-logo{border-radius:4px;flex-shrink:0;height:32px;margin-right:12px;object-fit:contain;width:32px}.certification-details,.education-details{margin-top:8px}.certification-details p,.education-details p{color:var(--clr-text-secondary);font-size:.9rem;line-height:1.4;margin:4px 0}.certification-details p:first-child,.education-details p:first-child{color:var(--clr-text-primary);font-size:.95rem;font-weight:500}.certification-details p:not(:first-child){color:var(--clr-text-secondary);font-size:.85rem}.credential-link{align-items:center;border-radius:4px;color:var(--clr-accent);display:inline-flex;font-size:.9rem;gap:4px;margin-top:8px;padding:4px 8px;text-decoration:none;transition:all .2s ease}.credential-link:hover{background-color:#dccbb426;color:var(--clr-accent-hover)}.credential-link:focus{outline:2px solid var(--clr-accent);outline-offset:2px}.progress-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.75rem;font-weight:500;gap:4px;margin-left:8px;padding:2px 8px}.progress-badge.in-progress{background-color:#fbbf24;color:#92400e}.progress-badge.completed{background-color:#10b981;color:#064e3b}.progress-badge.expected{background-color:#f59e0b;color:#92400e}.progress-badge.not-completed{background-color:var(--clr-border);color:var(--clr-text-primary)}.tooltip{cursor:help;position:relative}.tooltip:after{background-color:var(--clr-surface);border:1px solid var(--clr-border);border-radius:6px;bottom:100%;box-shadow:0 4px 12px #0000004d;color:var(--clr-text-primary);content:attr(data-tooltip);font-size:.8rem;left:50%;opacity:0;padding:8px 12px;position:absolute;transform:translateX(-50%);transition:all .2s ease;visibility:hidden;white-space:nowrap;z-index:1000}.tooltip:hover:after{opacity:1;visibility:visible}.view-cv-button-container{margin-top:30px;text-align:center}.view-cv-button{background-color:var(--clr-accent-subtle);border:none;border-radius:12px;box-shadow:0 4px 12px #00000059;color:var(--clr-bg);cursor:pointer;font-family:Kanit,sans-serif;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.view-cv-button:hover{background-color:var(--clr-accent-hover);box-shadow:0 6px 16px #0006;transform:translateY(-1px)}.view-cv-button:focus{outline:2px solid var(--clr-accent);outline-offset:2px}.cert-icon{color:var(--clr-accent);font-size:1em;margin-right:8px;vertical-align:middle}.certification-item,.education-item{animation:fadeInUp .6s ease forwards}.education-item:first-child{animation-delay:.1s}.education-item:nth-child(2){animation-delay:.2s}.education-item:nth-child(3){animation-delay:.3s}.certification-item:first-child{animation-delay:.4s}.certification-item:nth-child(2){animation-delay:.5s}.certification-item:nth-child(3){animation-delay:.6s}.certification-item:nth-child(4){animation-delay:.7s}.certification-item:nth-child(5){animation-delay:.8s}.certification-item:nth-child(6){animation-delay:.9s}@media (max-width:1440px){.education-certifications-container{grid-template-columns:6fr 6fr}}@media (max-width:1200px){.education-certifications-container{gap:24px;grid-template-columns:1fr}.education-certifications-container:after{display:none}}@media (max-width:900px){.education-certifications-container{gap:20px;grid-template-columns:1fr}.certification-item,.education-item{padding:20px 16px}}@media (max-width:768px){.education-certifications-container{gap:16px;grid-template-columns:1fr;margin:0 5px}.certifications-items,.education-items{gap:12px;padding:16px}.certifications-items{grid-template-columns:1fr}.view-cv-button-container{margin-top:20px}.view-cv-button{font-size:.9rem;padding:10px 20px}}@media (max-width:480px){.education-certifications-container{gap:12px;margin:0}.certifications-items,.education-items{padding:12px}.certification-item,.education-item{padding:16px 12px}.view-cv-button{font-size:.85rem;padding:8px 16px}}@media (prefers-contrast:high){.certification-item,.education-item{border:2px solid var(--clr-text-primary)}.credential-link{text-decoration:underline}}@media (prefers-reduced-motion:reduce){.certification-item,.education-item{animation:none}.certification-item:hover,.education-item:hover,.view-cv-button:hover{transform:none}}.skills-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:8px 0 0;padding:0}.skills-list li{background-color:var(--clr-accent-subtle);border-radius:12px;color:var(--clr-bg);font-size:.75rem;font-weight:500;padding:2px 8px}.interests-container,.skills-container{border-radius:12px;margin-top:8px;padding:8px 12px}.vertical-timeline *{-webkit-box-sizing:border-box;box-sizing:border-box}.vertical-timeline{margin:0 auto;max-width:1170px;padding:2em 0;position:relative;width:95%}.vertical-timeline:after{clear:both;content:"";display:table}.vertical-timeline:before{background:var(--line-color);content:"";height:100%;left:18px;position:absolute;top:0;width:4px}.vertical-timeline.vertical-timeline--one-column-right:before{left:auto;right:18px}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{margin:2em 0;position:relative}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{clear:both;content:"";display:table}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{border-radius:50%;-webkit-box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;height:40px;left:0;position:absolute;top:0;width:40px}.vertical-timeline--one-column-right .vertical-timeline-element-icon{left:auto;right:0}.vertical-timeline-element-icon svg{display:block;height:24px;left:50%;margin-left:-12px;margin-top:-12px;position:relative;top:50%;width:24px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{height:60px;left:50%;margin-left:-30px;width:60px}}.vertical-timeline-element-icon{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0)}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s;visibility:visible}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{background:#fff;border-radius:.25em;-webkit-box-shadow:0 3px 0 #ddd;box-shadow:0 3px 0 #ddd;margin-left:60px;padding:1em;position:relative}.vertical-timeline--one-column-right .vertical-timeline-element-content{margin-left:0;margin-right:60px}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;-webkit-box-shadow:none;box-shadow:none}.vertical-timeline-element-content:after{clear:both;content:"";display:table}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{line-height:1.6;margin:1em 0 0}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;opacity:.7;padding:.8em 0}.vertical-timeline-element-content-arrow{border:7px solid #0000;border-right-color:#fff;content:"";height:0;position:absolute;right:100%;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content-arrow{border:7px solid #0000;border-left-color:#fff;content:"";height:0;left:100%;position:absolute;right:auto;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content:before{border-left:7px solid #fff;border-right:initial;left:100%}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow,.vertical-timeline-element--no-children .vertical-timeline-element-content:before{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{left:100%;top:24px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{font-size:16px;font-size:1rem;left:124%;position:absolute;top:6px;width:100%}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:auto;right:100%;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--one-column-right .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--one-column-right .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:100%;right:auto;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s;visibility:visible}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s;visibility:visible}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.vertical-timeline:before{background:var(--clr-accent-subtle)}.vertical-timeline-element-content{background:var(--clr-bg);box-shadow:0 4px 12px #00000059;color:var(--clr-text-primary)}.vertical-timeline-element-content:before{border-right:7px solid var(--clr-bg)}:root{--gap-lg:2rem;--gap-md:1.25rem;--gap-sm:.75rem}.projects-container{grid-gap:2rem;grid-gap:var(--gap-lg);display:grid;gap:2rem;gap:var(--gap-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-inline:auto;max-width:1200px;padding-inline:2rem;padding-inline:var(--gap-lg)}@media (min-width:1440px){.projects-container{max-width:1200px;padding-left:80px;padding-right:80px}}@media (max-width:1440px){.projects-container{max-width:1100px;padding-left:32px;padding-right:32px}}@media (max-width:1200px){.projects-container{max-width:800px;padding-left:16px;padding-right:16px}}@media (max-width:900px){.projects-container{gap:1.25rem;gap:var(--gap-md);max-width:98vw;padding-left:8px;padding-right:8px}}@media (max-width:600px){.projects-container{gap:.75rem;gap:var(--gap-sm);max-width:100vw;padding-left:0;padding-right:0}.projects-title{font-size:1.75rem;padding-left:0;text-align:center}}.projects-title{font-size:2rem;font-weight:700;margin:0 0 1.25rem;margin:0 0 var(--gap-md);padding-left:.25rem}.project-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:1rem;box-shadow:0 4px 12px #00000040;display:flex;flex-direction:column;height:100%;justify-content:space-between;padding:1.5rem 1.25rem;position:relative;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.project-card:focus-within,.project-card:hover{border-color:var(--clr-accent);box-shadow:0 6px 16px #00000059;transform:translateY(-6px)}.project-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem;margin-bottom:var(--gap-sm)}.project-title{color:var(--clr-accent);font-size:1.25rem;font-weight:700;line-height:1.2}.project-year{background:var(--clr-accent-subtle);border-radius:.5rem;color:var(--clr-bg);font-size:.9rem;font-weight:600;padding:.15rem .75rem}.project-summary{color:var(--clr-text-secondary);flex:1 0 auto;font-size:1rem;margin-block:.5rem 1rem}.tech-badges{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 1rem;padding:0}.tech-badge{background:var(--clr-accent-subtle);border-radius:.375rem;color:var(--clr-bg);font-size:.85rem;font-weight:500;padding:.25rem .75rem;transition:background .2s ease}.tech-badge:hover{background:var(--clr-accent)}.github-link{--size:2.25rem;align-items:center;background:var(--bg-uiux-1);border-radius:50%;color:var(--text-uiux-5);display:inline-flex;font-size:1.4rem;height:var(--size);justify-content:center;margin-top:auto;transition:background-color .25s ease,transform .25s ease;width:var(--size)}.github-link:focus-visible,.github-link:hover{background:var(--clr-accent);color:var(--clr-bg);outline:none;transform:scale(1.08)}@media (max-width:600px){.projects-title{font-size:1.75rem;text-align:center}}@font-face{fallback:fallback;font-family:revicons;src:url(/static/media/revicons.e8746a624ed098489406.woff) format("woff"),url(/static/media/revicons.57fd05d4ae650374c8de.ttf) format("ttf"),url(/static/media/revicons.a77de540a38981833f9e.eot) format("ttf")}.react-multi-carousel-list{align-items:center;display:flex;overflow:hidden;position:relative}.react-multi-carousel-track{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:row;list-style:none;margin:0;padding:0;position:relative;transform-style:preserve-3d;will-change:transform,transition}.react-multiple-carousel__arrow{background:#00000080;border:0;border-radius:35px;cursor:pointer;min-height:43px;min-width:43px;opacity:1;outline:0;position:absolute;transition:all .5s;z-index:1000}.react-multiple-carousel__arrow:hover{background:#000c}.react-multiple-carousel__arrow:before{color:#fff;display:block;font-family:revicons;font-size:20px;position:relative;text-align:center;z-index:2}.react-multiple-carousel__arrow:disabled{background:#00000080;cursor:default}.react-multiple-carousel__arrow--left{left:calc(4% + 1px)}.react-multiple-carousel__arrow--left:before{content:"\e824"}.react-multiple-carousel__arrow--right{right:calc(4% + 1px)}.react-multiple-carousel__arrow--right:before{content:"\e825"}.react-multi-carousel-dot-list{bottom:0;display:flex;justify-content:center;left:0;list-style:none;margin:0;padding:0;position:absolute;right:0;text-align:center}.react-multi-carousel-dot button{border:2px solid grey;border-radius:50%;box-shadow:none;cursor:pointer;display:inline-block;height:12px;margin:0 6px 0 0;opacity:1;outline:0;padding:0;transition:background .5s;width:12px}.react-multi-carousel-dot button:hover:active,.react-multi-carousel-dot--active button{background:#080808}.react-multi-carousel-item{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.react-multi-carousel-item{flex-shrink:0!important}.react-multi-carousel-track{overflow:visible!important}}[dir=rtl].react-multi-carousel-list{direction:rtl}.rtl.react-multiple-carousel__arrow--right{left:calc(4% + 1px);right:auto}.rtl.react-multiple-carousel__arrow--right:before{content:"\e824"}.rtl.react-multiple-carousel__arrow--left{left:auto;right:calc(4% + 1px)}.rtl.react-multiple-carousel__arrow--left:before{content:"\e825"}:root{--footer-bg:var(--clr-surface);--footer-surface:#1d1d1d;--footer-accent:var(--clr-accent);--footer-text:var(--clr-text-primary);--footer-text-dim:var(--clr-text-secondary)}footer{background:var(--clr-surface);background:var(--footer-bg);-webkit-clip-path:ellipse(125% 100% at 50% 0);clip-path:ellipse(125% 100% at 50% 0);color:var(--clr-text-primary);color:var(--footer-text)}.footer-bottom,.footer-top{margin:0 auto;max-width:1200px;padding-left:32px;padding-right:32px}@media (min-width:1440px){.footer-bottom,.footer-top{max-width:1200px;padding-left:80px;padding-right:80px}}@media (max-width:1440px){.footer-bottom,.footer-top{max-width:1100px;padding-left:32px;padding-right:32px}}@media (max-width:1200px){.footer-bottom,.footer-top{max-width:800px;padding-left:16px;padding-right:16px}}@media (max-width:900px){.footer-bottom,.footer-top{max-width:98vw;padding-left:8px;padding-right:8px}.footer-top{grid-template-columns:1fr;row-gap:3rem;text-align:center}.social-links{justify-content:center}.motto{margin-top:2rem}}@media (max-width:480px){.footer-bottom,.footer-top{max-width:100vw;padding-left:0;padding-right:0}.footer-top{padding:3rem 1rem}.contact h3{font-size:1.15rem}.motto{font-size:.95rem}}.testimonial{align-items:center;animation:fadeInUp .7s cubic-bezier(.4,2,.6,1);background:var(--clr-bg);border-radius:18px;box-shadow:0 4px 24px #0000001f;display:flex;gap:1.25rem;max-width:420px;padding:28px 24px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}.testimonial-photo{border:3px solid var(--footer-accent);border-radius:50%;flex-shrink:0;height:80px;object-fit:cover;width:80px}.testimonial-comment{color:var(--clr-text-secondary);color:var(--footer-text-dim);font-style:italic;margin-bottom:.85rem}.testimonial-name{font-weight:600}.testimonial-name,.testimonial-position{color:var(--clr-accent);color:var(--footer-accent)}.testimonial-position{font-size:.95rem;opacity:.75}.contact h3{color:var(--clr-accent);color:var(--footer-accent);font-size:1.35rem;margin-bottom:1.25rem}.social-links{display:flex;flex-wrap:wrap;gap:1.2rem;list-style:none;margin-bottom:1.8rem;padding-left:0}.social-links li{display:contents}.social-icon{--size:48px;background:var(--clr-bg);border:2px solid #0000;border-radius:50%;box-shadow:0 2px 8px #0000001f;color:var(--clr-text-primary);color:var(--footer-text);display:grid;font-size:1.55rem;height:var(--size);place-items:center;transition:background .3s,color .3s,transform .18s,border-color .3s;width:var(--size)}.social-icon:focus-visible,.social-icon:hover{background:#1d1d1d;background:var(--footer-surface);border-color:var(--footer-accent);color:var(--clr-accent);color:var(--footer-accent);outline:none;transform:scale(1.12)}.motto{color:var(--clr-accent);color:var(--footer-accent);font-size:1.05rem;font-style:italic;font-weight:500;grid-column:1/-1;margin-top:1.5rem;text-align:center}.back-to-top{background:#000;border:none;border-radius:50%;bottom:1.5rem;color:var(--clr-text-primary);color:var(--footer-text);cursor:pointer;font-size:1.1rem;height:42px;position:absolute;right:1.5rem;transition:background .3s,transform .3s;width:42px}.back-to-top:hover{background:var(--clr-accent);background:var(--footer-accent);transform:translateY(-3px)}.footer-bottom{border-top:1.5px solid var(--clr-border);color:var(--clr-text-secondary);color:var(--footer-text-dim);font-size:.85rem;padding:1.25rem 1rem;text-align:center}.testimonial-carousel-wrapper{box-sizing:border-box;max-width:100%;overflow:hidden}.carousel-container,.carousel-item{max-width:100%!important}.snap-section{align-items:center;display:flex;height:auto;justify-content:center;min-height:110vh;opacity:0;overflow:hidden;scroll-snap-align:none;scroll-snap-type:none;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.snap-section-timeline,.snap-section.experience-section{height:auto;overflow:visible}.snap-section-timeline{display:block;min-height:110vh;scroll-snap-align:none;scroll-snap-type:none;transition:opacity .8s ease,transform .8s ease}@media (max-width:1024px){.snap-section{height:auto;min-height:100vh;padding:1rem}.snap-section.experience-section{padding:1rem}.snap-section-timeline{height:auto;min-height:100vh;padding:1rem}}@media (max-width:768px){.snap-section{height:auto;min-height:90vh;padding:.5rem}.snap-section.experience-section{height:auto}.snap-section-timeline{height:auto;min-height:90vh;padding:.5rem}}@media (max-width:480px){.snap-section{height:auto;min-height:80vh;padding:.5rem}.snap-section.experience-section{height:auto;min-height:0;padding:0}.snap-section-timeline{height:auto;min-height:80vh;padding:.5rem}}.fade-in{opacity:1;transform:translateY(0)}.fade-out{opacity:0;transform:translateY(20px)}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scroll-to-top{background-color:var(--clr-bg);border:none;border-radius:50%;bottom:2rem;color:var(--clr-accent);cursor:pointer;font-size:1.5rem;height:3rem;opacity:.8;position:fixed;right:2rem;transition:opacity .3s ease,transform .3s ease;width:3rem;z-index:1000}.scroll-to-top:hover{opacity:1;transform:scale(1.1)}.snap-container{-ms-overflow-style:none;scroll-behavior:smooth;scroll-snap-type:y mandatory;scrollbar-width:none}.snap-container::-webkit-scrollbar{display:none}.floating-window{background-color:initial;border-radius:12px;position:fixed;right:0;top:80px;transition:transform .3s ease-in-out;width:320px;z-index:1000}.floating-window.open{transform:translateX(-20px)}.floating-window.closed{transform:translateX(0)}.close-button{background:none;border:none;color:var(--clr-text-primary);cursor:pointer;font-size:16px;padding:5px;position:absolute;right:0}.close-button:hover{color:var(--clr-accent)}
/*# sourceMappingURL=main.8245572e.css.map*/