@import "https://fonts.googleapis.com/css2?family=Finlandica+Text:ital,wght@0,100..900;1,100..900&family=Martel+Sans:wght@200;300;400;600;700;800;900&family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap";:root{--bg:#0c0d10;--bg-card:#121319;--bg-card-hover:#171922;--bg-subtle:#ffffff09;--border:#ffffff12;--border-hover:#ffffff2e;--text-primary:#fff;--text-secondary:#94a3b8;--text-tertiary:#cbd5e1;--text-muted:#64748b;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--container-width:1140px;--font-sans:"Urbanist", "Finlandica Text", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Urbanist", monospace, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background-color:var(--bg);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg);color:var(--text-secondary);background-image:radial-gradient(80% 50% at 50% -10%,#ffffff0b 0%,#0000 60%),radial-gradient(circle at 10% 20%,#38bdf804 0%,#0000 40%);flex-direction:column;min-height:100vh;font-size:15px;line-height:1.65;display:flex}a{color:inherit;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s,opacity .15s}button{cursor:pointer;color:var(--text-primary);background:0 0;border:none;font-family:inherit}.container{width:100%;max-width:var(--container-width);margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.heading-gradient{background:linear-gradient(#fff 30%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:inline-block}.subheading-gradient{color:var(--text-tertiary)}.section-title,.section-title-minimal,.section-eyebrow-gradient{letter-spacing:-.02em;color:#fff;text-transform:none;margin-bottom:1.35rem;font-size:1.25rem;font-weight:700;line-height:1.3;display:block}.text-highlight{color:#fff;font-weight:600;transition:color .15s}.layout-split{width:100%;max-width:var(--container-width);margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}@media (min-width:1024px){.layout-split{justify-content:space-between;gap:4.5rem;display:flex}}.sidebar-sticky{width:100%;padding-top:3.5rem;padding-bottom:2rem}@media (min-width:1024px){.sidebar-sticky{flex-direction:column;flex-shrink:0;width:380px;height:fit-content;max-height:100vh;padding-top:5rem;padding-bottom:2.5rem;display:flex;position:sticky;top:0}}.sidebar-top{flex-direction:column;gap:1.15rem;display:flex}.sidebar-avatar{border-radius:var(--radius-full);object-fit:cover;border:1px solid #ffffff2e;width:68px;height:68px;box-shadow:0 8px 24px #0009}.sidebar-name{letter-spacing:-.035em;margin-top:.25rem;font-size:2.35rem;font-weight:900;line-height:1.1}.sidebar-positioning{color:var(--text-tertiary);letter-spacing:-.01em;margin-top:.35rem;font-size:1.05rem;font-weight:600;line-height:1.4}.sidebar-intro{color:var(--text-secondary);max-width:360px;margin-top:.5rem;font-size:.95rem;line-height:1.65}.sidebar-nav{display:none}@media (min-width:1024px){.sidebar-nav{flex-direction:column;gap:.55rem;margin:1.75rem 0 1.25rem;display:flex}}.nav-link-item{cursor:pointer;align-items:center;width:fit-content;padding:.15rem 0;text-decoration:none;display:inline-flex}.nav-link-text{letter-spacing:.12em;color:var(--text-tertiary);font-size:.775rem;font-weight:600;transition:all .15s}.nav-link-item:hover .nav-link-text{color:#fff;transform:translate(4px)}.nav-link-item.active .nav-link-text{color:#fff;font-weight:800}.sidebar-bottom{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.content-scrollable{flex-direction:column;gap:5rem;width:100%;padding-bottom:6rem;display:flex}@media (min-width:1024px){.content-scrollable{flex:1;gap:6rem;min-width:0;padding-top:6rem;padding-bottom:8rem}}.mobile-nav-bar{z-index:40;-webkit-backdrop-filter:blur(16px);background:#0c0d10e0;border-bottom:1px solid #ffffff12;gap:.4rem;margin-bottom:2rem;margin-left:-1.5rem;margin-right:-1.5rem;padding:.65rem 1rem;display:flex;position:sticky;top:0;overflow-x:auto}@media (min-width:1024px){.mobile-nav-bar{display:none}}.mobile-nav-pill{border-radius:var(--radius-full);color:var(--text-tertiary);white-space:nowrap;background:#ffffff0a;padding:.3rem .8rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:all .15s}.mobile-nav-pill.active,.mobile-nav-pill:hover{color:#fff;background:#ffffff1f}.hero-socials{align-items:center;gap:.25rem;display:flex}.social-icon-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-tertiary);justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.social-icon-btn:hover{color:var(--text-primary);background:#ffffff0f}.hero-bio-minimal{color:var(--text-secondary);font-size:.95rem;line-height:1.65}.hero-meta-row{flex-wrap:wrap;align-items:center;gap:1.15rem;font-size:.8rem;display:flex}.status-badge-minimal{color:var(--text-secondary);align-items:center;gap:.45rem;display:inline-flex}.status-dot-pulse{background-color:#22c55e;border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 2px #22c55e33}.location-minimal{color:var(--text-muted);align-items:center;gap:.35rem;display:inline-flex}.hero-actions-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.25rem;display:flex}.btn-minimal{border-radius:var(--radius-md);align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.825rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-minimal-primary{color:#121212;background:#fff}.btn-minimal-primary:hover{background:#e5e5e5}.btn-minimal-secondary{color:var(--text-primary);background:#ffffff0d}.btn-minimal-secondary:hover{background:#ffffff1a}.hero-section{padding:4rem 0 2.75rem}.hero-profile{flex-direction:column-reverse;align-items:flex-start;gap:2.25rem;display:flex}@media (min-width:640px){.hero-profile{flex-direction:row;justify-content:space-between;align-items:center}}.hero-info{flex:1}.status-badge{border-radius:var(--radius-full);color:var(--text-secondary);background:#ffffff0f;border:1px solid #ffffff26;align-items:center;gap:.55rem;margin-bottom:1.25rem;padding:.35rem .85rem;font-size:.775rem;font-weight:500;display:inline-flex}.status-dot{background-color:#22c55e;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2px #22c55e33}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.hero-name{letter-spacing:-.035em;color:var(--text-primary);margin-bottom:.45rem;font-size:clamp(2rem,4.5vw,2.85rem);font-weight:900;line-height:1.15}.hero-role{color:var(--text-tertiary);letter-spacing:-.01em;margin-bottom:1.15rem;font-size:1.1rem;font-weight:600}.hero-bio{color:var(--text-secondary);max-width:580px;margin-bottom:1.5rem;font-size:1.025rem;line-height:1.68}.hero-location{color:var(--text-muted);align-items:center;gap:.5rem;margin-bottom:1.75rem;font-size:.85rem;display:flex}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn{border-radius:var(--radius-md);align-items:center;gap:.45rem;padding:.55rem 1.15rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--text-primary);color:var(--bg);border:1px solid var(--text-primary)}.btn-primary:hover{background:#eaece8;border-color:#eaece8;transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-1px)}.hero-photo-wrapper{flex-shrink:0;position:relative}.hero-photo{border-radius:var(--radius-lg);object-fit:cover;border:2px solid #fff3;width:145px;height:145px;box-shadow:0 16px 36px #00000080}@media (min-width:640px){.hero-photo{width:165px;height:165px}}.section{border-top:none;padding:0;scroll-margin-top:5rem}@media (min-width:1024px){.section{scroll-margin-top:6rem}}.timeline-list{flex-direction:column;gap:2rem;display:flex}.timeline-item{position:relative}.timeline-header{flex-direction:column;gap:.25rem;display:flex}@media (min-width:540px){.timeline-header{flex-direction:row;justify-content:space-between;align-items:baseline}}.timeline-role{color:#fff;letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.timeline-company{color:#cbd5e1;margin-top:.15rem;font-size:.875rem;font-weight:500}.timeline-period{color:#64748b;font-size:.8rem;font-family:var(--font-mono);white-space:nowrap}.timeline-bullets{flex-direction:column;gap:.45rem;margin-top:.65rem;list-style:none;display:flex}.timeline-bullets li{color:#94a3b8;padding-left:1.15rem;font-size:.925rem;line-height:1.7;position:relative}.timeline-bullets li:before{content:"";background:#64748b;border-radius:50%;width:4px;height:4px;position:absolute;top:.65rem;left:.25rem}.skills-stack{flex-direction:column;gap:1.25rem;display:flex}.skills-group{flex-direction:column;gap:.5rem;display:flex}.skills-group-title{color:#cbd5e1;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:700}.skills-pills-row{flex-wrap:wrap;gap:.4rem;display:flex}.skill-chip{border-radius:var(--radius-sm);color:var(--text-secondary);background:#ffffff0a;border:1px solid #ffffff0f;align-items:center;gap:.45rem;padding:.3rem .7rem;font-size:.8rem;transition:all .15s;display:inline-flex}.skill-chip:hover{color:#fff;background:#ffffff17;border-color:#ffffff29;transform:translateY(-1px)}.skill-chip svg{opacity:.85;flex-shrink:0;transition:opacity .15s}.skill-chip:hover svg{opacity:1}.edu-block{margin-bottom:1.5rem}.edu-title-line{flex-direction:column;gap:.25rem;display:flex}@media (min-width:540px){.edu-title-line{flex-direction:row;justify-content:space-between;align-items:baseline}}.edu-degree-name{color:#fff;letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.edu-school-name{color:#cbd5e1;margin-top:.15rem;font-size:.875rem;font-weight:500}.edu-period-meta{color:#64748b;font-size:.8rem;font-family:var(--font-mono)}.cert-list{flex-direction:column;gap:1.15rem;display:flex}.cert-item{flex-direction:column;gap:.2rem;display:flex}.cert-item-header{flex-direction:column;gap:.15rem;display:flex}@media (min-width:540px){.cert-item-header{flex-direction:row;justify-content:space-between;align-items:baseline;gap:1.25rem}}.cert-item-title{color:#fff;font-size:.95rem;font-weight:600;line-height:1.4}.cert-item-period{color:#64748b;font-size:.8rem;font-family:var(--font-mono);white-space:nowrap}.cert-item-meta{color:#94a3b8;font-size:.825rem;line-height:1.4}.connect-block{margin-top:.25rem}.connect-text{color:var(--text-secondary);margin-bottom:.85rem;font-size:.875rem;line-height:1.6}.connect-links-row{flex-wrap:wrap;align-items:center;gap:1.25rem;font-size:.825rem;display:flex}.connect-links-row a{color:var(--text-tertiary);align-items:center;gap:.3rem;transition:color .15s;display:inline-flex}.connect-links-row a:hover{color:var(--text-primary)}.page-footer-minimal{color:var(--text-muted);text-align:center;margin-top:2rem;font-size:.775rem}.section-header{margin-bottom:2rem}.section-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin-bottom:.4rem;font-size:.775rem;font-weight:700}.section-header .section-title{letter-spacing:-.025em;color:var(--text-primary);font-size:1.75rem;font-weight:800}.section-subtitle{color:var(--text-secondary);max-width:620px;margin-top:.35rem;font-size:.95rem}.experience-list{flex-direction:column;gap:1.5rem;display:flex}.experience-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.6rem;transition:all .2s}.experience-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.experience-top{flex-direction:column;gap:.25rem;margin-bottom:.65rem;display:flex}@media (min-width:640px){.experience-top{flex-direction:row;justify-content:space-between;align-items:baseline}}.experience-role{color:var(--text-primary);font-size:1.15rem;font-weight:700}.experience-period{color:var(--text-tertiary);font-size:.825rem;font-weight:600}.experience-company-row{color:var(--text-secondary);align-items:center;gap:.6rem;margin-bottom:1.1rem;font-size:.925rem;display:flex}.experience-company-row strong{color:var(--text-primary)}.experience-bullet-list{flex-direction:column;gap:.6rem;list-style-type:none;display:flex}.experience-bullet-list li{color:var(--text-secondary);padding-left:1.25rem;font-size:.925rem;line-height:1.6;position:relative}.experience-bullet-list li:before{content:"•";color:var(--text-tertiary);font-weight:700;position:absolute;left:.25rem}.projects-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (min-width:640px){.projects-grid{grid-template-columns:repeat(2,1fr)}}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;justify-content:space-between;padding:1.6rem;transition:all .2s;display:flex}.project-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover);transform:translateY(-2px)}.project-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.55rem;display:flex}.project-card-title{color:var(--text-primary);align-items:center;gap:.35rem;font-size:1.2rem;font-weight:700;display:flex}.project-type-badge{border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;background:#ffffff0d;padding:.2rem .55rem;font-size:.725rem;font-weight:500}.project-card-subtitle{color:var(--text-tertiary);margin-bottom:.75rem;font-size:.85rem;font-weight:600}.project-card-summary{color:var(--text-secondary);margin-bottom:1.15rem;font-size:.925rem;line-height:1.6}.project-highlights{flex-direction:column;gap:.45rem;margin-bottom:1.35rem;list-style-type:none;display:flex}.project-highlights li{color:var(--text-secondary);padding-left:1rem;font-size:.85rem;line-height:1.5;position:relative}.project-highlights li:before{content:"–";color:var(--text-muted);position:absolute;left:0}.project-tags{border-top:1px solid #ffffff0f;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.85rem;display:flex}.tag-badge{font-size:.725rem;font-family:var(--font-mono);border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-tertiary);background:#ffffff0a;padding:.2rem .55rem}.skills-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (min-width:640px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.skill-category-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.35rem}.skill-category-title{color:var(--text-primary);align-items:center;gap:.5rem;margin-bottom:.85rem;font-size:.95rem;font-weight:700;display:flex}.skill-category-title span{color:var(--text-tertiary)}.skills-pill-wrapper{flex-wrap:wrap;gap:.45rem;display:flex}.skill-pill{border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-secondary);background:#ffffff0a;padding:.3rem .7rem;font-size:.825rem;transition:all .15s}.skill-pill:hover{color:var(--text-primary);border-color:var(--border-hover);background:#ffffff1a}.edu-cert-container{flex-direction:column;gap:1.5rem;display:flex}.education-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.6rem}.edu-top{flex-direction:column;gap:.25rem;margin-bottom:.4rem;display:flex}@media (min-width:640px){.edu-top{flex-direction:row;justify-content:space-between;align-items:baseline}}.edu-degree{color:var(--text-primary);font-size:1.15rem;font-weight:700}.edu-period{color:var(--text-tertiary);font-size:.825rem;font-weight:600}.edu-institution{color:var(--text-secondary);align-items:center;gap:.75rem;font-size:.95rem;display:flex}.edu-gpa-badge{border-radius:var(--radius-full);color:var(--text-primary);background:#ffffff14;border:1px solid #fff3;align-items:center;padding:.15rem .55rem;font-size:.8rem;font-weight:700;display:inline-flex}.cert-list{grid-template-columns:1fr;gap:.85rem;display:grid}@media (min-width:640px){.cert-list{grid-template-columns:repeat(2,1fr)}}.cert-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;justify-content:space-between;padding:1.1rem 1.25rem;transition:all .2s;display:flex}.cert-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.cert-title{color:var(--text-primary);margin-bottom:.35rem;font-size:.925rem;font-weight:700}.cert-issuer{color:var(--text-secondary);font-size:.825rem}.cert-id{color:var(--text-muted);margin-top:.4rem;font-size:.75rem}.contact-section{border-top:1px solid var(--border);padding:3.75rem 0}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;padding:2.75rem 2rem}.contact-title{letter-spacing:-.025em;color:var(--text-primary);margin-bottom:.75rem;font-size:1.85rem;font-weight:800}.contact-desc{color:var(--text-secondary);max-width:520px;margin:0 auto 1.85rem;font-size:1rem;line-height:1.65}.contact-links{flex-wrap:wrap;justify-content:center;gap:.85rem;display:flex}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);margin-top:auto;padding:2.25rem 0;font-size:.85rem}.footer-inner{flex-direction:column;justify-content:space-between;align-items:center;gap:1rem;display:flex}@media (min-width:640px){.footer-inner{flex-direction:row}}.footer-socials{gap:1.25rem;display:flex}.footer-socials a{color:var(--text-tertiary)}.footer-socials a:hover{color:var(--text-primary)}:root{--background:#212121;--foreground:#fff;--muted-foreground:#b0b0b0;--secondary:#181818;--secondary-foreground:#fff}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.inset-0{inset:0}.left-0{left:0}.-bottom-0\.5{bottom:-.125rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.w-\[280px\]{width:280px}.h-\[180px\]{height:180px}.w-4{width:1rem}.h-4{height:1rem}.h-full{height:100%}.h-px{height:1px}.w-0{width:0}.px-0{padding-left:0;padding-right:0}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-\[10px\]{padding-top:10px;padding-bottom:10px}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-16{padding-top:4rem;padding-bottom:4rem}.mt-0\.5{margin-top:.125rem}.space-y-1>:not([hidden])~:not([hidden]){margin-top:.25rem}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}.flex{display:flex}.inline-flex{display:inline-flex}.block{display:block}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.flex-1{flex:1}.min-w-0{min-width:0}.space-y-0>:not([hidden])~:not([hidden]){margin-top:0}.border-t{border-top:1px solid var(--border)}.border-border{border-color:var(--border)}.rounded-xl{border-radius:.75rem}.rounded-lg{border-radius:.5rem}.shadow-2xl{box-shadow:0 25px 50px -12px #000000bf}.overflow-hidden{overflow:hidden}.pointer-events-none{pointer-events:none}.z-50{z-index:50}.object-cover{object-fit:cover}.text-foreground{color:var(--text-primary)}.text-muted-foreground{color:var(--text-tertiary)}.text-foreground\/70{color:#ffffffb3}.text-foreground\/80{color:#ffffffd9}.bg-foreground{background-color:var(--text-primary)}.bg-secondary{background-color:var(--bg-card)}.bg-secondary\/50{background-color:#181818bf}.bg-gradient-to-t{background-image:linear-gradient(#0000,#21212166)}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-medium{font-weight:500}.font-mono{font-family:var(--font-mono)}.tabular-nums{font-variant-numeric:tabular-nums}.tracking-wide{letter-spacing:.05em}.tracking-tight{letter-spacing:-.025em}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.opacity-0{opacity:0}.opacity-100{opacity:1}.scale-95{transform:scale(.95)}.scale-100{transform:scale(1)}.scale-105{transform:scale(1.05)}.-translate-x-2{transform:translate(-.5rem)}.translate-y-2{transform:translateY(.5rem)}.translate-x-0{transform:translate(0)}.translate-y-0{transform:translateY(0)}
