@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Variable.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:block}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-VariableItalic.woff2) format("woff2");font-weight:300 900;font-style:italic;font-display:block}html{font-family:Satoshi;font-synthesis:none}*,*:before,*:after{font-family:inherit}.spacefolio{--paper: #151b22;--paper-raised: #202831;--ink: #e7e9e7;--ink-muted: #b1bbc4;--blue: #9cc8dd;--orange: #ffb15c;--on-accent: #171c22;--line: #46505a;--line-soft: #333c46;background:#10161d;color:var(--ink);height:100dvh;min-height:620px;display:flex;flex-direction:column;overflow:hidden;font-family:Satoshi;color-scheme:dark}html:has(.spacefolio){scroll-snap-type:none;scroll-behavior:auto;background:#10161d}body:has(.spacefolio){background:#10161d;margin:0}.spacefolio *,.spacefolio *:before,.spacefolio *:after{box-sizing:border-box}.spacefolio button,.spacefolio a{-webkit-tap-highlight-color:transparent}.spacefolio button{cursor:pointer}.spacefolio button:disabled{cursor:default}.spacefolio a{color:inherit;text-decoration:none}.spacefolio button:focus-visible,.spacefolio a:focus-visible,.spacefolio select:focus-visible{outline:2px solid #ffbd78;outline-offset:5px}.spacefolio ::-moz-selection{background:#ffb15c;color:#151b22}.spacefolio ::selection{background:#ffb15c;color:#151b22}.spacefolio ::-webkit-scrollbar-thumb{background:#6f8090;border-radius:6px}.spacefolio .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flight-header,.flight-main,.flight-footer{font-weight:700}.spacefolio .skip-link{font-size:18px;font-weight:700}.object-label{font-weight:700}.flight-header{height:88px;flex:0 0 88px;padding:0 3.2%;display:flex;align-items:center;gap:24px;border-bottom:1px solid #29313a}.brand{display:flex;align-items:center;gap:13px;font-size:19px;font-weight:700;white-space:nowrap}.brand small{display:block;font-size:11px;letter-spacing:.18em;font-weight:700;margin-top:4px;color:#acb6c1}.brand-mark{display:grid;place-items:center;width:33px;height:36px;border:1.5px solid #ffb15c;border-radius:11px 11px 15px 15px;transform:rotate(-10deg)}.brand-mark span{width:14px;height:10px;border:1px solid #ffb15c;border-radius:7px;position:relative}.brand-mark span:after{content:"";width:3px;height:3px;border-radius:50%;background:#ffb15c;position:absolute;top:3px;left:3px;box-shadow:6px 0 #ffb15c}.flight-identity{margin:auto;display:flex;align-items:center;gap:10px;color:#b7c0ca;font-size:12px;letter-spacing:.13em;white-space:nowrap}.status-dot{display:inline-block;width:5px;height:5px;background:#ffb15c;border-radius:50%;flex:0 0 5px}.identity-divider{height:12px;width:1px;background:#49505a;margin:0 4px}.header-actions{display:flex;align-items:center;gap:23px;font-size:15px}.header-actions a:hover{color:#ffb15c}.cv-link{display:flex;align-items:center;gap:8px}.cv-link svg{width:15px;height:15px}.language-switch{display:flex;padding:3px;border:1px solid #3b444d;border-radius:6px}.language-switch button{border:0;color:#b6c0cb;background:transparent;font-size:12px;height:29px;width:33px;border-radius:3px}.language-switch button[aria-pressed=true]{background:#39414a;color:#fff}.flight-main{display:flex;flex-direction:column;flex:1;min-height:0;outline:0}.scene-stage{flex:1;min-height:0;position:relative;isolation:isolate;background:#07101d}.scene-stage:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -50px 65px -55px #050b12}.space-canvas{position:absolute!important;inset:0}.scene-caption{position:absolute;left:3.2%;right:3.2%;top:21px;display:flex;align-items:center;gap:9px;color:#d3d9df;font-size:12px;letter-spacing:.055em;pointer-events:none;text-shadow:0 1px 5px #000}.scene-coordinate{margin-left:auto;font-size:11px;color:#b8c2cc}.intro-card{position:absolute;width:340px;top:3%;right:25.5%;background:#141e2aef;padding:20px;border:1px solid #7f8a94;border-radius:15px;box-shadow:0 15px 45px #0005}.intro-card:before{content:"";position:absolute;width:15px;height:15px;background:#141e2a;border:1px solid #7f8a94;border-top:0;border-right:0;left:-9px;top:60%;transform:rotate(45deg)}.intro-hello{margin:0 0 12px;font-size:15px;color:#c8d2db}.intro-card h2{font-size:29px;font-weight:700;line-height:1.22;letter-spacing:-.025em;margin:0 0 12px;text-wrap:balance}.intro-description{display:none}.start-button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#ffb15c;color:#1c2025;border:0;border-radius:5px;padding:12px 14px;font-size:15px;font-weight:700;transition:background .2s}.start-button:hover{background:#ffc486}.start-button:disabled{opacity:.6}.start-button svg{width:18px;height:18px}.enter-hint{display:flex;justify-content:center;align-items:center;gap:7px;margin:12px 0 0;font-size:12px;color:#b8c2cb}.enter-hint kbd{border:1px solid #596671;border-radius:3px;padding:0 5px;font-size:15px}.flight-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;position:absolute;right:3.2%;bottom:16px;max-width:calc(100% - 40px)}.flight-tools button{background:#101720dd;color:#c1ccd5;border:1px solid #4a545e;border-radius:4px;padding:6px 10px;font-size:12px;min-height:30px}.flight-tools button:hover{color:#ffbd78;border-color:#ffbd78}.flight-tools button:disabled{opacity:.6}.flight-tools .tool-icon{display:grid;place-items:center;padding:5px}.flight-tools .tool-icon svg{width:18px;height:18px}.navigation-deck{padding:18px 3.2% 20px;border-top:1px solid #303942;background:#161e27}.deck-message{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:15px}.deck-message p{margin:0;font-size:15px;font-weight:700;color:#d6dce0}.deck-message>span{font-size:12px;color:#a8b4c0}.section-navigation{display:grid;grid-template-columns:repeat(6,1fr);outline:none}.nav-station{display:flex;gap:14px;align-items:center;text-align:left;color:#e4e7e9;background:transparent;border:0;border-left:1px solid #37424d;padding:11px 24px;transition:background .18s,color .18s;min-height:60px}.nav-station:first-child{border-left:0;padding-left:0}.nav-station:last-child{padding-right:0}.nav-station>svg{color:#d9ad75;width:24px;height:24px;flex:0 0 24px}.nav-station>span{font-size:16px;font-weight:700}.nav-station small{display:block;color:#9fadb9;font-size:12px;font-weight:700;margin-top:5px}.nav-station:hover{color:#ffba71;background:#ffffff05}.nav-station:disabled{opacity:.58}.flight-footer{display:flex;justify-content:space-between;align-items:center;height:38px;flex:0 0 38px;padding:0 3.2%;color:#a2aebb;font-size:11px}.footer-separator{margin:0 12px;color:#737e8c}.object-label{display:block;background:#15212e;color:#ffd09a;border:1px solid #d5a46a;border-radius:5px;padding:7px 12px;font-size:15px;white-space:nowrap;box-shadow:0 6px 15px #0004}.scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:13px;color:#d8c0a2;font-size:16px}.scene-loading>span{width:18px;height:18px;border:1px solid #5c5246;border-top-color:#ffb15c;border-radius:50%;animation:loading-orbit 1s linear infinite}@keyframes loading-orbit{to{transform:rotate(360deg)}}.flat-view{position:absolute;inset:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;background:#172431}.flat-orbit{position:absolute;width:650px;height:650px;border:1px solid #36434e;border-radius:50%;transform:rotate(-20deg) scaleY(.65);pointer-events:none}.flat-monogram{font-family:Satoshi;font-size:112px;line-height:1;color:#ffb15c;margin-bottom:20px}.flat-view h2{font-size:clamp(33px,3.75vw,55px);font-weight:700;margin:0 0 16px}.flat-view>p{font-size:18px;max-width:460px;line-height:1.8;color:#bac8d3}.flat-view .flat-role{font-size:15px;color:#ffbd78;margin-top:20px}.section-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(690px,calc(100vw - 40px));height:100dvh;max-height:100dvh;max-width:100vw;padding:0;color:#e7e9e7;background:#17212b;border:0;border-left:1px solid #59636c;box-shadow:-18px 0 80px #0005;overflow:hidden}.section-panel[open]{display:flex;flex-direction:column;animation:panel-in .4s cubic-bezier(.16,1,.3,1) both}.section-panel::backdrop{background:#07101a66}.section-panel.is-closing{animation:panel-out .4s ease both;pointer-events:none}@keyframes panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panel-out{to{transform:translate(100%)}}.panel-top{display:flex;align-items:center;gap:12px;padding:23px 32px;border-bottom:1px solid #3a4550;font-size:10px;letter-spacing:.14em;flex-shrink:0}.panel-symbol{color:#ffb15c}.close-panel{margin-left:auto;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#c9d4dd;padding:6px}.close-panel>span{font-size:11px;border:1px solid #5a6672;border-radius:3px;padding:2px 5px;letter-spacing:0}.panel-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:32px 36px;scrollbar-color:#677a8c #17212b}.panel-body:focus-visible{outline:2px solid #ffbd78;outline-offset:-4px}.panel-body>h2{font-size:42px;font-weight:500;letter-spacing:-.035em;margin:0 0 30px;line-height:1.1}.panel-body h3{font-size:20px;font-weight:500;line-height:1.4}.section-lead{font-size:15px;line-height:1.85;color:#c5cfd7;margin:0 0 24px;max-width:68ch}.section-role{font-size:14px;color:#ffbc77;margin-bottom:20px}.timeline{list-style:none;padding:0 0 0 22px;margin:36px 0;border-left:1px solid #606c77}.timeline li{position:relative;padding:0 0 34px 9px}.timeline li:last-child{padding-bottom:0}.timeline li:before{position:absolute;content:"";left:-27px;top:4px;width:9px;height:9px;border:2px solid #ffb15c;border-radius:50%;background:#17212b}.timeline time{font-size:12px;color:#ffbd78}.timeline h3{margin:9px 0 5px}.timeline p{margin:0;font-size:14px;line-height:1.7;color:#b8c5d1}.tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:7px}.tags li{padding:6px 10px;border:1px solid #52616e;border-radius:4px;font-size:12px;color:#d3dde4}.profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0;padding:20px 0;border-block:1px solid #3a4652}.profile-facts p{font-size:13px;color:#c9d3db}.profile-facts strong{display:block;font-weight:400;font-size:11px;color:#ffbd78;margin-bottom:9px}.group-title{font-size:12px!important;color:#ffbd78;margin:27px 0 18px}.skill-list>div{border-top:1px solid #3a4652;padding:18px 0}.skill-list h4{font-size:14px;font-weight:500;margin:0 0 12px}.skill-list .learning-row{margin-top:14px}.skill-list .learning-row .group-title{margin-top:0}.panel-bottom{border-top:1px solid #3a4652;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;font-size:11px;color:#aebdca}.panel-bottom button{display:flex;align-items:center;gap:12px;border:0;color:#ffbd78;background:transparent;padding:5px;font-size:12px}.panel-bottom svg{width:18px}.contact-heading{font-size:30px!important;line-height:1.25!important;margin-bottom:20px}.contact-email{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:clamp(15px,2vw,23px);padding:22px 0;border-block:1px solid #58636b;color:#ffbd78!important;overflow-wrap:anywhere}.contact-links{display:flex;flex-direction:column;gap:0;margin:24px 0}.contact-links a{display:flex;justify-content:space-between;padding:17px 0;font-size:14px;border-bottom:1px solid #384551}.contact-links a:hover{color:#ffbd78}.contact-legal{font-size:10px;color:#aebac6;margin-top:40px}.section-panel .atlas-section__inner{padding:0;max-width:none;width:auto}.section-panel .section-title{margin:0 0 20px}.section-panel .station-heading{display:block;margin:0 0 18px;padding:0}.section-panel .station-heading>div{padding:0}.section-panel .station-heading h2,.section-panel .station-heading__kicker{display:none}.section-panel .station-heading__subtitle{color:#c1cdd6;font-size:14px;line-height:1.7;margin:0}.section-panel .project-selector{padding-right:0}.section-panel .project-detail{position:static;min-height:0;margin:0}.section-panel .project-detail h3{color:#e7e9e7}.section-panel .project-secondary__list{border-color:#495765}.section-panel .project-secondary__list a:hover{background:#253443;color:#ffbd78}.section-panel .project-selector button strong{padding:0}.section-panel .section-title h2,.section-panel .atlas-section-title,.section-panel .atlas-kicker{display:none}.section-panel .section-title p{font-size:14px;line-height:1.7;color:#c1cdd6}.section-panel .project-junction{display:flex;flex-direction:column;gap:30px;margin:0}.section-panel .project-selector{display:flex;flex-direction:column;gap:0}.section-panel .project-selector__legend{font-size:12px;color:#ffbc77;margin:14px 0}.section-panel .project-selector__compact{display:none}.section-panel .project-selector ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.section-panel .project-selector li{flex:1;min-width:120px}.section-panel .project-selector button{width:100%;min-height:52px;padding:10px;display:flex;align-items:center;gap:8px;border:1px solid #4c5b68;background:transparent;color:#b9c8d5;font-size:11px}.section-panel .project-selector button strong{font-weight:500;font-size:11px}.section-panel .project-selector button>span:first-child{display:none}.section-panel .project-selector button.is-active{background:#313d47;border-color:#ffb15c;color:#ffbd78}.section-panel .project-selector__arrow{display:none}.section-panel .project-secondary{order:2;margin-top:30px;padding:20px 0 0;border-top:1px solid #495765}.section-panel .project-secondary h3{font-size:17px;margin:0 0 8px}.section-panel .atlas-copy{font-size:14px;line-height:1.8;color:#c3ced7}.section-panel .project-secondary__list{margin:16px 0 0;list-style:none;padding:0;display:block}.section-panel .project-secondary__list li{border-top:1px solid #35424e}.section-panel .project-secondary__list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;font-size:12px}.section-panel .project-secondary__index{display:none}.section-panel .project-secondary__list strong{font-weight:400}.section-panel .project-selector button:hover{background:#293946;color:#ffbd78}.section-panel .project-detail__technologies li{padding:5px 0;border:0}.section-panel .project-detail{padding:0;border:0;background:transparent}.section-panel .project-detail__station{display:none}.section-panel .project-detail h3{font-size:28px;margin:0 0 15px}.section-panel .project-detail__technologies{padding:0;margin:20px 0;list-style:none;display:flex;gap:15px;color:#ffbd78;font-size:12px}.section-panel .project-detail__actions{display:flex;gap:12px;margin:20px 0}.section-panel .atlas-button{min-height:auto;padding:10px 14px;font-size:12px;display:inline-flex;gap:15px;align-items:center}.section-panel .atlas-button--primary{background:#ffb15c;color:#17212b}.section-panel .atlas-text-link{color:#c6d8e8;font-size:12px;display:inline-flex;gap:18px;padding:4px 0}@media(min-width:1800px){.intro-card{width:380px;right:27%;top:5%;padding:24px}.intro-card h2{font-size:32px}.flight-header{height:96px;flex-basis:96px}.navigation-deck{padding-block:24px}}@media(max-width:1100px){.flight-identity{display:none}.header-actions{margin-left:auto}.nav-station{padding-inline:14px;gap:9px}.nav-station>span{font-size:14px}.intro-card{right:22%;top:2%;width:300px;padding:16px}.intro-card h2{font-size:25px}.intro-card .enter-hint{display:none}}@media(min-width:768px)and (orientation:portrait){.intro-card{right:5%;top:12%}}@media(max-width:767px){.spacefolio{min-height:630px}.flight-header{height:80px;flex-basis:80px;padding-inline:16px;gap:10px}.brand{gap:10px;font-size:15px;white-space:normal;min-width:0}.brand>span:last-child{min-width:0}.brand small{font-size:10px;letter-spacing:.12em}.brand-mark{width:27px;height:30px;flex-shrink:0}.header-actions{gap:10px}.header-profile{display:none}.cv-link{font-size:14px;gap:5px}.cv-link svg{width:13px}.language-switch button{width:27px;height:27px}.scene-caption{left:20px;right:20px;top:16px;font-size:11px}.scene-coordinate{display:none}.intro-card{top:65px;bottom:auto;right:16px;width:min(260px,calc(100% - 40px));padding:16px}.intro-card:before{display:none}.intro-card h2{font-size:25px;margin-bottom:14px}.intro-hello{margin-bottom:9px;font-size:12px}.intro-description,.enter-hint{display:none}.flight-tools{right:20px;bottom:12px;gap:6px}.flight-tools button{font-size:11px;padding:4px 7px;min-height:27px}.navigation-deck{padding:16px 20px}.deck-message{margin-bottom:12px;display:block}.deck-message p{font-size:14px}.deck-message>span{display:block;font-size:11px;margin-top:6px}.section-navigation{grid-template-columns:repeat(3,1fr);gap:0}.nav-station{padding:12px 7px;gap:7px;min-height:59px;border-left:1px solid #37424d}.nav-station:nth-child(4){border-left:0;padding-left:0}.nav-station:nth-child(n+4){border-top:1px solid #37424d}.nav-station>svg{width:19px;height:19px;flex-basis:19px}.nav-station>span{font-size:12px}.nav-station small{font-size:11px;margin-top:4px}.flight-footer{height:44px;flex-basis:44px;padding:0 20px;font-size:10px}.flight-footer>span:first-child{max-width:55%}.footer-separator{margin-inline:6px}.section-panel{width:100%;border:0}.panel-top{padding:18px 22px}.panel-body{padding:28px 24px}.panel-body>h2{font-size:35px}.panel-bottom{padding:14px 22px}.section-lead{font-size:14px}.profile-facts{gap:14px}.contact-heading{font-size:28px!important}.section-panel .project-selector li{min-width:90px}.section-panel .project-selector button{padding:9px 6px}}@media(prefers-reduced-motion:reduce){.spacefolio *,.spacefolio *:before,.spacefolio *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.spacefolio[data-motion=reduced] .section-panel{animation-duration:.01ms}@media(max-height:700px)and (min-width:768px){.flight-header{height:64px;flex-basis:64px}.navigation-deck{padding-block:12px}.deck-message{margin-bottom:8px}.intro-card{top:12%;padding:18px 22px}.intro-card h2{font-size:30px}.intro-description{margin-bottom:12px}}.spacefolio .intro-card{inset:0 auto auto 0;transform:translate3d(var(--dialog-x,0px),var(--dialog-y,0px),0);visibility:hidden}.spacefolio .intro-card[data-anchored=true]{visibility:visible}.spacefolio .intro-card:before{display:block;top:var(--tail-y,44px)}*{box-sizing:border-box}body{margin:0;font-family:Satoshi}button,input,select,textarea,kbd,code,pre{font:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}svg{display:block}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:#ffb15c;color:#10161d!important;border-radius:5px;padding:12px 18px;font-size:14px}.skip-link:focus{top:14px}
