@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Finlandica:ital,wght@0,400..700;1,400..700&family=Roboto+Slab:wght@100..900&display=swap";.theme-toggle{display:flex;align-items:center;padding:1rem}.switch-checkbox{display:none}.switch-label{position:relative;display:inline-block;cursor:pointer}.switch-background{position:relative;display:flex;align-items:center;justify-content:space-between;width:48px;height:24px;background-color:#fff;border:1px solid #ccc;border-radius:18px;padding:2px}.switch-label .icon-moon,.switch-label .icon-sun{display:inline-block;font-size:16px}.switch-toggle{position:absolute;top:3px;left:4px;width:24px;height:24px;background-color:#000;border-radius:50%;transition:transform .3s ease}.switch-toggle-checked{transform:translate(24px)}.switch-checkbox:checked+.switch-label .icon-moon{opacity:1}.switch-checkbox:checked+.switch-label .icon-sun{opacity:0}.hidden{display:none}.navbar-container{display:flex;position:sticky;-webkit-box-align:center;align-items:center;justify-content:space-between;z-index:1000;padding:.5rem 0;width:100%;box-shadow:var(--box-shadow-color)}.navbar-container img{width:3.5rem;padding-left:1rem}.navbar-right-content{display:flex;align-items:center}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;right:0;background-color:var(--primary-color);border-radius:20px;color:var(--primary-color);border:1px solid #ccc;box-shadow:var(--box-shadow-color);display:flex;flex-direction:column}.dropdown-menu button{cursor:pointer;text-align:center}.dropdown-menu button:hover{background-color:var(--background-color);color:var(--text-color)}.banner-container{position:relative;overflow:hidden}.big-heading{font-size:2.5rem}.banner-headline{margin-top:20rem}.banner-headline p{padding:2rem 0;font-size:1.25rem}.banner-headline h3{margin:0}.banner-headline .banner-description{width:30rem}.moon-image{position:absolute;top:-40rem;opacity:1;z-index:0;animation:spin 70s linear infinite;width:60rem;left:calc(50% - 30rem)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.moon-image{width:35rem;left:calc(50% - 17.5rem);top:-20rem}}@media (max-width: 480px){.banner-headline{margin-top:15rem}.banner-headline .banner-description{width:20rem}}.aboutme-content{display:flex;justify-content:space-evenly;align-items:center}.aboutme-content .aboutme-description{width:25rem}.aboutme-content .aboutme-description ul{padding-left:2rem;margin:0;width:100%;text-align:left}.aboutme-picture{position:relative;width:25rem;height:25rem}.aboutme-picture svg{width:100%;height:100%}@media (max-width: 768px){.aboutme-content{flex-direction:column-reverse;width:100%;margin:0 auto;text-align:center}.aboutme-content .aboutme-description{margin-bottom:2rem;width:100%}.aboutme-picture{width:15rem;height:15rem}}.mobile-experience-interface,.mobile-only{display:none}.experiences-content{display:flex;justify-content:space-evenly}.experiences-content .desktop-menu{padding-right:2rem}.experiences-content .desktop-menu ul{display:block}.experiences-content .desktop-menu ul li{padding:1rem 2rem;color:var(--primary-color);border-left:.5px solid grey;cursor:pointer;transition:all .3s ease}.experiences-content .desktop-menu ul .menu-selected-value{border-left:solid 2px var(--primary-color);font-weight:700;font-size:1.25rem}.experiences-content .experiences-details{flex:1}.experiences-content .experiences-details .experiences-details-title h3{margin-bottom:0}.experiences-content .experiences-details .experiences-details-missions ul{width:100%}@media (max-width: 768px){.desktop-menu{display:none!important}.mobile-experience-interface{display:block;margin-bottom:2rem}.mobile-only,.experiences-content{display:block}.mobile-nav-header{display:flex;flex-direction:column;align-items:center;padding:1rem;background:rgba(var(--primary-color-rgb),.05);border-radius:12px;margin-bottom:1rem;gap:1rem}.experience-counter{font-size:.9rem;color:var(--primary-color);opacity:.7;font-weight:500}.navigation-row{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:250px}.nav-btn{background:var(--primary-color);border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .3s ease;outline:none;-webkit-tap-highlight-color:transparent}.nav-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.3)}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.progress-indicators{display:flex;justify-content:center;gap:8px;flex:1;margin:0 1rem}.progress-indicators .indicator{width:8px;height:8px;border-radius:50%;background:gray;cursor:pointer;transition:all .3s ease}.progress-indicators .indicator.active{background:var(--primary-color);transform:scale(1.3)}.progress-indicators .indicator:hover{transform:scale(1.2)}.current-experience-name{text-align:center}.current-experience-name h4{margin:0;font-size:1.1rem;color:var(--primary-color)}.swipe-hint{text-align:center;margin-top:2rem;padding:1rem;background:rgba(var(--primary-color-rgb),.05);border-radius:8px}.swipe-hint span{font-size:.85rem;color:var(--primary-color);opacity:.7;font-style:italic}.experiences-details{transition:transform .3s ease}.experiences-details:active{transform:scale(.98)}}.technologies-list[data-v-71173571]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.technologies-list.layout-vertical[data-v-71173571]{flex-direction:column;align-items:flex-start}.technologies-list.layout-grid[data-v-71173571]{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.5rem}.technologies-list .tech-item[data-v-71173571]{display:flex;align-items:center;justify-content:center}.technologies-list .tech-badge[data-v-71173571]{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--primary-color);background:#3990ff1a;padding:.4rem .7rem;border-radius:16px;border:1px solid rgba(57,144,255,.2);font-weight:500;transition:all .2s ease;white-space:nowrap}.technologies-list .tech-badge[data-v-71173571]:hover{transform:translateY(-1px);background:#3990ff26;border-color:#3990ff4d;box-shadow:0 2px 8px #3990ff33}.technologies-list .tech-icon[data-v-71173571]{object-fit:contain;flex-shrink:0}.technologies-list .tech-name[data-v-71173571]{font-size:inherit;font-weight:inherit}.technologies-list.size-small .tech-badge[data-v-71173571]{padding:.3rem .5rem;font-size:.7rem;gap:.3rem}.technologies-list.size-small .tech-icon[data-v-71173571]{height:14px;width:auto}.technologies-list.size-medium .tech-badge[data-v-71173571]{padding:.4rem .7rem;font-size:.8rem;gap:.5rem}.technologies-list.size-medium .tech-icon[data-v-71173571]{height:18px;width:auto}.technologies-list.size-large .tech-badge[data-v-71173571]{padding:.5rem .9rem;font-size:.9rem;gap:.6rem}.technologies-list.size-large .tech-icon[data-v-71173571]{height:22px;width:auto}.technologies-list .tech-icon[data-v-71173571]{height:16px;width:auto}@media (max-width: 768px){.technologies-list[data-v-71173571]{gap:.5rem}.technologies-list .tech-badge[data-v-71173571]{padding:.3rem .6rem;font-size:.75rem}.technologies-list.size-medium .tech-icon[data-v-71173571],.technologies-list.size-large .tech-icon[data-v-71173571]{height:16px}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;box-sizing:border-box;overflow-y:auto}.modal-content{background:var(--background-color);border:1px solid rgba(57,144,255,.2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;z-index:1001;position:relative;box-shadow:0 20px 60px #3990ff26}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1rem;border-bottom:1px solid rgba(57,144,255,.15)}.modal-title{color:var(--primary-color);font-size:1.5rem;font-weight:600;margin:0;flex:1;text-align:center;position:relative;z-index:1}.close-button{width:3rem;height:3rem;z-index:10;background:none;border:none;color:var(--primary-color);cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease;opacity:.7;position:absolute;right:.75rem;top:.75rem;display:flex;justify-content:center;align-items:center}.close-button:hover{opacity:1;background:#3990ff1a}.modal-image{padding:1rem;position:relative;min-height:256px}.image-skeleton{position:absolute;top:1rem;left:1rem;right:1rem;height:256px;background:linear-gradient(90deg,#3990ff0d 25%,#3990ff1a,#3990ff0d 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:12px;z-index:1}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.modal-photo{width:100%;height:256px;object-fit:cover;border-radius:12px;box-shadow:0 8px 32px #0003;transition:opacity .4s ease,transform .3s ease;opacity:0;position:relative;z-index:2}.modal-photo.loaded{opacity:1}.modal-photo:hover{transform:scale(1.02)}.modal-body{padding:1rem 2rem 2rem}.modal-section{margin-bottom:2rem}.modal-section:last-child{margin-bottom:0}.section-title{color:var(--primary-color);font-size:1.1rem;font-weight:600;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.features-list{display:flex;flex-direction:column;gap:.75rem}.features-list li{border-radius:8px;color:var(--text-color);transition:all .2s ease}body.modal-open{overflow:hidden}@media (max-width: 768px){.modal-overlay{padding:1rem}.modal-content{max-height:95vh;border-radius:16px}.modal-header{padding:1.5rem 1.5rem 1rem}.modal-title{font-size:1.25rem}.modal-body{padding:1rem 1.5rem 1.5rem}.modal-section{margin-bottom:1.5rem}}.status-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;color:#fff;display:inline-block;position:absolute;top:1rem;right:1rem}.status-badge.completed{background-color:green}.status-badge.in-progress{background-color:#ff9500}.tech-preview{display:flex;align-items:center;gap:.5rem}.tech-preview .tech-item{display:flex;align-items:center;justify-content:center}.tech-preview .tech-icon{object-fit:contain;border-radius:4px;transition:transform .2s ease}.tech-preview .tech-icon:hover{transform:scale(1.1)}.tech-preview .tech-placeholder{display:flex;align-items:center;justify-content:center;background:#3990ff33;color:var(--primary-color);border-radius:4px;font-weight:600;font-size:.7rem}.tech-preview .tech-more{display:flex;align-items:center;justify-content:center;background:#3990ff1a;color:var(--primary-color);border:1px solid rgba(57,144,255,.2);border-radius:12px;font-size:.7rem;font-weight:500;padding:.2rem .4rem;opacity:.8}.tech-preview.size-small{gap:.3rem}.tech-preview.size-small .tech-icon,.tech-preview.size-small .tech-placeholder{height:20px;width:20px}.tech-preview.size-small .tech-more{font-size:.6rem;padding:.1rem .3rem}.tech-preview.size-medium{gap:.5rem}.tech-preview.size-medium .tech-icon,.tech-preview.size-medium .tech-placeholder{height:24px;width:24px}.tech-preview.size-large{gap:.6rem}.tech-preview.size-large .tech-icon,.tech-preview.size-large .tech-placeholder{height:28px;width:28px}.tech-preview.size-large .tech-more{font-size:.8rem}.tech-preview .tech-icon,.tech-preview .tech-placeholder{height:22px;width:22px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto}.project-card{background:#3990ff0d;border:1px solid rgba(57,144,255,.15);border-radius:16px;padding:0;display:flex;flex-direction:column;height:100%;cursor:pointer;transition:all .3s ease;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #3990ff26;border-color:#3990ff40;background:#3990ff14}.card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem 1.5rem 0;gap:1rem}.card-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--primary-color);flex:1;line-height:1.3}.card-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(57,144,255,.2),transparent);margin:1rem 1.5rem 0}.card-body{padding:1rem 1.5rem;flex:1;display:flex;flex-direction:column;gap:1rem}.card-description{margin:0;color:var(--text-color);line-height:1.5;opacity:.9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-tech{margin-top:auto}.card-footer{padding:0 1.5rem 1.5rem;display:flex;justify-content:flex-end}.card-cta{background:none;border:none;color:var(--primary-color);cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.5rem 0;transition:all .2s ease;opacity:.8}.card-cta:hover{opacity:1;transform:translate(2px)}.card-cta svg{transition:transform .2s ease}.card-cta:hover svg{transform:translate(2px)}.blur-background{filter:blur(8px);transition:filter .3s ease-in-out}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr;gap:1rem;padding:0 1rem}.card-header{padding:1.25rem 1.25rem 0;flex-direction:column;align-items:stretch;gap:.75rem}.card-divider{margin:.75rem 1.25rem 0}.card-body{padding:.75rem 1.25rem}.card-footer{padding:0 1.25rem 1.25rem}.card-title{font-size:1.1rem}}.timeline-details{position:relative;padding:20px 0}.timeline-details-logo{width:5rem}.timeline-details ul{position:relative}.timeline-details ul:before{content:"";position:absolute;top:0;left:calc(50% - 1px);width:3px;height:100%;background:linear-gradient(180deg,var(--primary-color),var(--primary-color));border-radius:2px}.timeline-details ul li{display:flex;position:relative;margin-bottom:20px;justify-content:flex-start;padding-right:0rem}.timeline-details ul li:before{content:"";position:absolute;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:var(--primary-color);border:3px solid var(--primary-color-hover);top:50%;z-index:1;padding-right:0rem;box-shadow:0 0 0 4px var(--primary-color-hover);transition:all .3s ease}.timeline-details ul li:hover:before{transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 0 6px var(--primary-color-hover)}.timeline-details ul li:nth-child(odd){justify-content:flex-end}.timeline-details ul li .timeline-detail{display:flex;align-items:center;width:45%;margin:0 -1rem;padding:1.5rem;background:#3990ff14;border:1px solid var(--primary-color-hover);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;position:relative;overflow:hidden}.timeline-details ul li .timeline-detail:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--primary-color-hover),transparent)}.timeline-details ul li .timeline-detail:hover{transform:translateY(-2px);background:#3990ff1f;border-color:var(--primary-color-hover);box-shadow:0 8px 25px var(--primary-color-hover)}.timeline-details ul li .timeline-detail img{width:4rem;height:4rem;border-radius:50%;margin-right:1rem;border:2px solid var(--primary-color-hover);transition:all .3s ease}.timeline-details ul li .timeline-detail img:hover{border-color:var(--primary-color);transform:scale(1.05)}.timeline-details ul li .timeline-detail img:nth-child(odd){margin:0 1rem 0 0}.timeline-details ul li .timeline-description{margin-left:10px}.timeline-details ul li .timeline-description .timeline-description-title{margin-bottom:0;font-size:1.25rem;font-weight:bolder}@media (max-width: 992px){.timeline-details ul:before{left:1rem;transform:translate(-50%);width:2px}.timeline-details ul li{justify-content:flex-start;margin-bottom:3rem}.timeline-details ul li:before{left:1rem;transform:translate(-50%,-50%);width:12px;height:12px;border:2px solid var(--primary-color-hover);box-shadow:0 0 0 3px var(--primary-color-hover)}.timeline-details ul li:nth-child(odd){justify-content:flex-start}.timeline-details ul li .timeline-detail{flex-direction:column;width:calc(100% - 3rem);margin-left:2.5rem;padding:1.25rem}.timeline-details ul li .timeline-detail img{width:3rem;height:3rem;margin-right:1rem;flex-shrink:0}.timeline-description{text-align:left}.timeline-description .timeline-description-title{font-size:1.1rem}}.contact-container{text-align:center;margin-bottom:4rem}.contact-container ul li{display:inline-block;margin:0 10px}.contact-container ul li svg{width:64px;height:64px}.montaign-image{width:100%;padding-top:3rem}.contact-content{height:10rem}@media (max-width: 480px){.contact-container ul li svg{width:48px;height:48px}}.light-theme{--background-color: #b6d1de;--text-color: #3a3f4dfa;--primary-color: rgb(226, 88, 70);--primary-color-hover: rgba(237, 106, 90, .3);--box-shadow-color: 3px 4px 6px rgba(0, 0, 0, .2), 0 1px 3px rgba(0, 0, 0, .15)}.light-theme h2{color:#36454f}.light-theme .brighter-title{color:#5b6170}.dark-theme{--background-color: #081c3a;--text-color: #8892b0;--primary-color: rgb(57, 144, 255);--primary-color-hover: rgba(57, 144, 255, .3);--box-shadow-color: 0 4px 6px rgba(255, 255, 255, .2), 0 1px 3px rgba(255, 255, 255, .15)}h1,h2{text-align:left;font-weight:400}h2{font-size:2rem;margin:4rem 0;padding-left:4rem;color:#ccd6f6}h3{font-size:1.75rem;font-weight:200}h4{font-size:1.125rem;font-weight:200}.primary-color-font{color:var(--primary-color)}.darker-title{color:#8892b0}.brighter-title{color:#ccd6f6}.numbered-title{color:var(--primary-color)}.main-container{width:100%}ul{list-style:none;padding-inline-start:0;margin:0}li{margin-bottom:1rem;position:relative}li:before{content:"▹";color:var(--primary-color);font-weight:700;padding-right:.5rem}.list-clean li:before{content:"";padding-right:0}.list-bullet li:before{content:"•";padding-right:1rem}.list-no-spacing li{margin-bottom:0}.list-compact li{margin-bottom:.5rem}body{margin:0;font-size:1.25rem;font-family:Finlandica,sans-serif;font-optical-sizing:auto;font-weight:300;font-style:normal;background-color:var(--background-color);color:var(--text-color)}button{width:6rem;height:2rem;margin:auto 0;background-color:var(--primary-color);color:#fff;border:none;border-radius:2rem}.aboutme-container,.timeline-container,.banner-container,.experiences-container,.projects-container,.contact-container{padding:2rem 5rem}@media (max-width: 768px){.aboutme-container,.timeline-container,.banner-container,.experiences-container,.projects-container,.contact-container{padding:0rem 2rem}}@media (max-width: 480px){h2{padding-left:2rem;margin:2rem 0}}.primary-card{box-shadow:var(--box-shadow-color);border-radius:1rem;border:1px solid var(--primary-color)}
