:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{min-width:320px;min-height:100vh;margin:0}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.calm-wave__sky{pointer-events:none;z-index:-2;background:linear-gradient(#c6ddf5bf,#0000 70%);position:fixed;top:0;left:0;right:0;overflow:visible}.calm-wave{pointer-events:none;z-index:-1;background:linear-gradient(#fff0 0%,#e7f5ffb3 45%,#f6fbff 100%);height:clamp(220px,32vh,360px);position:fixed;inset:auto 0 0;overflow:hidden}.calm-wave__mist{opacity:.4;filter:blur(18px);background:radial-gradient(at 50% 0,#fffffff2,#fff0 65%);width:130%;height:40%;animation:28s ease-in-out infinite alternate mistDrift;position:absolute;bottom:50%;left:-15%}.calm-wave__birds{pointer-events:none;z-index:2;position:absolute;inset:0}.calm-wave__bird{width:var(--bird-size);height:calc(var(--bird-size)*.6);color:#000000d9;opacity:.9;animation:birdFly var(--bird-flight-duration,28s)linear infinite;animation-delay:var(--bird-flight-delay,0s);filter:drop-shadow(0 0 6px #00000040);z-index:2;position:absolute}.calm-wave__bird-shape{transform-origin:24px 10px;transform-box:fill-box;transform:rotate(var(--bird-tilt,0deg));animation:birdFlap var(--bird-flap-duration,1.6s)ease-in-out infinite}.calm-wave__bird-wing{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round}.calm-wave__bird-body{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round}.calm-wave__layer{--slide-duration:32s;--slide-delay:0s;--wave-rise:0px;width:220%;height:150%;animation:oceanWaveSlide var(--slide-duration)ease-in-out infinite;animation-delay:var(--slide-delay);filter:drop-shadow(0 -6px 12px #3476a82e);will-change:transform;z-index:1;position:absolute;bottom:0;left:0}.calm-wave__layer path{stroke:none}@keyframes oceanWaveSlide{0%{transform:translate(0,0)}50%{transform:translate3d(-25%,calc(var(--wave-rise)*-1),0)}to{transform:translate(-50%)}}@keyframes mistDrift{0%{transform:translate(-5%)}to{transform:translate(5%)}}@keyframes birdFly{0%{opacity:0;transform:translate(0,0)}10%{opacity:.4}50%{transform:translate3d(-60vw,calc(var(--bird-drift,6px)*-1),0)}to{transform:translate3d(-110vw,var(--bird-drift,6px),0);opacity:0}}@keyframes birdFlap{0%{transform:rotate(var(--bird-tilt,0deg))scaleY(1)}50%{transform:rotate(var(--bird-tilt,0deg))scaleY(.7)}to{transform:rotate(var(--bird-tilt,0deg))scaleY(1)}}@media (prefers-reduced-motion:reduce){.calm-wave__layer,.calm-wave__mist,.calm-wave__bird,.calm-wave__bird-shape{filter:none;animation:none}}.contact-info-section{justify-content:center;align-items:center;padding:clamp(6rem,10vw,9rem) 1.5rem;display:flex;position:relative}.contact-card{text-align:center;width:min(920px,100%);color:var(--text);flex-direction:column;gap:clamp(1.5rem,3vw,2.5rem);padding:clamp(2.5rem,5vw,3.5rem) clamp(1.8rem,4vw,3rem);display:flex}.contact-header h2{margin:0 0 .35rem;font-size:clamp(2rem,4vw,2.5rem)}.contact-header h3{color:var(--text-muted);margin:0 0 .75rem;font-size:1.1rem;font-weight:500}.contact-header p{max-width:600px;color:var(--text-muted);margin:0 auto;line-height:1.7}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(1.25rem,3vw,2rem);display:grid}.contact-item{border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-2)78%,transparent);border:1px solid color-mix(in srgb,var(--border)60%,transparent);transition:transform var(--motion-normal),background var(--motion-normal),border var(--motion-normal);flex-direction:column;align-items:center;gap:.5rem;padding:1.6rem 1.2rem;display:flex}.contact-item:hover{background:color-mix(in srgb,var(--surface-2)82%,var(--accent-role)18%);border-color:color-mix(in srgb,var(--accent-role)60%,var(--border)40%);transform:translateY(-6px)}.contact-item-icon{width:1.6rem;height:1.6rem;color:var(--accent-role);transition:transform var(--motion-normal),color var(--motion-normal)}.contact-item:hover .contact-item-icon{color:var(--accent-role-hover);transform:scale(1.1)}.contact-item .label{color:var(--heading);font-weight:600}.contact-item a{color:var(--accent-role);transition:color var(--motion-fast);text-decoration:none}.contact-item a:hover{color:var(--accent-role-hover);text-decoration:underline}.contact-item span{color:var(--text)}.contact-divider{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--border)70%,transparent),transparent);width:80%;height:1px;margin:0 auto}.cv-description{text-align:center;max-width:600px;color:var(--text);margin:0 auto;line-height:1.6}.cv-link{color:var(--accent-role);justify-content:center;align-self:center;align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}.cv-icon{width:1.75rem;height:1.75rem;color:var(--accent-role);transition:transform var(--motion-normal),color var(--motion-normal)}.cv-link:hover .cv-icon{color:var(--accent-role-hover);transform:scale(1.12)}@media (max-width:900px){.contact-info-section{padding:5rem 1.25rem}.contact-card{gap:1.75rem}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:600px){.contact-grid{grid-template-columns:1fr}.contact-card{padding:2.25rem 1.25rem}}.section-projektit{flex-direction:column;gap:clamp(3.5rem,8vw,5rem);padding:clamp(5rem,10vw,8rem) 1.5rem 6rem;display:flex}.project-intro{text-align:center;flex-direction:column;gap:1.75rem;max-width:720px;margin:0 auto;display:flex}.project-intro h2{letter-spacing:-.02em;font-size:clamp(2.25rem,4.2vw,3rem);font-weight:700}.project-intro p{color:var(--projects-text-muted,var(--text-muted));font-size:1.05rem;line-height:1.7}.project-filters{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:.5rem;display:flex}.project-filter{border:1px solid color-mix(in srgb,var(--border)70%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-1)94%,#ffffff05),color-mix(in srgb,var(--surface-2)90%,#ffffff04));min-height:44px;color:var(--text);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:transform var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast);border-radius:999px;padding:.6rem 1.35rem;font-size:.85rem;font-weight:600}.project-filter:hover{border-color:color-mix(in srgb,var(--accent-role)45%,var(--border)55%);transform:translateY(-1px)}.project-filter[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent-role)55%,var(--border)45%);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-role)15%,transparent)}.project-container{flex-direction:column;gap:clamp(4rem,7vw,5.5rem);display:flex}.project-card{grid-template-columns:minmax(0,520px) minmax(0,1fr);align-items:center;gap:clamp(2.75rem,6vw,4rem);max-width:min(1180px,100%);margin:0 auto;padding:0 1rem;display:grid}.project-card.reversed{direction:rtl}.project-card.reversed>*{direction:ltr}.project-image{aspect-ratio:16/9;width:min(100%,520px);box-shadow:var(--projects-image-shadow,0 20px 55px #00000059);background:color-mix(in srgb,var(--surface-1)80%,transparent);border-radius:18px;position:relative;overflow:hidden}.project-placeholder{width:100%;height:100%;color:var(--projects-text-muted,var(--text-muted));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}.project-placeholder .placeholder-icon{background:color-mix(in srgb,var(--accent-role)16%,transparent);width:3rem;height:3rem;color:var(--accent-role);box-shadow:var(--elevation-low);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.project-placeholder .placeholder-icon svg{width:1.4rem;height:1.4rem}.project-placeholder .placeholder-copy{font-size:.95rem;line-height:1.5}.carousel{width:100%;height:100%}.carousel-slide{opacity:0;width:100%;height:100%;transition:opacity var(--motion-normal);cursor:pointer;background:0 0;border:none;border-radius:18px;justify-content:stretch;align-items:stretch;padding:0;display:flex;position:absolute;inset:0}.carousel-slide.active{opacity:1;z-index:1}.carousel-slide:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-role)80%,white 20%);outline-offset:3px}.carousel-slide-image{object-fit:cover;border-radius:inherit;width:100%;height:100%}.carousel-btn{color:#ffffffe6;cursor:pointer;z-index:2;width:2.75rem;height:2.75rem;transition:transform var(--motion-fast),background var(--motion-fast);background:#0a0a0e73;border:none;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn svg{width:1.6rem;height:1.6rem}.carousel-btn:hover{background:#101014a6;transform:translateY(-50%)scale(1.08)}.carousel-btn.prev{left:.65rem}.carousel-btn.next{right:.65rem}.dot-container{z-index:3;gap:.4rem;display:flex;position:absolute;bottom:.9rem;left:50%;transform:translate(-50%)}.dot{background:color-mix(in srgb,var(--border)80%,transparent);width:10px;height:10px;transition:background var(--motion-fast);cursor:pointer;border:none;border-radius:50%;padding:0}.dot.active{background:var(--accent-role)}.dot:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-role)80%,white 20%);outline-offset:2px}.zoom-icon{opacity:0;pointer-events:none;transition:opacity var(--motion-normal);place-items:center;display:grid;position:absolute;inset:0}.zoom-icon-glyph{color:#ffffffe0;opacity:0;filter:drop-shadow(0 12px 28px #00000073);width:3rem;height:3rem;transition:transform var(--motion-normal),opacity var(--motion-normal);transform:scale(.95)}.project-image:hover .zoom-icon{opacity:1}.project-image:hover .zoom-icon-glyph{opacity:1;transform:scale(1)}.project-text{text-align:left;color:var(--text);flex-direction:column;gap:1.4rem;display:flex}.project-text h3{margin:0;font-size:clamp(1.9rem,3.2vw,2.3rem)}.project-text p{color:var(--projects-text-muted,var(--text-muted));margin:0;line-height:1.8}.project-text a[data-i18n=viewer],.project-text .link-row a{color:var(--accent-role);transition:color var(--motion-fast);align-items:center;gap:.35rem;font-weight:600;text-decoration:none;display:inline-flex}.project-text a[data-i18n=viewer]:hover,.project-text .link-row a:hover{color:var(--accent-role-hover)}.project-divider{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--border)70%,transparent),transparent);border:none;height:1px}.project-badges{flex-wrap:wrap;gap:.5rem;display:flex}.project-badges .badge{background:color-mix(in srgb,var(--surface-2)75%,transparent);border:1px solid color-mix(in srgb,var(--border)65%,transparent);border-radius:999px;padding:.35rem .8rem;font-size:.85rem}.project-empty{text-align:center;color:var(--projects-text-muted,var(--text-muted));font-style:italic}@media (max-width:1100px){.project-card,.project-card.reversed{text-align:center;flex-direction:column;gap:2rem;padding:0 .5rem;display:flex}.project-text{align-items:center}.project-text p{text-align:center}.project-text .link-row{justify-content:center}}@media (max-width:640px){.section-projektit{gap:3rem;padding:4rem 1rem 5rem}.project-card,.project-card.reversed{gap:1.5rem}.project-image{border-radius:16px;width:100%}.project-container{gap:3.5rem}.project-badges{justify-content:center}}.lightbox{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity var(--motion-normal);z-index:1000;background:#050914cc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox.show{opacity:1;pointer-events:auto}.lightbox img{border-radius:20px;max-width:min(90vw,960px);max-height:85vh;box-shadow:0 25px 60px #00000073}.lightbox-content{flex-direction:column;align-items:center;gap:.75rem;display:flex;position:relative}.lightbox-close{cursor:pointer;color:#ffffffe6;transition:background var(--motion-fast),transform var(--motion-fast);background:#101423b3;border:none;border-radius:999px;align-self:flex-end;padding:.45rem .95rem;font-weight:600}.lightbox-close:hover{background:#1c223cd9;transform:translateY(-1px)}.lightbox-close:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-role)80%,white 20%);outline-offset:3px}.security-body{background:var(--bg);height:100vh;color:var(--text);justify-content:center;align-items:center;margin:0;padding:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex}.security-container{background:var(--glass-dark-bg);border-radius:var(--radius-xl);box-shadow:var(--elevation-high);text-align:center;border:1px solid var(--glass-dark-border);width:100%;max-width:360px;padding:2rem}html.light-theme .security-container{background:var(--glass-light-bg);border-color:var(--glass-light-border)}.security-container h1{color:var(--heading);margin-bottom:1.5rem;font-size:1.8rem}.security-container input[type=password]{border:1px solid var(--card-border);border-radius:var(--radius-md);background-color:color-mix(in srgb,var(--surface-2)80%,#34c6d81a);width:100%;color:var(--text);margin-bottom:1.2rem;padding:.8rem;font-size:1rem}.security-container input[type=password]:focus{outline:2px solid color-mix(in srgb,var(--accent-role)60%,transparent);border-color:color-mix(in srgb,var(--accent-role)55%,var(--card-border)45%)}.security-container button{background-color:var(--accent-role);color:var(--accent-contrast);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--elevation-low);border:none;padding:.75rem 1.5rem;font-size:1rem;transition:background-color .3s,box-shadow .3s,transform .3s}.security-container button:hover{background-color:var(--accent-role-hover);box-shadow:var(--elevation-medium);transform:scale(1.03)}.security-container .error-message{color:var(--error);margin-top:1rem;display:none}#error-message.show{color:var(--error);display:block}.security-body:before{content:"";z-index:-1;background:radial-gradient(120% 160% at 50% 0,#34c6d838 0%,#06090feb 45%,#05080e 100%) 0 0/400% 400%;width:100vw;height:100vh;animation:15s infinite gradientMove;position:fixed;top:0;left:0}html.light-theme .security-body:before{background:radial-gradient(120% 160% at 50% 0,#2fb6c73d 0%,#ecf3f5eb 55%,#f4f7f8 100%)}@keyframes gradientMove{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.fade-out{opacity:0;transition:all .5s;transform:scale(.95)}.loader{border:4px solid color-mix(in srgb,var(--surface-3)70%,transparent);border-top:4px solid var(--accent-role);opacity:0;border-radius:50%;width:40px;height:40px;margin:2rem auto;transition:opacity .3s;animation:1s linear infinite spin;display:none}.loader.show{opacity:1;display:block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-sequence{text-align:center;border-radius:var(--radius-xl);background:var(--glass-dark-bg);-webkit-backdrop-filter:blur(10px);width:100%;min-width:250px;max-width:400px;box-shadow:var(--elevation-medium);opacity:0;border:1px solid var(--glass-dark-border);margin:2rem auto;padding:1.5rem;transition:opacity .4s}html.light-theme .loading-sequence{background:var(--glass-light-bg);border-color:var(--glass-light-border)}.loading-sequence.show{opacity:1;display:block}.loading-sequence p{color:var(--text);min-height:24px;margin-top:1rem;font-size:1rem}.progress-bar{background-color:#333;border-radius:4px;width:100%;height:8px;margin-bottom:1rem;overflow:hidden}.progress-fill{background-color:#29b8e3;width:0%;height:100%;transition:width .3s}.fade-in{opacity:0;animation:.7s forwards fadeIn}@keyframes fadeIn{to{opacity:1}}.security-body.fade-out-page{opacity:0;transition:opacity .6s}.hidden{display:none}#settings-container{-webkit-backdrop-filter:blur(12px);text-align:center;z-index:1;background:#1c1c2480;border-radius:16px;width:90%;max-width:360px;margin:2rem auto auto;padding:2.5rem 2rem;position:relative;box-shadow:0 15px 40px #0009}#settings-container h2{color:#f5f5f5;margin-bottom:1.5rem;font-size:1.6rem;font-weight:700}#settings-form{flex-direction:column;align-items:stretch;gap:1rem;display:flex}#settings-form label{color:#ccc;text-align:left;font-size:.9rem}#settings-form select{color:#f5f5f5;background-color:#2b2b33;border:none;border-radius:8px;padding:.6rem;font-size:1rem}#settings-form button{color:#fff;cursor:pointer;background-color:#29b8e3;border:none;border-radius:8px;margin-top:1rem;padding:.75rem;font-size:1rem;transition:background-color .3s,transform .2s}#settings-form button:hover{background-color:#1da7d3;transform:scale(1.05)}:root{--skills-panel:color-mix(in srgb,var(--surface-1)88%,#1a26408c);--skills-panel-alt:color-mix(in srgb,var(--surface-2)82%,#121e3499);--skills-outline:color-mix(in srgb,var(--accent-role)40%,#1a264066);--skills-border:color-mix(in srgb,var(--card-border)70%,#ffffff0f);--skills-border-strong:color-mix(in srgb,var(--accent-role)60%,#14223a8c);--skills-badge-border:color-mix(in srgb,var(--text-muted)20%,#ffffff0a);--skills-shadow:0 16px 40px #08122661;--skills-radius-xl:18px;--skills-radius-lg:14px;--skills-radius-md:10px;--skills-transition-fast:.18s ease;--skills-transition-slow:.28s ease}html.light-theme{--skills-panel:color-mix(in srgb,var(--light-surface-1)90%,#2f45701f);--skills-panel-alt:color-mix(in srgb,var(--light-surface-2)85%,#2f457024);--skills-outline:color-mix(in srgb,var(--light-accent)38%,#283c7840);--skills-border:color-mix(in srgb,var(--light-border)75%,#0000000d);--skills-border-strong:color-mix(in srgb,var(--light-accent)50%,#00000012);--skills-badge-border:color-mix(in srgb,var(--light-text-muted)25%,#0000000a);--skills-shadow:0 18px 46px #0c18302e}.skills-page{box-sizing:border-box;flex-direction:column;gap:clamp(2.75rem,5vw,3.75rem);width:min(100%,1760px);margin:0 auto;padding:clamp(2.75rem,6vw,5rem) clamp(1.5rem,6vw,4.5rem);display:flex}.skills-header{text-align:center;flex-direction:column;align-items:center;gap:.85rem;max-width:960px;margin:0 auto;display:flex}.skills-header h2{letter-spacing:-.02em;margin:0;font-size:clamp(2.4rem,4vw,3rem)}.skills-intro{color:var(--text-muted);margin:0;font-size:1.05rem;line-height:1.65}.skills-filters{flex-wrap:wrap;justify-content:center;align-self:center;align-items:center;gap:.65rem;margin-top:.5rem;display:flex}.skills-filter{border:1px solid var(--skills-border);background:linear-gradient(180deg,color-mix(in srgb,var(--skills-panel)96%,#ffffff05),color-mix(in srgb,var(--skills-panel)92%,#ffffff03));color:var(--text);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:border var(--skills-transition-fast),box-shadow var(--skills-transition-fast),background var(--skills-transition-fast),transform var(--skills-transition-fast);border-radius:999px;justify-self:end;min-height:44px;padding:.6rem 1.25rem;font-size:.85rem;font-weight:600;line-height:1}.skills-filter:hover{transform:translateY(-1px)}.skills-filter[aria-pressed=true]{border-color:var(--skills-outline);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-role)18%,transparent)}.skills-list{gap:1rem;margin-top:.75rem;display:grid}.skills-row{border:1px solid var(--skills-border);background:linear-gradient(180deg,color-mix(in srgb,var(--skills-panel)98%,#ffffff05),color-mix(in srgb,var(--skills-panel-alt)88%,#ffffff03));border-radius:var(--skills-radius-xl);transition:border var(--skills-transition-fast),box-shadow var(--skills-transition-fast),background var(--skills-transition-fast);overflow:hidden}.skills-row:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--skills-panel)90%,#ffffff0a),color-mix(in srgb,var(--skills-panel-alt)94%,#ffffff08))}.skills-row--open{border-color:var(--skills-outline);box-shadow:var(--skills-shadow)}.skills-row-head{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;grid-template-columns:64px 1fr auto;align-items:center;gap:1.5rem;padding:clamp(1.1rem,2.5vw,1.4rem) clamp(1.1rem,2.8vw,1.6rem);display:grid}.skills-row-head:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-role)20%,transparent);outline:none}.skills-row-logo{border-radius:var(--skills-radius-lg);background:color-mix(in srgb,var(--skills-panel-alt)85%,#ffffff0d);place-items:center;width:64px;height:64px;display:grid;box-shadow:inset 0 0 0 1px #ffffff0a}.skills-row-logo img{object-fit:contain;width:36px;height:36px}.skills-row-logo span{font-size:2rem}.skills-row-main{gap:.55rem;min-width:0;display:grid}.skills-row-titleLine{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.skills-row-title{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:800}.skills-row-meta{flex-wrap:wrap;gap:.45rem;display:flex}.skills-badge{border:1px solid var(--skills-badge-border);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--text)90%,var(--text-muted)10%);background:linear-gradient(180deg,color-mix(in srgb,var(--skills-panel)96%,#ffffff08),color-mix(in srgb,var(--skills-panel-alt)92%,#ffffff05));border-radius:999px;justify-self:end;padding:.25rem .75rem;font-size:.8rem;font-weight:600}.skills-row-summary{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.6}.skills-row-chevron{border:1px solid color-mix(in srgb,var(--accent-role)58%,#0a1a2eb3);color:#f8fdff;width:40px;height:40px;transition:transform var(--skills-transition-fast),border var(--skills-transition-fast),background var(--skills-transition-fast),color var(--skills-transition-fast);background:linear-gradient(145deg,#245c8ee6 0%,#0a1a2ee0 100%);border-radius:999px;justify-self:end;place-items:center;display:grid}.skills-row-chevron-icon{stroke:currentColor;stroke-width:2.4px;fill:none;pointer-events:none;width:18px;height:18px}.skills-row-head.is-open .skills-row-chevron{color:color-mix(in srgb,var(--accent-role)82%,#fff 18%)}.skills-row-head:hover .skills-row-chevron{border-color:color-mix(in srgb,var(--accent-role)74%,#14304ea6);background:linear-gradient(145deg,#3684baf2 0%,#12304ce6 100%);transform:translateY(-1px)}.skills-row-head:focus-visible .skills-row-chevron{border-color:var(--skills-outline);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-role)22%,transparent)}html.light-theme .skills-row-chevron{border-color:color-mix(in srgb,var(--accent-role)42%,#4c80b873);color:color-mix(in srgb,var(--accent-role)66%,#004c6873);background:linear-gradient(160deg,#f0fafffa 0%,#dcecfae6 100%);box-shadow:0 10px 20px #6084ae38}html.light-theme .skills-row-head:hover .skills-row-chevron{border-color:color-mix(in srgb,var(--accent-role)55%,#70a0d280);color:color-mix(in srgb,var(--accent-role)75%,#00526e66);background:linear-gradient(160deg,#f6fcfffc 0%,#e8f6fcf0 100%)}.skills-row-drawer{border-top:1px solid var(--skills-border);background:linear-gradient(180deg,color-mix(in srgb,var(--skills-panel-alt)95%,#ffffff05),color-mix(in srgb,var(--skills-panel)90%,#ffffff03));opacity:0;max-height:0;transition:max-height var(--skills-transition-slow),opacity var(--skills-transition-slow),padding var(--skills-transition-slow);padding:0 clamp(1.2rem,3vw,1.7rem);overflow:hidden}.skills-row-drawer.is-open{opacity:1;max-height:900px;padding:clamp(1.1rem,2.5vw,1.35rem) clamp(1.2rem,3vw,1.7rem) clamp(1.4rem,3vw,2rem)}.skills-drawer{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.5vw,1.6rem);display:grid}.skills-drawer-column{border:1px solid var(--skills-border);border-radius:var(--skills-radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--skills-panel-alt)94%,#ffffff08),color-mix(in srgb,var(--skills-panel)88%,#ffffff04));gap:.75rem;padding:clamp(.85rem,2vw,1.1rem);display:grid;box-shadow:inset 0 0 0 1px #ffffff07}.skills-drawer-title{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--text)88%,var(--text-muted)12%);margin:0;font-size:.95rem;font-weight:700}.skills-drawer-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.skills-drawer-item{color:var(--text-muted);grid-template-columns:18px 1fr;align-items:start;gap:.75rem;font-size:.93rem;line-height:1.55;display:grid}.skills-drawer-dot{background:radial-gradient(circle at 35% 35%,var(--accent-role),color-mix(in srgb,var(--accent-role)35%,#fff9));width:9px;height:9px;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent-role)45%,transparent));border-radius:50%;margin-top:6px}.skills-visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1200px){.skills-row-head{grid-template-columns:56px 1fr auto;gap:1.25rem}.skills-row-logo{width:56px;height:56px}.skills-drawer{grid-template-columns:1fr}}@media (max-width:820px){.skills-page{width:100%;padding:clamp(2.25rem,7vw,3.25rem) clamp(1.25rem,6vw,2.25rem)}.skills-row-drawer.is-open{max-height:1200px}.skills-row-head{grid-template-columns:48px 1fr auto;gap:1rem}.skills-row-logo{width:48px;height:48px}.skills-row-title{font-size:1.05rem}.skills-row-summary{font-size:.9rem}}@media (max-width:540px){.skills-page{padding:2rem 1.1rem 2.75rem}.skills-header{text-align:left;align-items:flex-start}.skills-row-head{grid-template-columns:minmax(44px,1fr) auto;grid-template-areas:"logo toggle""main main";padding:1rem}.skills-row-logo{grid-area:logo}.skills-row-chevron{grid-area:toggle;justify-self:end}.skills-row-main{grid-area:main}.skills-row-titleLine{flex-direction:column;align-items:flex-start;gap:.6rem}.skills-row-meta{justify-content:flex-start}}@media (min-width:1900px){.skills-page{width:min(88vw,1920px)}.skills-row-head{grid-template-columns:72px 1fr auto}.skills-row-logo{width:72px;height:72px}}.welcome-hero{flex-direction:column;gap:clamp(2rem,5vw,3rem);max-width:1150px;margin:clamp(100px,18vh,100px) auto 0;padding:0 clamp(1.5rem,4vw,2.5rem);display:flex}.welcome-header{border-radius:calc(var(--radius-xl) + 10px);background:radial-gradient(120% 140% at -10% -20%,#34c6d833,transparent),linear-gradient(160deg,color-mix(in srgb,var(--surface-1)95%,#34c6d80f),#081430d1);border:1px solid color-mix(in srgb,var(--card-border)70%,transparent);grid-template-columns:minmax(360px,1.2fr) minmax(220px,.8fr);align-items:stretch;gap:clamp(1.5rem,3.5vw,2.25rem);padding:clamp(1.8rem,4vw,2.6rem);display:grid;position:relative;box-shadow:0 45px 90px #060e2059,inset 0 1px #ffffff14}.welcome-card{border-radius:var(--radius-xl);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;position:relative}.welcome-info-card{padding:clamp(2.4rem,5vw,3.2rem);display:flex}.welcome-portrait-card{justify-content:center;align-items:center;padding:clamp(1.8rem,4vw,2.4rem);display:flex}.welcome-text{color:var(--text);flex-direction:column;gap:clamp(1.25rem,3vw,1.75rem);font-family:Roboto,sans-serif;display:flex}.welcome-heading{flex-direction:column;gap:.5rem;display:flex}.welcome-heading h1{color:var(--heading);margin:0 0 .5rem;font-size:clamp(2.2rem,4vw,2.7rem)}.welcome-tagline{letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb,var(--accent-role)22%,transparent);color:var(--heading);border:1px solid color-mix(in srgb,var(--accent-role)40%,transparent);border-radius:999px;padding:.35rem .9rem;font-size:.95rem;display:inline-block}.welcome-body p{margin:0;font-size:1.05rem;line-height:1.65}.welcome-body{flex-direction:column;gap:1rem;display:flex}.welcome-notice{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.5}.hero-actions{flex-wrap:wrap;gap:.8rem;display:flex}.hero-btn{border-radius:999px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.hero-btn svg{width:1rem;height:1rem}.hero-btn-primary{background:linear-gradient(135deg,var(--accent-role),#5269ffd9);color:var(--surface-1);box-shadow:var(--elevation-medium)}.hero-btn-primary:hover{box-shadow:var(--elevation-high);transform:translateY(-2px)}.hero-btn-secondary{border:1px solid color-mix(in srgb,var(--accent-role)45%,transparent);color:var(--accent-role);background:0 0}.hero-btn-secondary:hover{background:color-mix(in srgb,var(--accent-role)18%,transparent)}.welcome-portrait{justify-content:center;display:flex}.welcome-portrait img{width:clamp(360px,26vw,380px);box-shadow:var(--elevation-low);object-fit:cover;border-radius:18px;transition:transform .3s,box-shadow .3s}.welcome-portrait img:hover{box-shadow:var(--elevation-medium);transform:translateY(-2px)}.welcome-metrics{flex-direction:column;gap:.75rem;display:flex}.metrics-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.8rem}.metrics-list{flex-wrap:wrap;gap:.6rem;display:flex}.metric-chip{background:color-mix(in srgb,var(--surface-1)95%,#34c6d826);border:1px solid color-mix(in srgb,var(--accent-role)25%,transparent);box-shadow:var(--elevation-low);border-radius:999px;align-items:center;gap:.6rem;padding:.55rem .85rem;display:inline-flex}.metric-chip .metric-icon{background:color-mix(in srgb,var(--accent-role)22%,transparent);width:1.4rem;height:1.4rem;color:var(--accent-role);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.metric-icon svg{width:.9rem;height:.9rem}.metric-chip-copy{color:var(--heading);flex-direction:column;gap:.15rem;display:flex}.metric-chip-value{font-size:.85rem;font-weight:600;line-height:1.3}.metric-chip-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem}html.light-theme .welcome-header{background:radial-gradient(120% 135% at -10% -18%,color-mix(in srgb,var(--accent-role)18%,transparent)0%,transparent 68%),linear-gradient(150deg,color-mix(in srgb,var(--surface-1)98%,#2fb6c714)0%,color-mix(in srgb,var(--surface-2)95%,#81b2ff1f)100%);border:1px solid color-mix(in srgb,var(--card-border)45%,transparent);box-shadow:0 20px 48px #7090aa2e,inset 0 1px #ffffffb8}html.light-theme .welcome-card,html.light-theme .welcome-info-card,html.light-theme .welcome-portrait-card{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0}html.light-theme .welcome-portrait-card{padding:clamp(1.4rem,4vw,2rem)}html.light-theme .welcome-tagline{background:color-mix(in srgb,var(--accent-role)16%,#ffffffb8);border-color:color-mix(in srgb,var(--accent-role)28%,transparent)}@media (max-width:1000px){.welcome-header{grid-template-columns:1fr;padding:clamp(1.4rem,6vw,1.9rem)}.welcome-info-card,.welcome-portrait-card{padding:clamp(1.6rem,7vw,2.2rem)}.welcome-text{text-align:center;align-items:center}.hero-actions{justify-content:center}.welcome-portrait img{width:220px}}@media (max-width:640px){.metric-chip{justify-content:center}}.about-section{box-sizing:border-box;background:0 0;flex-direction:column;gap:4.5rem;max-width:1100px;margin:0 auto;padding:6rem clamp(1.25rem,4vw,2rem) 4rem;display:flex}.about-card{opacity:0;transition:opacity 1s ease,transform 1s ease,background var(--motion-normal),box-shadow var(--motion-normal),border-color var(--motion-normal);background:color-mix(in srgb,var(--surface-1)92%,#34c6d80f);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-medium);box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:clamp(2rem,6vw,3.5rem);padding:1.75rem clamp(1.75rem,5vw,2.5rem);display:flex;transform:translateY(40px)}.about-card.visible{opacity:1;transform:translateY(0)}.about-card.reversed{flex-direction:row-reverse}.about-image{cursor:default;flex:1;justify-content:center;min-width:280px;max-width:480px;display:flex;position:relative}.about-image img{width:100%;max-width:360px;height:auto;box-shadow:var(--elevation-low);object-fit:cover;border-radius:20px;transition:transform .4s,box-shadow .4s}.about-image img:hover{box-shadow:var(--elevation-medium);transform:scale(1.05)}.about-text{text-align:left;max-width:560px;color:var(--text);flex:1;font-size:1.05rem;line-height:1.6}.about-text h2{opacity:0;margin-bottom:1rem;font-size:2rem;transition:opacity 1s,transform 1s;transform:translate(-30px)}.about-card.visible .about-text h2{opacity:1;transform:translate(0)}.about-text p{font-size:1.15rem;line-height:1.7}.about-visual{aspect-ratio:1;border-radius:var(--radius-lg);min-width:260px;max-width:360px;color:var(--surface-1);letter-spacing:.04em;text-transform:uppercase;box-shadow:var(--elevation-low);background:linear-gradient(135deg,#3c96ffd9,#6228d7c7);flex:1;justify-content:center;align-items:center;font-weight:600;display:flex;position:relative;overflow:hidden}.about-visual span{z-index:1}.about-visual:after{content:"";pointer-events:none;background:radial-gradient(circle at 20% 20%,#ffffff40,#0000 60%),radial-gradient(circle at 80% 80%,#fff3,#0000 55%);position:absolute;inset:0}.about-visual--hero{background:linear-gradient(135deg,#34c6d8e6,#4c35d7d1)}.about-visual--strengths{background:linear-gradient(135deg,#ff7e5fe0,#feb47bd1)}.about-visual--projects{background:linear-gradient(135deg,#667eeae0,#764ba2d1)}.about-visual--metrics{background:linear-gradient(135deg,#2dc5fde6,#5ceb9ed1)}.about-visual--cta{background:linear-gradient(135deg,#ff8fb2e6,#ffdd9fd1)}.about-highlights,.about-list,.quick-facts{gap:1rem;margin-top:1.5rem;padding:0;list-style:none;display:grid}.about-highlights li{padding-left:1.5rem;font-weight:600;position:relative}.about-highlights li:before{content:"";background:linear-gradient(135deg,var(--accent),#ffffffa6);border-radius:999px;width:.75rem;height:.75rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}.about-list li{background:color-mix(in srgb,var(--surface-1)92%,#34c6d814);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--card-border)85%,transparent);box-shadow:var(--elevation-low);flex-direction:column;gap:.35rem;padding:1rem 1.25rem;display:flex}.about-list strong{letter-spacing:.01em;color:var(--text-strong,var(--text));font-size:1rem}.about-list span{color:var(--text);font-size:.95rem;line-height:1.55}.about-list--compact li{padding:.75rem 1rem}.quick-facts li{border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-1)95%,#93c5fd1f);border:1px solid color-mix(in srgb,var(--card-border)80%,transparent);align-items:center;gap:.8rem;padding:1rem 1.25rem;font-weight:600;display:flex}.about-cta-link{background:linear-gradient(135deg,var(--accent),#5269ffd9);color:var(--surface-1);letter-spacing:.02em;box-shadow:var(--elevation-medium);border-radius:999px;justify-content:center;align-items:center;margin-top:1.75rem;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;transition:transform .25s,box-shadow .25s;display:inline-flex}.about-cta-link:hover{box-shadow:var(--elevation-high);transform:translateY(-2px)}.about-cta-link:focus-visible{outline:2px solid var(--surface-1);outline-offset:3px}@media (max-width:1200px){.about-card,.about-card.reversed{text-align:left;flex-direction:column}.about-text{text-align:left;max-width:100%}.about-image img{max-width:90vw}.about-text h2{font-size:2rem}.about-text p{padding:0 1rem;font-size:1.05rem}.about-visual{aspect-ratio:1;width:min(65vw,260px);max-width:260px}.about-section{padding-top:5rem}}@media (max-width:720px){.about-section{gap:3.25rem;padding:4.75rem 1.5rem 3.25rem}.about-card{padding:1.5rem 1.25rem}.about-image{width:100%;min-width:0;max-width:none}.about-image img{max-width:100%}.about-text{padding:0}}@media (max-width:480px){.about-section{padding:4rem 1.1rem 2.75rem}.about-card{gap:1.5rem;padding:1.35rem 1rem}}:root{--experience-max-width:1100px}.experience-section{color:var(--text);padding:clamp(3rem,7vw,5rem) clamp(1.25rem,5vw,3rem)}.experience-container{max-width:var(--experience-max-width);flex-direction:column;gap:clamp(2rem,5vw,3rem);margin:0 auto;display:flex}.experience-header{text-align:center;flex-direction:column;gap:.75rem;max-width:720px;margin:0 auto;display:flex}.experience-header h2{margin:0;font-size:clamp(2.1rem,4vw,2.75rem)}.experience-header p{color:var(--text-muted);font-size:1rem;line-height:1.7}.experience-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(1rem,3vw,1.5rem);margin:0;padding:0;list-style:none;display:grid}.metric-card{border:1px solid color-mix(in srgb,var(--card-border)60%,transparent);background:radial-gradient(circle at top,#ffffff0d,transparent)color-mix(in srgb,var(--surface-1)90%,transparent);text-align:center;border-radius:18px;flex-direction:column;gap:.4rem;padding:1.75rem 1.25rem;display:flex}.metric-value{font-size:clamp(2.1rem,5vw,2.8rem);font-weight:700}.metric-label{color:var(--text-muted);font-size:1rem}.metric-caption{color:var(--text-muted);font-size:.85rem}.work-history{border:1px solid color-mix(in srgb,var(--card-border)80%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-1)92%,#ffffff05),color-mix(in srgb,var(--surface-2)96%,#0000000d));box-shadow:var(--elevation-medium);border-radius:24px;padding:clamp(1.5rem,4vw,2rem)}.work-history__header{text-align:center;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.work-history__header h3{margin:0;font-size:clamp(1.4rem,3vw,1.8rem)}.work-history__header p{color:var(--text-muted);text-align:center;max-width:560px;margin:0}.work-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.work-card{border:1px solid color-mix(in srgb,var(--card-border)85%,transparent);background:color-mix(in srgb,var(--surface-1)90%,#ffffff03);border-radius:18px;overflow:hidden}.work-card-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:160px 1fr auto;align-items:center;gap:1rem;padding:1.1rem 1.4rem;display:grid}.work-card-period{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.85rem}.work-card-main{flex-direction:column;gap:.15rem;display:flex}.work-card-main strong{font-size:1.05rem}.work-card-main span{color:var(--text-muted);font-size:.9rem}.work-card-toggle{color:var(--accent-role);font-size:.8rem}.work-card-details{border-top:1px solid color-mix(in srgb,var(--card-border)75%,transparent);flex-direction:column;gap:.75rem;padding:1rem 1.4rem 1.4rem;display:flex}.work-card-duration{color:var(--text-muted);margin:0;font-size:.85rem}.work-card-summary{margin:0;line-height:1.6}.work-card-points{gap:.5rem;margin:0;padding-left:1.2rem;font-size:.95rem;display:grid}.work-card-points li::marker{color:var(--accent-role)}.work-card-tags{flex-wrap:wrap;gap:.35rem;display:flex}.work-card-tags span{border:1px solid color-mix(in srgb,var(--accent-role)45%,transparent);border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.experience-education{border-top:1px solid color-mix(in srgb,var(--card-border)55%,transparent);flex-direction:column;gap:1.5rem;padding-top:clamp(1.5rem,4vw,2.5rem);display:flex}.credential-panel{border:1px solid color-mix(in srgb,var(--card-border)80%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-1)94%,#ffffff05),color-mix(in srgb,var(--surface-2)95%,#00000008));box-shadow:var(--elevation-medium);border-radius:24px;padding:clamp(1.25rem,4vw,1.8rem)}.experience-education-header{text-align:center;flex-direction:column;gap:.4rem;max-width:560px;margin:0 auto 1.5rem;display:flex}.experience-education-header h3{margin:0 0 .4rem;font-size:clamp(1.4rem,3vw,1.8rem)}.experience-education-header p{color:var(--text-muted);margin:0}.credential-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;display:grid}.credential-column{flex-direction:column;gap:.85rem;display:flex}.credential-column h4{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.9rem}.credential-card{border:1px solid color-mix(in srgb,var(--card-border)75%,transparent);background:color-mix(in srgb,var(--surface-1)95%,transparent);box-shadow:var(--elevation-low);border-radius:18px;flex-direction:column;gap:.35rem;padding:1.15rem 1.35rem;display:flex}.credential-card--pending{text-align:center;color:var(--text-muted);justify-content:center}.credential-period{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem}@media (max-width:720px){.work-card-trigger{grid-template-rows:auto;grid-template-columns:1fr;gap:.4rem}.work-card-toggle{justify-self:flex-start}}:root{--font-sans:"Rubik",sans-serif;--font-heading:"Rubik",sans-serif;--font-mono:"JetBrains Mono",monospace;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.5rem;--fs-xxl:2.25rem;--lh-tight:1.25;--lh-default:1.65;--bg:#06090f;--bg-muted:#0d141d;--surface-1:#111a28;--surface-2:#162233;--surface-3:#1f2f45;--obsidian:#050b12;--shell-surface:#0a101bee;--shell-border:#38688371;--shell-highlight:#ffffff14;--text:#e9f5f7;--text-muted:#95a7c2;--heading:#f8fcff;--border:#3e536e5c;--accent-role:#34c6d8;--accent-role-hover:#59dce8;--accent-support:#ffb38a;--accent-support-hover:#ff9d6b;--accent-contrast:#02161b;--success:#46d678;--warning:#f59f00;--error:#fa6b6b;--bg-base:#04070f;--bg-spot-1:#0e121c1f;--bg-spot-2:#4484d82e;--bg-spot-3:#50dccc1f;--bg-sheen:#03070fbf;--bg-gradient:radial-gradient(900px at 18% 22%,#0e121c14,transparent 60%),radial-gradient(650px at 82% -10%,#1c366e1f,transparent 58%),radial-gradient(900px at 50% 120%,#24567814,transparent 68%),linear-gradient(180deg,#081123 0%,var(--bg-sheen)55%,var(--bg-base)100%);--bg-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300' viewBox='0 0 300 300'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.8' numOctaves='3' seed='13' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.09  0 0 0 0 0.18  0 0 0 0 0.27  0 0 0 -1.6 0.95'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");--bg-noise-opacity:.22;--light-bg:#f4f7f8;--light-bg-gradient:radial-gradient(900px at 18% 12%,#c4daff4d,transparent 62%),radial-gradient(650px at 86% -8%,#b2dcff42,transparent 60%),radial-gradient(900px at 60% 115%,#a8eee533,transparent 70%),linear-gradient(180deg,#f8fbff 0%,#edf2f9 45%,#e4ebf5 100%);--light-surface-1:#fff;--light-surface-2:#ecf2f4;--light-surface-3:#dee7eb;--light-text:#1f252b;--light-text-muted:#63707d;--light-heading:#121b24;--light-border:#425d6f2e;--light-accent:#2fb6c7;--light-accent-hover:#2699a9;--light-accent-support:#ffb085;--light-accent-support-hover:#ff9461;--light-accent-contrast:#0a252b;--light-bg-spot-1:#f6dae538;--light-bg-spot-2:#98c6ff33;--light-bg-spot-3:#7dd6cb2e;--light-bg-sheen:#ffffffe6;--dark-bg:var(--bg);--dark-surface:var(--surface-1);--dark-text:var(--text);--dark-heading:var(--heading);--dark-border:var(--border);--dark-button:color-mix(in srgb,var(--accent-role)75%,#02090c 25%);--dark-button-hover:color-mix(in srgb,var(--accent-role-hover)80%,#031117 20%);--accent:var(--accent-role);--accent-hover:var(--accent-role-hover);--underline-light:#fff6;--arrow-filter:invert(0);--card-bg:color-mix(in srgb,var(--surface-1)92%,#34c6d814);--card-bg-muted:color-mix(in srgb,var(--surface-2)88%,#34c6d80a);--card-border:#5989a759;--icon-filter-default:invert(1)brightness(1.05);--icon-filter-hover:invert(1)brightness(1.2);--glass-dark-bg:#0a1228d1;--glass-dark-border:#4884d247;--glass-dark-highlight:#4caadc38;--glass-light-bg:#fffc;--glass-light-border:#43798b38;--glass-light-highlight:#ffffffc7;--glass-blur:18px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--shell-max-width:1200px;--shell-horizontal-gap:clamp(2rem,6vw,3.5rem);--shadow-1:0 10px 24px #030a1438,inset 0 1px 0 #ffffff0d;--shadow-2:0 18px 48px #030c1a52,inset 0 1px 0 #ffffff0a;--shadow-3:0 28px 70px #02081473,inset 0 1px 0 #ffffff0a;--elevation-low:var(--shadow-1);--elevation-medium:var(--shadow-2);--elevation-high:var(--shadow-3);--motion-fast:.12s cubic-bezier(.22,1,.36,1);--motion-normal:.22s cubic-bezier(.22,1,.36,1);--motion-slow:.36s cubic-bezier(.22,1,.36,1);--ease-out-smooth:cubic-bezier(.22,1,.36,1)}html.light-theme{background:var(--light-bg-gradient);--bg:var(--light-bg);--bg-muted:#eef3f5;--surface-1:var(--light-surface-1);--surface-2:var(--light-surface-2);--surface-3:var(--light-surface-3);--text:var(--light-text);--text-muted:var(--light-text-muted);--heading:var(--light-heading);--border:var(--light-border);--accent-role:var(--light-accent);--accent-role-hover:var(--light-accent-hover);--accent-support:var(--light-accent-support);--accent-support-hover:var(--light-accent-support-hover);--accent-contrast:var(--light-accent-contrast);--bg-spot-1:var(--light-bg-spot-1);--bg-spot-2:var(--light-bg-spot-2);--bg-spot-3:var(--light-bg-spot-3);--bg-sheen:var(--light-bg-sheen);--bg-gradient:radial-gradient(950px at 18% 18%,var(--bg-spot-1),transparent 58%),radial-gradient(700px at 88% 0%,var(--bg-spot-2),transparent 60%),radial-gradient(900px at 60% 115%,var(--bg-spot-3),transparent 68%),linear-gradient(180deg,#f7fbff 0%,var(--bg-sheen)50%,var(--light-bg)100%);--card-bg:color-mix(in srgb,var(--light-surface-1)92%,#2fb6c70f);--card-bg-muted:color-mix(in srgb,var(--light-surface-2)88%,#2fb6c70a);--card-border:#425d6f29;--icon-filter-default:invert(0);--icon-filter-hover:invert(0)brightness(.85);--arrow-filter:invert(1);--shell-surface:#fbfcfeea;--shell-border:#9cc0e374;--shell-highlight:#ffffff8c;--glass-dark-bg:#111827b3;--glass-dark-border:#1e2b3f52;--glass-dark-highlight:#40afc12e;--glass-light-bg:#ffffffd6;--glass-light-border:#43798b3d;--glass-light-highlight:#ffffffd1;--shadow-1:0 8px 20px #0a202b1f,inset 0 1px 0 #fff9;--shadow-2:0 16px 36px #0c2d3a2e,inset 0 1px 0 #ffffff80;--shadow-3:0 26px 54px #07202c38,inset 0 1px 0 #ffffff73;--elevation-low:var(--shadow-1);--elevation-medium:var(--shadow-2);--elevation-high:var(--shadow-3);--bg-noise-opacity:.12}html.light-theme body{background:var(--bg);color:var(--text)}.glass-surface{border-radius:var(--radius-xl);background:var(--glass-dark-bg);border:1px solid var(--glass-dark-border);box-shadow:var(--elevation-high);-webkit-backdrop-filter:blur(var(--glass-blur));position:relative}.glass-surface:after{content:"";pointer-events:none;border-radius:inherit;opacity:.65;background:linear-gradient(135deg,transparent 0%,var(--glass-dark-highlight)100%);border:1px solid #0000;position:absolute;inset:0}html.light-theme .glass-surface{background:var(--glass-light-bg);border-color:var(--glass-light-border);box-shadow:var(--elevation-high)}html.light-theme .glass-surface:after{background:linear-gradient(135deg,var(--glass-light-highlight)0%,transparent 75%)}.glass-surface--dark{background:var(--glass-dark-bg);border-color:var(--glass-dark-border);box-shadow:var(--elevation-high)}.glass-surface--dark:after{background:linear-gradient(135deg,transparent 0%,var(--glass-dark-highlight)100%)}.glass-surface--light{background:var(--glass-light-bg);border-color:var(--glass-light-border);box-shadow:var(--elevation-high)}.glass-surface--light:after{background:linear-gradient(135deg,var(--glass-light-highlight)0%,transparent 75%)}.glass-border{border:1px solid var(--glass-dark-border)}html.light-theme .glass-border{border-color:var(--glass-light-border)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-sans);scroll-behavior:smooth;background:var(--bg);width:100%;height:100%;color:var(--text);background-repeat:no-repeat;background-size:cover;background-attachment:fixed;flex-direction:column;display:flex;overflow-y:scroll}body{color:var(--text);font-size:var(--fs-base);line-height:var(--lh-default);z-index:0;background:0 0;flex:1;transition:background .4s,color .4s;position:relative}body:before{content:"";z-index:-2;background:var(--bg-gradient);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;background-image:var(--bg-noise),linear-gradient(120deg,#00000014,#00000005);opacity:var(--bg-noise-opacity);mix-blend-mode:soft-light;background-size:180px 180px,cover;position:fixed;inset:0}html.light-theme body:after{mix-blend-mode:multiply}@media (prefers-reduced-motion:reduce){:root{view-transition-name:none}}::view-transition-old(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-new(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(root){animation-name:vt-fade-scale-out}::view-transition-new(root){animation-name:vt-fade-scale-in}@keyframes vt-fade-scale-out{0%{opacity:1;filter:none;transform:none}to{opacity:0;filter:blur(3px);transform:scale(.985)}}@keyframes vt-fade-scale-in{0%{opacity:0;filter:blur(6px);transform:scale(1.01)}to{opacity:1;filter:none;transform:none}}.logo{view-transition-name:site-logo}#page-main{view-transition-name:page-main}#page-main:focus{outline:none}h1,h2,h3{color:var(--heading);font-family:var(--font-heading);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.5px;margin-bottom:var(--space-3)}h1{font-size:var(--fs-xxl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p,a,li,span,label{color:var(--text)}p{margin-bottom:var(--space-3);max-width:65ch}a{color:inherit;text-decoration:none}a:hover{color:color-mix(in srgb,var(--accent-role)60%,var(--text)40%);text-decoration:underline}:where(a,button,[role=button],input,select,textarea):focus-visible{outline:2px solid color-mix(in hsl,var(--accent-role),white 10%);outline-offset:2px;box-shadow:0 0 0 3px color-mix(in hsl,var(--accent-role),transparent 70%)}.page-wrapper,.section-projektit{padding-top:clamp(64px,10vh,96px)}.page-wrapper{flex-direction:column;width:100%;min-height:100dvh;display:flex}.page-wrapper>main{flex-direction:column;flex:1 0 auto;padding-bottom:clamp(16px,4vh,32px);display:flex}.about-section{padding-top:clamp(64px,10vh,96px)}.scroll-next{text-align:center;margin-top:2rem;position:relative}.arrow-icon{width:40px;height:40px;color:color-mix(in srgb,var(--accent-role)80%,#ffffffb3);stroke-width:1.7px;transition:transform .3s;animation:2s ease-in-out infinite float}.arrow-icon:hover{transform:scale(1.1)}.scroll-navigation{align-items:center;gap:clamp(1rem,3vw,1.5rem);width:min(1100px,100% - clamp(2rem,6vw,3rem));margin:clamp(2rem,5vw,3.25rem) auto clamp(2.5rem,6vw,4rem);display:flex}.scroll-link{border:1px solid color-mix(in srgb,var(--border)70%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-1)92%,#ffffff0d),color-mix(in srgb,var(--surface-2)90%,#ffffff08));min-height:40px;color:var(--heading);letter-spacing:.14em;text-transform:uppercase;transition:transform var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast);box-shadow:var(--elevation-low);-webkit-backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1.05rem;font-size:.8rem;font-weight:600;display:inline-flex}.scroll-link:hover{border-color:color-mix(in srgb,var(--accent-role)48%,var(--border)52%);box-shadow:var(--elevation-medium);transform:translateY(-2px)}.scroll-link:focus-visible{border-color:color-mix(in srgb,var(--accent-role)60%,var(--border)40%);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-role)18%,transparent);outline:none}.scroll-link--prev{margin-right:auto}.scroll-link--next.scroll-link--solo{margin-left:auto}.scroll-link-icon{width:1rem;height:1rem}.scroll-link-label{white-space:nowrap}@media (max-width:640px){.scroll-navigation{justify-content:center;gap:clamp(.75rem,4vw,1.25rem)}.scroll-link{border-radius:50%;min-height:38px;padding:.5rem}.scroll-link-label{display:none}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.surface{background:var(--surface-1);color:var(--text);border:1px solid var(--border);box-shadow:var(--elevation-low)}.surface-2{background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:var(--elevation-low)}.card{background:linear-gradient(165deg,color-mix(in srgb,var(--surface-1)94%,#14244e47)0%,color-mix(in srgb,var(--surface-2)96%,#0a183a52)100%);color:var(--text);border:1px solid color-mix(in srgb,var(--border)70%,#3c72d240);border-radius:var(--radius-lg);box-shadow:var(--elevation-medium);transition:transform var(--motion-normal),box-shadow var(--motion-normal),background var(--motion-normal),border-color var(--motion-normal),filter var(--motion-normal);transform-style:preserve-3d;will-change:transform,box-shadow;position:relative;overflow:hidden}.card:before,.card:after{content:"";pointer-events:none;transition:opacity var(--motion-normal),transform var(--motion-normal);opacity:0;position:absolute;inset:0}.card:before{border-radius:calc(var(--radius-lg) - 2px);opacity:.18;background:linear-gradient(#ffffff2e 0%,#fff0 55%),linear-gradient(135deg,#0000 35%,#20528c2e 100%);inset:1px}.card:after{filter:blur(34px);opacity:0;background:radial-gradient(52% 34% at 50% 12%,#76b0ff42,#0000 72%),radial-gradient(48% 30% at 60% 8%,#3dbad029,#0000 74%);inset:-40%;transform:translateY(16%)}.card:hover,.card:focus-within{box-shadow:var(--elevation-high);background:linear-gradient(160deg,color-mix(in srgb,var(--surface-1)82%,#5a8aff57)0%,color-mix(in srgb,var(--surface-2)90%,#102c506b)100%);border-color:color-mix(in srgb,var(--border)45%,#4692e68c);filter:saturate(1.03);transform:translateY(-6px)scale(1.01)}.card:hover:after,.card:focus-within:after{opacity:.54;transform:translateY(6%)}.card:hover:before,.card:focus-within:before{opacity:.24}@media (prefers-reduced-motion:reduce){.card,.card:hover,.card:focus-within,.card:after{transform:none}}html.light-theme .card{background:linear-gradient(165deg,color-mix(in srgb,var(--surface-1)92%,#aac2ff52)0%,color-mix(in srgb,var(--surface-2)95%,#cbe4f473)100%);border-color:color-mix(in srgb,var(--light-border)72%,#8877ff40)}html.light-theme .card:before{opacity:.4;background:linear-gradient(#ffffff8c 0%,#fff0 60%),linear-gradient(135deg,#0000 35%,#b0d3ff40 100%)}html.light-theme .card:hover,html.light-theme .card:focus-within{background:linear-gradient(160deg,color-mix(in srgb,var(--surface-1)82%,#9ebfff61)0%,color-mix(in srgb,var(--surface-2)90%,#c6e8f68c)100%);border-color:color-mix(in srgb,var(--light-border)40%,var(--accent-role)60%)}html.light-theme .card:after{filter:blur(42px);background:radial-gradient(55% 38% at 45% 12%,#b8d4ff61,#0000 70%),radial-gradient(52% 34% at 58% 10%,#8cddec47,#0000 76%)}.btn{border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);border:1px solid #0000;align-items:center;gap:.5rem;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent-role);color:var(--accent-contrast);box-shadow:var(--elevation-low)}.btn-primary:hover{background:var(--accent-role-hover);color:var(--accent-contrast);box-shadow:var(--elevation-medium)}.btn-ghost{color:var(--text);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--border)60%,var(--accent-role)40%)}.contact-btn{color:var(--accent-contrast);transition:transform var(--motion-fast),box-shadow var(--motion-fast),filter var(--motion-fast);border:1px solid color-mix(in srgb,var(--accent-role)48%,#0a162c73);background:linear-gradient(155deg,#30bad6d9 0%,#3676e8e0 100%);border-radius:999px;margin-left:1rem;padding:.5rem 1.15rem;font-weight:600;line-height:1;text-decoration:none;box-shadow:0 18px 32px #122a4c66,inset 0 1px #ffffff59}.contact-btn:hover{filter:saturate(1.05);transform:translateY(-3px)scale(1.01);box-shadow:0 24px 38px #0c1e3a73,inset 0 1px #ffffff73}html.light-theme .contact-btn{color:var(--light-heading);border-color:color-mix(in srgb,var(--accent-role)35%,#ffffffb3);background:linear-gradient(150deg,#9ecefff2 0%,#7eacffeb 100%);box-shadow:0 18px 30px #6890be38,inset 0 1px #ffffffbf}html.light-theme .contact-btn:hover{filter:saturate(1.05);box-shadow:0 24px 36px #6890be42,inset 0 1px #ffffffd9}.navbar-outer{z-index:1000;width:min(var(--shell-max-width),calc(100% - var(--shell-horizontal-gap)));max-width:var(--shell-max-width);background-clip:padding-box;background:var(--shell-surface);border:1px solid var(--shell-border);-webkit-backdrop-filter:blur(26px)saturate(160%)brightness(1.02);border-radius:36px;padding:.65rem .9rem;position:fixed;top:clamp(12px,2.5vh,18px);left:50%;overflow:visible;transform:translate(-50%);box-shadow:0 24px 45px #02060e8c,inset 0 1px #ffffff14}.navbar-outer:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,var(--shell-highlight)0%,#ffffff08 32%,transparent 70%);opacity:.35;position:absolute;inset:1px}html.light-theme .navbar-outer{background:var(--shell-surface);border:1px solid var(--shell-border);box-shadow:0 18px 36px #5a7aa43d,inset 0 1px #ffffffe6}html.light-theme .navbar-outer:after{background:linear-gradient(180deg,var(--shell-highlight)0%,#ffffff14 35%,transparent 70%);opacity:.55}html.light-theme .logo{color:var(--light-heading);text-shadow:0 12px 20px #6890be40,0 0 14px #88acff73}.navbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;display:flex}.navbar-actions{align-items:center;gap:.6rem;margin-left:auto;display:flex}.navbar-mobile-controls{align-items:center;gap:.6rem;margin-left:auto;display:none}.navbar-icon{width:22px;height:22px;stroke:color-mix(in srgb,var(--accent-role)75%,#ffffffd9);stroke-width:1.9px;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke var(--motion-fast),transform var(--motion-fast)}.navbar-icon-button .navbar-icon{stroke:color-mix(in srgb,var(--accent-role)82%,#ffffffe6)}.navbar-icon-button:hover .navbar-icon,.navbar-icon-button:focus-visible .navbar-icon{stroke:color-mix(in srgb,var(--accent-role)90%,#fffffff2)}.logo{color:var(--heading);white-space:nowrap;letter-spacing:.01em;view-transition-name:site-logo;text-shadow:0 10px 18px #040c1a66,0 0 18px #5486ff59;font-size:1.15rem;font-weight:700}.nav-links{flex-wrap:wrap;flex:1;justify-content:center;gap:.85rem;display:flex}.nav-links a{color:color-mix(in srgb,var(--heading)78%,transparent 22%);letter-spacing:.01em;transition:background-color 1.5s var(--ease-out-smooth),color 1.4s var(--ease-out-smooth),box-shadow 1.5s var(--ease-out-smooth),transform 1.5s var(--ease-out-smooth);border-radius:999px;padding:.38rem .85rem;font-size:.92rem;font-weight:500;text-decoration:none;position:relative}.nav-links a.active{background:color-mix(in srgb,var(--accent-role)32%,#081834bf);color:var(--heading);box-shadow:inset 0 0 0 1px #ffffff24,0 4px 14px #00000040}.nav-links a:after{content:"";background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-role)80%,#fff 15%),transparent);opacity:0;height:2px;transition:opacity .26s var(--ease-out-smooth),transform .32s var(--ease-out-smooth);border-radius:999px;position:absolute;bottom:6px;left:18%;right:18%;transform:translateY(4px)}.nav-links a:hover{background-color:color-mix(in srgb,var(--surface-2)72%,#3492e440);color:color-mix(in srgb,var(--heading)92%,transparent 8%);transform:translateY(-1px);box-shadow:0 8px 20px #0003}.nav-links a:hover:after{opacity:1;transform:translateY(0)}html.light-theme .nav-links a{color:color-mix(in srgb,var(--light-heading)70%,transparent 30%)}html.light-theme .nav-links a.active{background:color-mix(in srgb,var(--accent-role)32%,#ffffffd9);color:var(--light-heading);box-shadow:inset 0 0 0 1px #7eacff59,0 6px 18px #789cd459}.language-toggle{align-items:center;gap:.4rem;display:flex}.language-btn{cursor:pointer;transition:background-color var(--motion-fast);background:0 0;border:none;border-radius:6px;padding:.2rem}.language-btn:hover{background-color:color-mix(in srgb,var(--surface-2)70%,var(--accent-role)30%)}.flag-icon{width:22px;height:22px;display:block}.hamburger{cursor:pointer;color:color-mix(in srgb,var(--heading)92%,#ffffffe6);border:1px solid color-mix(in srgb,var(--glass-dark-border)78%,#5494f085);transition:background var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);background:linear-gradient(155deg,#1e3a7eb3 0%,#122a5c9e 100%),linear-gradient(32deg,#3098de47,#28b4ce29);border-radius:18px;justify-content:center;align-items:center;gap:.35rem;padding:.34rem .5rem;display:none;box-shadow:0 14px 28px #06102866,inset 0 1px #ffffff24}.hamburger .navbar-icon{stroke-width:1.5px;width:22px;height:22px}.hamburger:hover{color:#fff;background:linear-gradient(155deg,#3a8af0d9 0%,#1c46b0c7 100%),linear-gradient(32deg,#46bcf042,#40d2e62e);border-color:#60b0ffc7;transform:translateY(-1px);box-shadow:0 18px 32px #08122c73,inset 0 1px #ffffff2e}html.light-theme .hamburger{color:color-mix(in srgb,var(--light-heading)85%,#304a7666);border-color:color-mix(in srgb,var(--glass-light-border)78%,#7eb8ff8c);background:linear-gradient(155deg,#dceaffeb 0%,#cadcf8e0 100%),linear-gradient(28deg,#9cd2ff42,#8cd6ee2e);box-shadow:0 12px 24px #668cbc38,inset 0 1px #ffffffe0}html.light-theme .hamburger:hover{border-color:color-mix(in srgb,var(--accent-role)45%,#ffffffbf);color:color-mix(in srgb,var(--light-heading)92%,#28447659);background:linear-gradient(155deg,#e2eefff5 0%,#d0e2fce6 100%),linear-gradient(28deg,#a6d8ff4d,#92dcf033)}.settings-toggle,.navbar-icon-button{cursor:pointer;border-radius:var(--radius-sm);font:inherit;border:1px solid color-mix(in srgb,var(--glass-dark-border)52%,#4284dc59);color:color-mix(in srgb,var(--heading)85%,transparent 15%);transition:color var(--motion-fast),background var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast);background:linear-gradient(160deg,#101e389e 0%,#0a162c75 100%);justify-content:center;align-items:center;padding:.32rem .42rem;display:inline-flex;box-shadow:inset 0 1px #ffffff14,0 8px 18px #060c1c59}.settings-toggle:hover,.settings-toggle-mobile:hover,.navbar-icon-button:hover{color:color-mix(in srgb,var(--heading)95%,transparent 5%);border-color:color-mix(in srgb,var(--accent-role)42%,#2860cc59);background:linear-gradient(155deg,#22488cb8 0%,#0e20448c 100%);box-shadow:0 12px 24px #060c1c5c,inset 0 1px #ffffff1f}.navbar-icon-button{color:var(--accent-contrast);border-color:color-mix(in srgb,var(--accent-role)48%,#040c1c8c);background:linear-gradient(155deg,#3acee057 0%,#124e7042 100%);border-radius:999px;padding:.35rem .45rem;box-shadow:inset 0 1px #ffffff40,0 12px 26px #040e1e61}.navbar-icon-button:hover{color:var(--accent-contrast);background:linear-gradient(155deg,#59dce8a6 0%,#125c6e66 100%)}.settings-toggle-mobile{all:unset;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--glass-dark-border)52%,#4284dc59);color:color-mix(in srgb,var(--heading)85%,transparent 15%);transition:color var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast);background:linear-gradient(160deg,#101e3899 0%,#0a162c7a 100%);justify-content:center;align-items:center;padding:.32rem;display:none}.settings-toggle-mobile:hover{color:var(--heading);border-color:color-mix(in srgb,var(--accent-role)40%,transparent);background:linear-gradient(155deg,#264e74b3 0%,#0f203e80 100%);box-shadow:0 12px 25px #040c1a57}html.light-theme .settings-toggle,html.light-theme .navbar-icon-button,html.light-theme .settings-toggle-mobile{border-color:color-mix(in srgb,var(--glass-light-border)75%,#84b4ff73);color:color-mix(in srgb,var(--light-heading)70%,transparent 30%);background:linear-gradient(160deg,#f4f8ffd9 0%,#e7f0f9bf 100%);box-shadow:inset 0 1px #ffffffd9,0 8px 16px #4c78a62e}html.light-theme .settings-toggle:hover,html.light-theme .navbar-icon-button:hover,html.light-theme .settings-toggle-mobile:hover{border-color:color-mix(in srgb,var(--accent-role)35%,#ffffffa6);color:var(--light-heading);background:linear-gradient(155deg,#cadaffe6 0%,#e2edf8d1 100%)}.settings-toggle .navbar-icon,.settings-toggle-mobile .navbar-icon{stroke:color-mix(in srgb,var(--accent-role)70%,#ffffffd9)}.settings-toggle:hover .navbar-icon,.settings-toggle:focus-visible .navbar-icon,.settings-toggle-mobile:hover .navbar-icon,.settings-toggle-mobile:focus-visible .navbar-icon{stroke:color-mix(in srgb,var(--accent-role)90%,#fffffff2)}.mobile-menu{width:100%;max-height:0;color:var(--heading);box-shadow:none;text-align:center;z-index:999;pointer-events:none;transition:max-height var(--motion-slow),padding var(--motion-normal),margin-top var(--motion-normal),background var(--motion-normal),border-color var(--motion-normal),border-width var(--motion-normal),border-radius var(--motion-normal),box-shadow var(--motion-normal);background:0 0;border:0;border-radius:0;flex-direction:column;margin-top:0;padding:0;display:flex;position:absolute;top:100%;left:0;overflow:hidden}.mobile-menu:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;transition:opacity var(--motion-normal);background:linear-gradient(145deg,#ffffff52 0%,#ffffff14 48%,#0000 80%);position:absolute;inset:1px}.mobile-menu.show{border-width:1px;border-color:color-mix(in srgb,var(--glass-dark-border)86%,#569ef48c);max-height:80vh;color:color-mix(in srgb,var(--heading)97%,#fffffff5);-webkit-backdrop-filter:blur(30px)saturate(160%);pointer-events:auto;background:linear-gradient(198deg,#0a142af5 0%,#060e20eb 55%,#030918e0 100%),linear-gradient(30deg,#3e94e24d,#34c4d833);border-radius:28px;margin-top:clamp(.35rem,2.4vw,.65rem);padding:1.3rem clamp(1rem,3.2vw,1.65rem) 1.65rem;box-shadow:0 30px 68px #060e209e,inset 0 1px #ffffff2e}.mobile-menu.show:before{opacity:.52}html.light-theme .mobile-menu.show{color:color-mix(in srgb,var(--light-heading)95%,#20345894);border-color:color-mix(in srgb,var(--glass-light-border)86%,#88bcff99);background:linear-gradient(198deg,#fffffff7 0%,#f2f8fff0 60%,#e8f0fce8 100%),linear-gradient(32deg,#9cd2ff4d,#8cd6ee33);box-shadow:0 26px 56px #4e7cac42,inset 0 1px #fffffff0}.mobile-menu a,.mobile-menu button{color:color-mix(in srgb,var(--heading)92%,#ffffffe6);text-align:left;cursor:pointer;text-shadow:0 10px 24px #040c1c80;background:0 0;border:none;padding:.75rem 1rem;font-size:1rem;font-weight:600;text-decoration:none}html.light-theme .mobile-menu a,html.light-theme .mobile-menu button{color:color-mix(in srgb,var(--light-heading)90%,#3e68a07a);text-shadow:0 8px 18px #789cc642}.mobile-menu a:hover{color:#fff;background:linear-gradient(90deg,#4688de47,#34c4d82e)}html.light-theme .mobile-menu a:hover,html.light-theme .mobile-menu button:hover{color:color-mix(in srgb,var(--light-heading)96%,#26427861);background:linear-gradient(90deg,#9cd2ff3d,#84d6ee29)}.mobile-menu .contact-btn{justify-content:center;align-self:center;width:calc(100% - 2rem);margin-top:.75rem;margin-left:0}html.light-theme .mobile-menu.show{border-color:color-mix(in srgb,var(--glass-light-border)82%,#88bcff8c);box-shadow:0 26px 54px #4e7cac3d}html.light-theme .mobile-menu.show:before{opacity:.56}@media (max-width:1200px){.nav-links,.navbar-actions{display:none}.navbar{flex-wrap:nowrap}.navbar-mobile-controls{display:flex}.hamburger{align-items:center;gap:.75rem;margin-left:0;display:flex}.navbar{justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .8rem;display:flex}.navbar-outer{padding:.6rem .8rem}.logo{font-size:1.05rem}.hamburger .navbar-icon{width:24px;height:24px}.settings-toggle-mobile{display:inline-flex}}@media (max-width:960px){.navbar-outer{width:min(var(--shell-max-width),calc(100% - clamp(1.5rem,6vw,2.5rem)));border-radius:32px}}@media (max-width:640px){.navbar-outer{border-radius:28px;width:calc(100% - clamp(1rem,6vw,1.75rem));max-width:none;padding:.55rem .75rem}}@media (max-width:480px){.navbar-outer{width:auto;left:clamp(.75rem,4vw,1.25rem);right:clamp(.75rem,4vw,1.25rem);transform:none}}#toggle,#toggle-mobile{opacity:0;pointer-events:none;border:none;width:0;height:0;margin:0;padding:0;display:none;position:absolute}.toggle-label{background:color-mix(in srgb,var(--surface-2)85%,var(--bg)15%);cursor:pointer;width:70px;height:36px;transition:background-color var(--motion-normal);border-radius:50px;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 22px #00000040}.toggle-icon{z-index:2;background-color:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:transform .6s;display:flex;position:absolute;top:3px;left:3px}.toggle-icon .kuva{object-fit:contain;width:18px;height:18px;transition:opacity .6s;position:absolute}.toggle-icon .sun{opacity:1;top:50%;left:50%;transform:translate(-50%,-50%)}.toggle-icon .moon{opacity:0;top:50%;left:50%;transform:translate(-50%,-50%)}#toggle:checked+.toggle-label .toggle-icon,#toggle-mobile:checked+.toggle-label .toggle-icon{transform:translate(34px)}#toggle:checked+.toggle-label .sun,#toggle-mobile:checked+.toggle-label .sun{opacity:0}#toggle:checked+.toggle-label .moon,#toggle-mobile:checked+.toggle-label .moon{opacity:1}.settings-toggle{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;display:inline-flex}.settings-toggle img{filter:invert()}html.light-theme .settings-toggle img{filter:invert(0)}.settings-popup{color:var(--text);border-radius:var(--radius-md);z-index:9999;flex-direction:column;gap:.75rem;width:240px;padding:1rem;font-size:.95rem;display:flex;position:absolute;top:80px;right:0}.settings-popup.hidden{display:none}.settings-popup h3{margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.settings-popup label{margin-top:.5rem;font-weight:500}.settings-popup select,.settings-popup button{border:1px solid var(--card-border);width:100%;color:inherit;cursor:pointer;background-color:#0000;border-radius:6px;padding:.4rem .6rem;font-size:.95rem}#settings-popup select{appearance:none;border:1px solid var(--light-border);color:inherit;cursor:pointer;background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M70 100 L40 60 H100 Z' fill='%23999999'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:.7rem;border-radius:6px;width:100%;padding:.5rem 1rem;font-size:.95rem}html.light-theme #settings-popup select{border-color:var(--card-border);color:var(--light-text);background-color:#ffffffd9}#settings-popup select:focus,#settings-popup select:hover{border-color:var(--accent-role);background-color:#34c6d814;outline:none}.settings-popup button{background:var(--accent-role);color:var(--accent-contrast);border-radius:var(--radius-md);box-shadow:var(--elevation-low);transition:background var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);border:none}.settings-popup button:hover{background:var(--accent-role-hover);box-shadow:var(--elevation-medium);transform:translateY(-1px)}.settings-popup .settings-toggle-switch{--active-index:0;--toggle-background:linear-gradient(135deg,color-mix(in srgb,var(--surface-1)88%,#ffffff0f),color-mix(in srgb,var(--surface-2)82%,#00000014));border:1px solid color-mix(in srgb,var(--light-border)78%,transparent);background:var(--toggle-background);color:var(--heading);text-transform:uppercase;letter-spacing:.18em;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface-3)65%,transparent);cursor:pointer;transition:border-color var(--motion-fast),box-shadow var(--motion-fast);border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:.25rem;padding:.35rem;font-size:.8rem;font-weight:600;display:grid;position:relative;overflow:hidden}.settings-popup .settings-toggle-switch:focus-visible{border-color:color-mix(in srgb,var(--accent-role)48%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-role)18%,transparent);outline:none}.settings-popup .settings-toggle-switch:hover{border-color:color-mix(in srgb,var(--accent-role)24%,var(--light-border)76%);background:var(--toggle-background);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface-3)65%,transparent);transform:none}.settings-popup .settings-toggle-switch-option{z-index:2;color:inherit;justify-content:center;align-items:center;padding:.35rem 0;display:flex;position:relative}.settings-popup .settings-toggle-switch-indicator{background:color-mix(in srgb,var(--accent-role)32%,#ffffff2e);border:1px solid color-mix(in srgb,var(--accent-role)36%,transparent);width:calc(50% - 4px);box-shadow:var(--elevation-low);transform:translateX(calc(var(--active-index)*100%));border-radius:999px;transition:transform .22s cubic-bezier(.25,1,.5,1);position:absolute;inset:4px}html.light-theme .settings-popup .settings-toggle-switch-indicator{background:color-mix(in srgb,var(--accent-role)48%,#ffffffad)}.settings-popup .settings-toggle-switch-hint{letter-spacing:.12em;text-transform:uppercase;text-align:center;color:color-mix(in srgb,var(--text)70%,#ffffff80);margin:-.25rem 0 0;font-size:.7rem}.planet-halo{pointer-events:none;z-index:-2;justify-content:center;align-items:flex-start;padding-top:6vh;display:flex;position:fixed;inset:0}.planet-halo__core,.planet-halo__ring,.planet-halo__flare{border-radius:50%;position:absolute;transform:translateY(-60%)}.planet-halo__core{filter:blur(3px);background:radial-gradient(circle,#9e71ffd9 0%,#280c3c26 65%,#0000 80%);width:min(420px,60vw);height:min(420px,60vw)}.planet-halo__ring{filter:blur(50px);opacity:.95;border:2px solid #dbc0ff8c;width:min(620px,86vw);height:min(620px,86vw)}.planet-halo__flare{filter:blur(95px);opacity:.4;mix-blend-mode:screen;background:radial-gradient(circle,#8a57ff59 0%,#160a1e00 70%);width:min(820px,110vw);height:min(820px,110vw)}.planet-halo--light .planet-halo__core{background:radial-gradient(circle,#ece2fff2 0%,#b0c4ff59 55%,#0000 78%)}.planet-halo--light .planet-halo__second-core{background:radial-gradient(circle,#dce0ff73 0%,#ffffff0d 65%,#0000 85%)}.planet-halo--light .planet-halo__ring{border-color:#ffffffb3}.planet-halo--light .planet-halo__flare{background:radial-gradient(circle,#eae2ff8c 0%,#fff0 75%)}.ocean-wave{pointer-events:none;z-index:-2;background:linear-gradient(#ebf4fff2 0%,#d2e2f5d1 45%,#ccdef500 75%);position:fixed;inset:0;overflow:hidden}.ocean-wave__layer{opacity:.55;border-radius:50% 50% 0 0;width:120%;animation:18s ease-in-out infinite waveFloat;position:absolute;bottom:0;left:-10%}.ocean-wave__layer--one{background:linear-gradient(#97c0f58c,#a4ccf5bf);height:38vh;animation-duration:22s}.ocean-wave__layer--two{opacity:.5;background:linear-gradient(#aed2faa6,#badafcd9);height:32vh;animation-duration:18s;animation-direction:reverse;bottom:-6vh}.ocean-wave__layer--three{opacity:.4;background:linear-gradient(#c1e0ff99,#d2ebffe6);height:28vh;animation-duration:28s;bottom:-10vh}@keyframes waveFloat{0%{transform:translateY(0)translate(0)}50%{transform:translateY(-10px)translate(25px)}to{transform:translateY(0)translate(0)}}.site-footer{z-index:2;width:min(var(--shell-max-width),calc(100% - var(--shell-horizontal-gap)));max-width:var(--shell-max-width);background:var(--shell-surface);border:1px solid var(--shell-border);-webkit-backdrop-filter:blur(26px)saturate(160%)brightness(1.02);border-radius:22px 22px 0 0;align-self:center;margin-top:auto;padding:1.2rem 1.75rem;position:relative;box-shadow:0 -22px 45px #02060e8c,inset 0 1px #ffffff14}.site-footer:before{content:"";background:linear-gradient(180deg,var(--shell-highlight)0%,#ffffff0d 45%,transparent 80%);opacity:.38;pointer-events:none;border-radius:20px 20px 0 0;position:absolute;inset:1px 1px 0}.site-footer:after{content:"";opacity:.5;pointer-events:none;filter:blur(.2px);background:linear-gradient(90deg,#0000,#4098e061,#34c4d847,#0000);width:min(100% + clamp(120px,20vw,280px),100vw - clamp(1rem,5vw,2rem));height:1.5px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.site-footer p{z-index:1;letter-spacing:.024em;color:color-mix(in srgb,var(--text-muted)68%,#86c6eca6);margin:0;font-size:.88rem;line-height:1.5;position:relative}html.light-theme .site-footer{background:var(--shell-surface);border-color:var(--shell-border);box-shadow:0 -18px 36px #5a7aa43d,inset 0 1px #ffffffe6}html.light-theme .site-footer:before{background:linear-gradient(180deg,var(--shell-highlight)0%,#ffffff1f 38%,transparent 76%);opacity:.5}html.light-theme .site-footer:after{opacity:.55;background:linear-gradient(90deg,#0000,#9cd2ff8c,#8cd6ee66,#0000)}html.light-theme .site-footer p{color:color-mix(in srgb,var(--light-text-muted)68%,#5682c48c)}@media (max-width:768px){.site-footer{border-radius:18px 18px 0 0;width:calc(100% - clamp(1.25rem,6vw,2rem));max-width:none;padding:1rem 1.15rem}.site-footer:before{border-radius:16px 16px 0 0}.site-footer p{letter-spacing:.018em;font-size:.78rem}}@media (max-width:560px){.site-footer{border-radius:16px 16px 0 0;width:calc(100% - clamp(1rem,6vw,1.5rem));padding:.9rem 1rem}}
