@import "https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500;600;700&display=swap";.not-found[data-v-683e9a53]{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;min-height:55vh;padding:48px 24px;display:flex}.not-found-code[data-v-683e9a53]{color:var(--accent-strong,#048977);margin:0;font-size:clamp(80px,18vw,180px);font-weight:700;line-height:1}.not-found h1[data-v-683e9a53]{margin:0;font-size:clamp(24px,5vw,36px)}.not-found p[data-v-683e9a53]{max-width:50ch}.not-found a[data-v-683e9a53]{align-items:center;text-decoration:none;display:inline-flex}.highlight-card[data-v-f07dddf0]{width:var(--card-width,360px);height:var(--card-height,410px);transform:translateY(var(--offset-y,0px)) rotate(var(--rotation,0deg));transform-origin:50%;border-radius:18px;transition:transform .18s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.highlight-card[data-v-f07dddf0]:hover{z-index:20}.card-visual[data-v-f07dddf0]{background:var(--card-color,var(--surface));width:100%;height:100%}.card-hitbox[data-v-f07dddf0]{width:var(--card-width,360px);height:var(--card-height,410px);color:inherit;cursor:pointer;text-decoration:none;display:block}.card-mobile-title[data-v-f07dddf0]{display:none}.card-sway[data-v-f07dddf0]{width:100%;height:100%;animation:cardSway-f07dddf0 var(--sway-duration,3.8s) ease-in-out var(--sway-delay,0s) infinite alternate}.card-tilt[data-v-f07dddf0]{width:100%;height:100%}.card-hitbox[data-v-f07dddf0]:focus-visible{outline:2px solid var(--accent-strong);outline-offset:8px}@keyframes cardSway-f07dddf0{0%{transform:translate(-5px,3px)rotate(-.65deg)}to{transform:translate(5px,-3px)rotate(.65deg)}}.card-hitbox:hover .card-sway[data-v-f07dddf0],.card-hitbox:focus-visible .card-sway[data-v-f07dddf0]{animation-play-state:paused}.card-hover[data-v-f07dddf0]{--glare-x:50%;--glare-y:50%;will-change:transform;transition:transform .22s cubic-bezier(.22,1,.36,1);position:relative}.card-hover[data-v-f07dddf0]:hover{transform:translateY(-10px)scale(1.025)}.card-glare[data-v-f07dddf0]{pointer-events:none;background:radial-gradient(circle at var(--glare-x) var(--glare-y), #ffffffa6 0%, #e6fff947 16%, #d2f8f01a 30%, transparent 52%);opacity:0;transition:opacity .18s;position:absolute;inset:0}.card-hover:hover .card-glare[data-v-f07dddf0]{opacity:.55}@media (prefers-reduced-motion:reduce){.card-sway[data-v-f07dddf0]{animation:none}.highlight-card[data-v-f07dddf0],.card-hover[data-v-f07dddf0],.card-glare[data-v-f07dddf0]{transition:none}}@media (width<=1100px),(height<=600px){.card-hitbox[data-v-f07dddf0]{width:var(--card-width);height:var(--card-height);position:relative}.card-sway[data-v-f07dddf0]{width:100%;height:100%;animation:none}.highlight-card[data-v-f07dddf0]{width:100%;height:100%}.card-mobile-title[data-v-f07dddf0]{z-index:4;color:#fff;font:600 15px/1.35 var(--font-body);letter-spacing:0;text-align:center;text-shadow:0 2px 12px #00000085;pointer-events:none;background:#16231ec7;border-radius:10px;margin:0;padding:10px 12px;display:block;position:absolute;bottom:18px;left:18px;right:18px}}.personal-page{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;padding:38px clamp(40px,7vw,120px) 48px;display:flex;overflow:hidden}.personal-layout{grid-template-columns:minmax(0,1.3fr) minmax(280px,.58fr);align-items:center;gap:44px clamp(60px,8vw,120px);width:min(1420px,100%);margin:auto;display:grid}.personal-main{min-width:0}.personal-title{max-width:none;font:600 48px/1.08 var(--font-display);letter-spacing:0;white-space:nowrap;background:linear-gradient(#21342d 0%,#2d463e 38%,#667e75 72%,#21342d2e 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 38px}.personal-story{max-width:760px}.personal-story p{color:#21342dcc;max-width:62ch;margin:0 0 22px;font-size:18px;font-weight:400;line-height:1.68}.personal-story .personal-lead{letter-spacing:0;font-size:18px;font-weight:400;line-height:1.68}.personal-side{justify-self:end;width:100%;max-width:360px}.personal-photo{--photo-x:0deg;--photo-y:0deg;aspect-ratio:5/6;clip-path:polygon(0 0,88% 0,100% 12%,100% 100%,12% 100%,0 88%);width:min(100%,340px);transform:perspective(1000px) rotateX(var(--photo-x)) rotateY(var(--photo-y));transform-style:preserve-3d;filter:drop-shadow(0 14px 24px #21342d1a);margin:0;transition:transform .65s cubic-bezier(.16,1,.3,1);overflow:hidden}.personal-photo img{object-fit:cover;object-position:57% center;width:100%;height:100%;display:block}.personal-side-copy{width:min(100%,340px);padding-top:22px}.personal-side-copy p{color:#21342dcc;margin:0 0 14px;font-size:18px;font-weight:400;line-height:1.68}.to-personal-enter-active .personal-main,.projects-to-personal-enter-active .personal-main{animation:.52s cubic-bezier(.16,1,.3,1) both personal-main-in}.to-personal-enter-active .personal-side,.projects-to-personal-enter-active .personal-side{animation:.56s cubic-bezier(.16,1,.3,1) 55ms both personal-side-in}@keyframes personal-main-in{0%{opacity:0;transform:translate(-50px,20px)}to{opacity:1;transform:translate(0,0)}}@keyframes personal-side-in{0%{opacity:0;transform:translate(55px,18px)rotate(2deg)}to{opacity:1;transform:translate(0,0)rotate(0)}}.from-personal-leave-active .personal-main,.personal-to-projects-leave-active .personal-main{animation:personal-main-out .32s var(--ease-in) both}.from-personal-leave-active .personal-side,.personal-to-projects-leave-active .personal-side{animation:personal-side-out .36s var(--ease-in) both}@keyframes personal-main-out{to{opacity:0;transform:translate(-45px)}}@keyframes personal-side-out{to{opacity:0;transform:translate(50px)}}@media (width<=1050px){.personal-page{scrollbar-width:none;overscroll-behavior-y:contain;align-items:flex-start;padding:40px 30px 60px;overflow-y:auto}.personal-page::-webkit-scrollbar{display:none}.personal-layout{grid-template-columns:1fr;width:min(860px,100%);margin:0 auto}.personal-side{justify-self:start;max-width:520px}.personal-photo{aspect-ratio:16/10}}@media (width<=700px){.personal-page{padding:28px 20px 50px}.personal-title{font-size:40px}.personal-story p,.personal-story .personal-lead,.personal-side-copy p{font-size:16px}.personal-title{white-space:normal}}@media (prefers-reduced-motion:reduce){.to-personal-enter-active .personal-main,.projects-to-personal-enter-active .personal-main,.to-personal-enter-active .personal-side,.projects-to-personal-enter-active .personal-side,.from-personal-leave-active .personal-main,.personal-to-projects-leave-active .personal-main,.from-personal-leave-active .personal-side,.personal-to-projects-leave-active .personal-side{animation-duration:1ms!important;animation-delay:0s!important}.personal-photo{transition:none;transform:none}}.projects-page{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;padding:32px clamp(28px,5.5vw,86px) 38px;display:flex;overflow:hidden auto}.projects-layout{grid-template-columns:minmax(330px,.88fr) minmax(430px,1.05fr) minmax(240px,.54fr);align-items:center;gap:clamp(46px,5.5vw,92px);width:min(1540px,100%);min-height:min(620px,100%);display:grid}.projects-left,.projects-middle,.projects-visual{min-width:0}.projects-kicker{color:var(--muted);font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:700}.projects-title,.section-title{color:#050807;font-family:var(--font-display);letter-spacing:0;margin:0;font-size:clamp(34px,3vw,52px);font-weight:700;line-height:.96}.projects-title{margin-bottom:24px}.projects-list,.focus-list,.experience-list{border-top:1px solid #21342d24;flex-direction:column;display:flex}.project-row,.focus-row,.experience-row{border-bottom:1px solid #21342d21}.project-row{min-height:57px;color:var(--text);justify-content:space-between;align-items:center;gap:18px;padding:8px 4px;text-decoration:none;transition:padding-left .22s cubic-bezier(.22,1,.36,1),color .18s,border-color .18s;display:flex}a.project-row:hover{color:var(--accent-strong);border-color:#317c7047;padding-left:12px}.project-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.project-title{color:inherit;font-size:16px;font-weight:700;line-height:1.15}.project-detail{color:var(--muted);font-size:12px;font-weight:500;line-height:1.35}.project-arrow{color:currentColor;flex-shrink:0;font-size:17px;font-weight:700;line-height:1;transition:transform .22s cubic-bezier(.22,1,.36,1)}a.project-row:hover .project-arrow{transform:translate(4px,-4px)}.projects-middle{flex-direction:column;gap:30px;display:flex}.projects-section{min-width:0}.section-title{margin-bottom:8px}.focus-row{min-height:34px;color:var(--text);align-items:center;padding:6px 2px;font-size:15px;font-weight:600;line-height:1.25;transition:padding-left .18s,color .18s,border-color .18s;display:flex}.focus-row:hover{color:var(--accent-strong);border-color:#317c703d;padding-left:8px}.experience-section{padding-top:2px}.experience-row{padding:8px 2px;transition:padding-left .18s,border-color .18s}.experience-row:hover{border-color:#317c703d;padding-left:8px}.experience-role,.experience-company{font-size:15px;line-height:1.45;display:inline}.experience-role{color:var(--text);font-weight:700}.experience-company{color:var(--muted);font-weight:500}.experience-company:before{content:" - ";color:#21342d6b}.projects-visual{pointer-events:none;justify-content:center;align-self:stretch;align-items:center;display:flex;position:relative}.to-projects-enter-active .projects-left,.personal-to-projects-enter-active .projects-left{animation:projects-left-in .5s var(--ease-out) both}.to-projects-enter-active .projects-middle,.personal-to-projects-enter-active .projects-middle{animation:projects-middle-in .55s 45ms var(--ease-out) both}.to-projects-enter-active .projects-visual,.personal-to-projects-enter-active .projects-visual{animation:projects-visual-in .62s 80ms var(--ease-out) both}@keyframes projects-left-in{0%{opacity:0;transform:translate(-46px,18px)}}@keyframes projects-middle-in{0%{opacity:0;transform:translate(38px,18px)}}@keyframes projects-visual-in{0%{opacity:0;transform:translate(70px,22px)scale(.94)}}.from-projects-leave-active .projects-left,.projects-to-personal-leave-active .projects-left{animation:projects-left-out .32s var(--ease-in) both}.from-projects-leave-active .projects-middle,.projects-to-personal-leave-active .projects-middle{animation:projects-middle-out .35s var(--ease-in) both}.from-projects-leave-active .projects-visual,.projects-to-personal-leave-active .projects-visual{animation:projects-visual-out .39s var(--ease-in) both}@keyframes projects-left-out{to{opacity:0;transform:translate(-58px,10px)}}@keyframes projects-middle-out{to{opacity:0;transform:translate(54px,10px)}}@keyframes projects-visual-out{to{opacity:0;transform:translate(78px,-10px)scale(.95)}}.to-projects-enter-active .project-row,.personal-to-projects-enter-active .project-row,.to-projects-enter-active .focus-row,.personal-to-projects-enter-active .focus-row,.to-projects-enter-active .experience-row,.personal-to-projects-enter-active .experience-row{opacity:0;animation:project-row-in .32s var(--ease-out) forwards}.to-projects-enter-active .project-row:first-child,.personal-to-projects-enter-active .project-row:first-child{animation-delay:.1s}.to-projects-enter-active .project-row:nth-child(2),.personal-to-projects-enter-active .project-row:nth-child(2){animation-delay:.125s}.to-projects-enter-active .project-row:nth-child(3),.personal-to-projects-enter-active .project-row:nth-child(3){animation-delay:.15s}.to-projects-enter-active .project-row:nth-child(4),.personal-to-projects-enter-active .project-row:nth-child(4){animation-delay:.175s}.to-projects-enter-active .project-row:nth-child(5),.personal-to-projects-enter-active .project-row:nth-child(5){animation-delay:.2s}.to-projects-enter-active .project-row:nth-child(6),.personal-to-projects-enter-active .project-row:nth-child(6){animation-delay:.225s}.to-projects-enter-active .project-row:nth-child(7),.personal-to-projects-enter-active .project-row:nth-child(7){animation-delay:.25s}.to-projects-enter-active .project-row:nth-child(8),.personal-to-projects-enter-active .project-row:nth-child(8){animation-delay:.275s}.to-projects-enter-active .focus-row,.personal-to-projects-enter-active .focus-row{animation-delay:.21s}.to-projects-enter-active .experience-row,.personal-to-projects-enter-active .experience-row{animation-delay:.28s}@keyframes project-row-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translate(0,0)}}@media (width<=1180px){.projects-page{align-items:flex-start;padding:38px 30px 56px}.projects-layout{grid-template-columns:1fr;gap:38px;width:min(900px,100%);min-height:0}.projects-visual{justify-content:flex-start;align-self:auto;min-height:250px;overflow:hidden}.projects-sculpture{width:min(440px,92vw);height:300px;transform:rotate(-88deg)translate(-86px,-32px)}}@media (width<=700px){.projects-page{padding:28px 20px 48px}.projects-title,.section-title{font-size:clamp(31px,9vw,42px)}.project-row{min-height:60px}.project-title,.focus-row,.experience-role,.experience-company{font-size:14px}.projects-visual{display:none}}@media (prefers-reduced-motion:reduce){.projects-sculpture span,.to-projects-enter-active .projects-left,.personal-to-projects-enter-active .projects-left,.to-projects-enter-active .projects-middle,.personal-to-projects-enter-active .projects-middle,.to-projects-enter-active .projects-visual,.personal-to-projects-enter-active .projects-visual,.from-projects-leave-active .projects-left,.projects-to-personal-leave-active .projects-left,.from-projects-leave-active .projects-middle,.projects-to-personal-leave-active .projects-middle,.from-projects-leave-active .projects-visual,.projects-to-personal-leave-active .projects-visual,.to-projects-enter-active .project-row,.personal-to-projects-enter-active .project-row,.to-projects-enter-active .focus-row,.personal-to-projects-enter-active .focus-row,.to-projects-enter-active .experience-row,.personal-to-projects-enter-active .experience-row{animation-duration:1ms!important;animation-delay:0s!important}}.ship-scene[data-v-00787112]{--ship-x:0deg;--ship-y:0deg;aspect-ratio:1122/1402;perspective:1000px;width:min(100%,408px);margin:auto;position:relative}.ship-loader[data-v-00787112]{z-index:3;color:var(--muted);font:400 13px/1.4 var(--font-body);text-align:center;background:#f8fbf9b8;place-content:center;gap:12px;display:grid;position:absolute;inset:0}.ship-loader i[data-v-00787112]{background:#317c7029;width:88px;height:2px;display:block;overflow:hidden}.ship-loader i[data-v-00787112]:after{content:"";background:var(--accent-strong);width:42%;height:100%;animation:.9s ease-in-out infinite alternate ship-loading-00787112;display:block}@keyframes ship-loading-00787112{0%{transform:translate(0)}to{transform:translate(138%)}}.ship-tilt[data-v-00787112]{transform:rotateX(var(--ship-x)) rotateY(var(--ship-y));transition:transform .65s cubic-bezier(.16,1,.3,1)}.ship-float[data-v-00787112]{transform-origin:50% 75%;position:relative}.ship-detail[data-v-00787112]{opacity:0;width:100%;height:auto;display:block}.ship-draft[data-v-00787112]{display:none}.is-ready .ship-detail[data-v-00787112]{animation:ship-arrive-00787112 .52s 60ms var(--ease-out) both}.is-ready .ship-float[data-v-00787112]{animation:8s ease-in-out .58s infinite ship-sway-00787112}.is-paused .ship-float[data-v-00787112],.is-paused .ship-detail[data-v-00787112],.is-paused .ship-draft[data-v-00787112],.is-paused .ship-draft path[data-v-00787112]{animation-play-state:paused}@keyframes ship-arrive-00787112{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ship-sway-00787112{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-4px)rotate(.65deg)}75%{transform:translateY(3px)rotate(-.65deg)}}@media (width<=800px){.ship-scene[data-v-00787112]{max-width:272px}}@media (prefers-reduced-motion:reduce){.ship-tilt[data-v-00787112]{transition:none;transform:none}.ship-scene .ship-float[data-v-00787112],.ship-scene .ship-detail[data-v-00787112],.ship-scene .ship-draft[data-v-00787112],.ship-scene .ship-draft path[data-v-00787112]{animation:none}.ship-detail[data-v-00787112]{opacity:1}.ship-draft[data-v-00787112]{display:none}.ship-loader i[data-v-00787112]:after{width:100%;animation:none}}.portfolio:has(.beyond-page):before{opacity:.2}.portfolio:has(.beyond-page):after{opacity:.07}.beyond-page{z-index:1;scrollbar-gutter:stable;min-height:0;font-family:var(--font-body);flex:1;padding:24px max(24px,6%) 40px;position:relative;overflow-y:auto}.beyond-content{width:min(1240px,100%);margin:auto}.beyond-intro{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:64px;padding:8px 0 32px;display:grid}.beyond-illustration{mix-blend-mode:multiply;margin:0}.beyond-illustration img{object-fit:contain;width:100%;height:auto;max-height:510px;display:block}.beyond-kicker{color:var(--muted);text-transform:uppercase;margin:0 0 18px;font-size:12px}.beyond-story h1{max-width:none;font-family:var(--font-display);letter-spacing:0;white-space:nowrap;margin:0 0 24px;font-size:38px;font-weight:600;line-height:1.12}.beyond-story p{max-width:65ch;margin:0 0 16px;font-size:16px;line-height:1.7}.beyond-story .beyond-lead{font-size:16px}.beyond-coverage{align-content:start;gap:8px;max-width:65ch;margin-top:30px;display:grid}.beyond-coverage a{color:#21342dcc;transition:color .18s ease, transform .22s var(--ease-out);font-size:16px;line-height:1.5;text-decoration:none}.beyond-coverage a:hover,.beyond-coverage a:focus-visible{color:var(--accent-strong);transform:translate(5px)}.beyond-coverage span{margin-left:5px}.to-beyond-enter-active .beyond-illustration{animation:beyond-ship-arrive .68s 40ms var(--ease-out) both}.to-beyond-enter-active .beyond-story>*{opacity:0;animation:beyond-copy-arrive .42s var(--ease-out) forwards}.to-beyond-enter-active .beyond-story>:first-child{animation-delay:.11s}.to-beyond-enter-active .beyond-story>:nth-child(2){animation-delay:.15s}.to-beyond-enter-active .beyond-story>:nth-child(3){animation-delay:.19s}.to-beyond-enter-active .beyond-story>:nth-child(4){animation-delay:.23s}.to-beyond-enter-active .beyond-story>:nth-child(5){animation-delay:.27s}.to-beyond-enter-active .beyond-story>:nth-child(6){animation-delay:.31s}.to-beyond-enter-active .beyond-story>:nth-child(7){animation-delay:.35s}@keyframes beyond-ship-arrive{0%{opacity:0;transform:translate(-76px,42px)rotate(-5deg)scale(.9)}68%{opacity:1;transform:translate(8px,-5px)rotate(1deg)scale(1.015)}to{opacity:1;transform:none}}@keyframes beyond-copy-arrive{0%{opacity:0;transform:translate(36px,14px)}to{opacity:1;transform:none}}.beyond-page.from-beyond-leave-active{pointer-events:none;overflow:hidden}.from-beyond-leave-active .beyond-illustration{transform-origin:50% 75%;animation:beyond-ship-depart .56s var(--ease-in) both}.from-beyond-leave-active .beyond-story>*{animation:beyond-copy-depart .35s var(--ease-in) both}.from-beyond-leave-active .beyond-story>:first-child{animation-delay:20ms}.from-beyond-leave-active .beyond-story>:nth-child(2){animation-delay:45ms}.from-beyond-leave-active .beyond-story>:nth-child(3){animation-delay:70ms}.from-beyond-leave-active .beyond-story>:nth-child(4){animation-delay:95ms}.from-beyond-leave-active .beyond-story>:nth-child(5){animation-delay:.12s}.from-beyond-leave-active .beyond-story>:nth-child(6){animation-delay:.145s}.from-beyond-leave-active .beyond-story>:nth-child(7){animation-delay:.17s}.from-beyond-enter-active{transition:opacity .3s ease-out, transform .42s var(--ease-out)}.from-beyond-enter-from{opacity:0;transform:translateY(14px)}@keyframes beyond-ship-depart{0%{opacity:1;transform:translate(0,0)rotate(0)scale(1)}22%{opacity:1;transform:translate(8px,-5px)rotate(1deg)scale(1.015)}to{opacity:0;transform:translate(-90px,-32px)rotate(-7deg)scale(.92)}}@keyframes beyond-copy-depart{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(56px,-18px)}}@media (prefers-reduced-motion:reduce){.to-beyond-enter-active .beyond-illustration,.to-beyond-enter-active .beyond-story>*,.from-beyond-leave-active .beyond-illustration,.from-beyond-leave-active .beyond-story>*{animation:none}.beyond-page.from-beyond-leave-active{transition:opacity .12s linear}.beyond-page.from-beyond-leave-to{opacity:0}.from-beyond-enter-active{transition:opacity .12s linear}.from-beyond-enter-from{transform:none}}@media (width<=800px){.beyond-intro{grid-template-columns:1fr;gap:24px}.beyond-illustration img{max-height:340px}.beyond-story h1{white-space:normal;max-width:22ch;font-size:34px}}@media (width<=420px){.beyond-story h1{font-size:30px}.beyond-page{padding-inline:20px}}.portfolio:has(.highlight-detail-page):before{opacity:.2}.portfolio:has(.highlight-detail-page):after{opacity:.08}.highlight-detail-page{z-index:1;scrollbar-gutter:stable;flex:1;min-height:0;padding:18px clamp(22px,5vw,76px) 38px;position:relative;overflow-y:auto}.highlight-detail-inner{width:min(1320px,100%);margin:0 auto}.detail-navigation{flex-wrap:wrap;justify-content:flex-end;gap:18px;padding-top:8px;font-size:13px;display:flex}.detail-navigation a{padding:10px 0;text-decoration:none;transition:opacity .18s;position:relative}.detail-navigation a:after{content:"";background:var(--accent-strong);border-radius:2px;width:0;height:2px;transition:width .22s;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.detail-navigation a:hover{opacity:.65}.detail-navigation a:hover:after,.detail-navigation a:focus-visible:after{width:35%}.is-lab-page .highlight-detail-inner{width:min(1380px,100%)}.lab-showcase-page{padding:12px 0 6px}.lab-showcase-heading{padding:18px 0 38px}.lab-showcase-heading>div{max-width:650px}.lab-showcase-heading h1{font:550 22px/1.25 var(--font-display);letter-spacing:0;margin:0 0 10px}.lab-showcase-heading p{color:#21342dc7;max-width:58ch;margin:0;font-size:15px;line-height:1.6}.lab-showcase{grid-template-columns:minmax(300px,.76fr) minmax(480px,1.24fr);align-items:start;gap:clamp(58px,9vw,144px);padding:8px 0 28px;display:grid}.lab-showcase-list{min-width:0}.lab-showcase-link{width:100%;min-height:48px;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:padding-left .24s var(--ease-out), color .18s ease;background:0 0;border:0;border-radius:0;justify-content:space-between;align-items:center;gap:18px;padding:7px 2px;text-decoration:none;display:flex;position:relative}.lab-showcase-link:hover,.lab-showcase-link:focus-visible,.lab-showcase-link.is-active{color:var(--accent-strong);outline:none;padding-left:9px}.lab-showcase-link>span{min-width:0}.lab-showcase-link strong{color:inherit;font:400 15px/1.4 var(--font-body);letter-spacing:0}.lab-showcase-link i{color:inherit;opacity:0;transition:opacity .18s ease, transform .24s var(--ease-out);font-size:17px;font-style:normal;transform:translate(-8px)}.lab-showcase-link:hover i,.lab-showcase-link:focus-visible i,.lab-showcase-link.is-active i{opacity:1;transform:translate(0)}.lab-project-preview{align-self:start;min-width:0}.lab-preview-image{aspect-ratio:16/9;background:#317c7012;border-radius:3px;place-items:center;width:100%;padding:clamp(14px,1.7vw,24px);display:grid;position:relative;overflow:hidden}.lab-preview-image img{object-fit:contain;object-position:center;filter:saturate(.86)contrast(.94);width:100%;height:100%;transition:transform .52s var(--ease-out), filter .32s ease;display:block;box-shadow:0 12px 28px #21342d1a}.lab-preview-image:hover img,.lab-preview-image:focus-visible img{filter:saturate(.96)contrast(.98);transform:scale(1.006)}.lab-preview-image.is-command-center{background:#317c701a}.lab-preview-image.is-command-center img{filter:brightness(1.16)saturate(.68)contrast(.82);box-shadow:0 12px 30px #21342d24}.lab-preview-image.is-command-center:hover img,.lab-preview-image.is-command-center:focus-visible img{filter:brightness(1.13)saturate(.76)contrast(.88)}.lab-topology-preview{aspect-ratio:16/9;color:#b8ded1;background:#17231f;border:1px solid #317c7038;border-radius:4px;flex-direction:column;width:100%;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 36px #17231f21}.topology-toolbar{background:#ffffff06;border-bottom:1px solid #b8ded11f;flex:0 0 34px;align-items:center;gap:6px;padding:0 13px;display:flex}.topology-toolbar i{background:#b8ded140;border-radius:50%;width:6px;height:6px}.topology-toolbar i:nth-child(2){background:#61b89e8c}.topology-toolbar small{color:#d5ebe394;font:400 10px/1 var(--font-body);letter-spacing:0;margin-left:8px}.lab-topology-preview pre{color:inherit;letter-spacing:0;white-space:pre;text-shadow:0 0 18px #6edcb81f;transition:transform .42s var(--ease-out), color .24s ease;flex:1;place-items:center;margin:0;padding:12px 18px 16px;font:500 clamp(8px,.72vw,11px)/1.12 ui-monospace,SFMono-Regular,Consolas,monospace;display:grid;overflow:hidden;transform:scale(.96)}.lab-topology-preview:after{content:"";pointer-events:none;opacity:.45;background:linear-gradient(#ffffff05 50%,#0000 50%) 0 0/100% 4px;position:absolute;inset:34px 0 0}.lab-topology-preview:hover pre,.lab-topology-preview:focus-visible pre{color:#d0eee4;transform:scale(.98)}.lab-image-enter-active{transition:opacity .32s ease, transform .43s var(--ease-out), clip-path .43s var(--ease-out)}.lab-image-leave-active{transition:opacity .18s ease, transform .22s var(--ease-in), clip-path .22s var(--ease-in)}.lab-image-enter-from{opacity:0;clip-path:inset(0 0 0 16%);transform:translate(28px)scale(.985)}.lab-image-leave-to{opacity:0;clip-path:inset(0 14% 0 0);transform:translate(-18px)scale(.992)}.lab-image-enter-active img{animation:lab-preview-focus .52s var(--ease-out) both}@keyframes lab-preview-focus{0%{filter:saturate(.72)contrast(.88);transform:scale(1.035)}}.lab-preview-canvas{aspect-ratio:16/9;background:#317c700b;border-radius:3px;width:100%;transition:background .26s;position:relative;overflow:hidden}.preview-grid{background:linear-gradient(135deg,#317c700b,#f8fbf933);position:absolute;inset:0}.preview-object,.preview-route{transition:inset .42s var(--ease-out), width .42s var(--ease-out), height .42s var(--ease-out), border-radius .42s var(--ease-out), transform .42s var(--ease-out), background .24s ease;position:absolute}.preview-object{z-index:2;background:#f8fbf9f0;border:1px solid #317c706b;box-shadow:0 14px 30px #21342d14}.preview-route{z-index:1;transform-origin:0;background:#317c7066;height:1px}.is-homelab .preview-object{border-radius:3px;width:50%;height:13%;left:25%}.is-homelab .preview-object-a{top:18%}.is-homelab .preview-object-b{top:35%}.is-homelab .preview-object-c{top:52%}.is-homelab .preview-object-d{top:69%}.is-homelab .preview-object:after{content:"";background:var(--accent-strong);border-radius:50%;width:7px;height:7px;position:absolute;top:50%;right:7%;transform:translateY(-50%);box-shadow:-16px 0 #317c7038}.is-network .preview-object{border-radius:4px;width:82px;height:42px}.is-network .preview-object-a{top:18%;left:10%}.is-network .preview-object-b{top:19%;right:11%}.is-network .preview-object-c{border-radius:50%;top:43%;left:42%}.is-network .preview-object-d{bottom:14%;right:20%}.is-network .preview-route-a{width:52%;top:35%;left:20%;transform:rotate(12deg)}.is-network .preview-route-b{width:33%;top:57%;left:50%;transform:rotate(28deg)}.is-photos .preview-object{background:#317c702e;border:0;border-radius:3px}.is-photos .preview-object-a{width:44%;height:46%;top:14%;left:12%}.is-photos .preview-object-b{background:#21342d1f;width:27%;height:28%;top:14%;right:12%}.is-photos .preview-object-c{background:#21342d1f;width:25%;height:20%;bottom:12%;left:12%}.is-photos .preview-object-d{width:44%;height:38%;bottom:12%;right:12%}.is-portfolio .preview-object-a{border-radius:5px;width:auto;height:auto;inset:12% 10%}.is-portfolio .preview-object-a:before{content:"";background:linear-gradient(#317c70cc 0 14%,#0000 14% 25%,#21342d29 25% 31%,#0000 31% 43%,#21342d1a 43% 49%,#0000 49%);width:37%;height:54%;position:absolute;top:17%;left:6%}.is-portfolio .preview-object-b{background:#317c7024;border-radius:3px;width:31%;height:48%;top:26%;right:16%}.is-portfolio .preview-object-c,.is-portfolio .preview-object-d{display:none}.is-scripts .preview-object-a{background:#192722eb;border-radius:5px;width:auto;height:auto;inset:14% 12%}.is-scripts .preview-object-a:after{content:"> status --all\a  services: running\a  backup: complete\a  network: online";white-space:pre;color:#a7d9cf;font:500 clamp(10px,1.2vw,14px)/1.8 monospace;position:absolute;top:18%;left:8%}.is-scripts .preview-object-b,.is-scripts .preview-object-c,.is-scripts .preview-object-d{display:none}.lab-preview-caption{padding-top:16px}.lab-preview-caption span{color:#21342dc2;max-width:66ch;font-size:15px;line-height:1.6;display:block}.next-editorial{padding:58px 0 24px}.next-editorial-header{padding-bottom:50px}.next-editorial-header h1{font:550 38px/1.15 var(--font-display);letter-spacing:0;white-space:nowrap;margin:0}.next-editorial-lead{color:#21342dc7;max-width:62ch;margin:46px 0 0;font-size:16px;line-height:1.65}.next-editorial-content{grid-template-columns:minmax(300px,.62fr) minmax(580px,1.38fr);align-items:start;gap:clamp(58px,8vw,126px);display:grid}.next-editorial-photo{--next-photo-x:0deg;--next-photo-y:0deg;--next-shift-x:0px;--next-shift-y:0px;--next-image-x:0px;--next-image-y:0px;aspect-ratio:4/5;clip-path:polygon(0 0,88% 0,100% 10%,100% 100%,12% 100%,0 90%);width:min(350px,100%);transform:perspective(900px) translate3d(var(--next-shift-x), var(--next-shift-y), 0) rotateX(var(--next-photo-x)) rotateY(var(--next-photo-y));transform-style:preserve-3d;will-change:transform;background:#317c7061;border-radius:9px;margin:0;transition:transform .7s cubic-bezier(.16,1,.3,1);position:sticky;top:24px;overflow:hidden}.next-photo-image{clip-path:polygon(0 0,88% 0,100% 10%,100% 100%,12% 100%,0 90%);border-radius:8px;position:absolute;inset:1px;overflow:hidden}.next-editorial-photo img{object-fit:cover;width:calc(100% + 12px);height:calc(100% + 12px);transform:translate3d(calc(-6px + var(--next-image-x)), calc(-6px + var(--next-image-y)), 0) scale(1.025);will-change:transform;transition:transform .8s cubic-bezier(.16,1,.3,1);display:block}.next-directions{padding:4px 0 24px}.next-statement{max-width:52ch;font:450 16px/1.65 var(--font-body);letter-spacing:0;margin:0 0 clamp(44px,6vh,66px)}.next-focus-grid{grid-template-columns:minmax(0,.95fr) minmax(0,.95fr) minmax(0,1.2fr);gap:clamp(26px,3vw,42px);display:grid}.next-direction{max-width:28ch}.next-direction:last-child{max-width:34ch}.next-direction h2{font:550 18px/1.4 var(--font-display);letter-spacing:0;margin:0 0 12px}.next-direction span{color:#21342dbd;font-size:16px;line-height:1.65;display:block}.is-lab-page .detail-navigation{padding-top:18px}.to-next-enter-active .next-editorial-header{animation:next-heading-in .43s 30ms var(--ease-out) both}.to-next-enter-active .next-editorial-photo{animation:next-photo-in .54s 60ms var(--ease-out) both}.to-next-enter-active .next-direction{opacity:0;animation:next-row-in .36s var(--ease-out) forwards}.to-next-enter-active .next-direction:first-child{animation-delay:.12s}.to-next-enter-active .next-direction:nth-child(2){animation-delay:.17s}.to-next-enter-active .next-direction:nth-child(3){animation-delay:.22s}.to-next-enter-active .detail-navigation{animation:next-footer-in .32s .23s var(--ease-out) both}@keyframes next-heading-in{0%{opacity:0;transform:translate(-24px,12px)}}@keyframes next-photo-in{0%{opacity:0;clip-path:inset(0 0 24%);transform:translateY(34px)scale(.97)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes next-row-in{0%{opacity:0;transform:translate(30px,10px)}to{opacity:1;transform:none}}@keyframes next-footer-in{0%{opacity:0;transform:translateY(14px)}}.from-next-leave-active .next-editorial-header{animation:next-hero-out .3s var(--ease-in) both}.from-next-leave-active .next-editorial-photo{animation:next-photo-out .38s var(--ease-in) both}.from-next-leave-active .next-directions{animation:next-content-out .39s 20ms var(--ease-in) both}.from-next-leave-active .detail-navigation{animation:next-footer-out .28s var(--ease-in) both}@keyframes next-hero-out{to{opacity:0;transform:translate(-30px,-8px)}}@keyframes next-photo-out{to{opacity:0;transform:translateY(40px)scale(.96)}}@keyframes next-content-out{to{opacity:0;transform:translate(48px)}}@keyframes next-footer-out{to{opacity:0;transform:translate(28px)}}.to-lab-enter-active .lab-showcase-heading>div{animation:lab-heading-in .5s 50ms var(--ease-out) both}.to-lab-enter-active .lab-showcase-heading p{animation:lab-copy-in .48s .11s var(--ease-out) both}.to-lab-enter-active .lab-showcase-link{opacity:0;animation:lab-row-in .43s var(--ease-out) forwards}.to-lab-enter-active .lab-showcase-link:first-of-type{animation-delay:.18s}.to-lab-enter-active .lab-showcase-link:nth-of-type(2){animation-delay:.22s}.to-lab-enter-active .lab-showcase-link:nth-of-type(3){animation-delay:.26s}.to-lab-enter-active .lab-showcase-link:nth-of-type(4){animation-delay:.3s}.to-lab-enter-active .lab-showcase-link:nth-of-type(5){animation-delay:.34s}.to-lab-enter-active .lab-project-preview{animation:lab-preview-in .62s .12s var(--ease-out) both}.to-lab-enter-active .detail-navigation{animation:lab-footer-in .42s .31s var(--ease-out) both}@keyframes lab-heading-in{0%{opacity:0;transform:translate(-34px,10px)}}@keyframes lab-copy-in{0%{opacity:0;transform:translateY(16px)}}@keyframes lab-row-in{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:translate(0,0)}}@keyframes lab-preview-in{0%{opacity:0;clip-path:inset(0 0 0 18%);transform:translate(48px,16px)scale(.965)}to{opacity:1;clip-path:inset(0);transform:translate(0,0)scale(1)}}@keyframes lab-footer-in{0%{opacity:0;transform:translateY(10px)}}.from-lab-leave-active .lab-showcase-heading{animation:lab-heading-out .34s 20ms var(--ease-in) both}.from-lab-leave-active .lab-showcase-list{animation:lab-list-out .38s var(--ease-in) both}.from-lab-leave-active .lab-project-preview{animation:lab-preview-out .43s 30ms var(--ease-in) both}.from-lab-leave-active .detail-navigation{animation:lab-footer-out .26s var(--ease-in) both}@keyframes lab-heading-out{to{opacity:0;transform:translate(-28px,-8px)}}@keyframes lab-list-out{to{opacity:0;transform:translate(-42px,8px)}}@keyframes lab-preview-out{to{opacity:0;clip-path:inset(0 0 0 20%);transform:translate(58px,-10px)scale(.97)}}@keyframes lab-footer-out{to{opacity:0;transform:translateY(10px)}}.is-resume-page{scroll-behavior:smooth;scroll-snap-type:y mandatory;padding-inline:clamp(24px,5vw,80px);overflow-y:auto}.is-resume-page .highlight-detail-inner{width:min(1380px,100%)}.journey-page{margin:-10px 0 -24px}.journey-screen{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;justify-content:center;min-height:calc(100svh - 116px);padding:34px 0 42px;display:flex}.journey-profile{width:min(440px,100%);margin-bottom:clamp(38px,6vh,66px)}.journey-profile h1,.journey-screen-title{font:600 38px/1.15 var(--font-display);letter-spacing:0;margin:0}.journey-profile p{color:#21342dc7;max-width:42ch;margin:18px 0 0;font-size:16px;line-height:1.65}.journey-roles>h2,.journey-overview h3{font:600 18px/1.4 var(--font-display);letter-spacing:0;margin:0 0 20px}.journey-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(42px,7vw,104px);margin-top:clamp(42px,8vh,82px);display:grid}.journey-overview article+article{margin-top:22px}.journey-overview h4{font:500 16px/1.45 var(--font-body);letter-spacing:0;margin:0 0 5px}.journey-overview p,.journey-overview article span,.journey-overview li{color:#21342db3;margin:0;font-size:15px;line-height:1.52}.journey-overview article span{margin-top:4px;display:block}.journey-overview ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.journey-experience{grid-template-columns:minmax(300px,32%) minmax(0,1fr);align-items:stretch;gap:clamp(48px,7vw,110px);padding-bottom:30px;display:grid}.journey-roles{flex-direction:column;align-items:stretch;display:flex}.journey-role{text-align:left;cursor:pointer;color:#21342d7a;background:0 0;border:0;grid-template-columns:48px 28px minmax(0,1fr);align-items:stretch;min-height:72px;padding:0;transition:color .18s;display:grid}.journey-year{color:inherit;font-variant-numeric:tabular-nums;align-self:center;font-size:13px;line-height:1;transition:color .18s}.journey-track{align-self:stretch;position:relative}.journey-track:before{content:"";background:#317c703d;width:1px;position:absolute;top:0;bottom:0;left:7px}.journey-role:first-of-type .journey-track:before{top:50%}.journey-role:last-of-type .journey-track:before{bottom:50%}.journey-track i{transform-origin:0;width:10px;height:1px;transition:width .3s var(--ease-out), background .18s ease;background:#317c706b;position:absolute;top:50%;left:7px;transform:translateY(-50%)}.journey-track i:before{content:"";background:var(--page-bg,#f5faf7);width:7px;height:7px;transition:transform .26s var(--ease-out), border-color .18s ease, background .18s ease;border:1px solid #317c707a;border-radius:50%;position:absolute;top:50%;left:-3px;transform:translateY(-50%)scale(.75)}.journey-role-copy{transition:transform .3s var(--ease-out);align-self:center;gap:4px;display:grid}.journey-role-copy strong{font:500 16px/1.35 var(--font-body);letter-spacing:0}.journey-role-copy>span{color:inherit;font-size:14px;line-height:1.4}.journey-role:hover,.journey-role:focus-visible,.journey-role.is-active{color:var(--text);outline:none}.journey-role:hover .journey-role-copy,.journey-role:focus-visible .journey-role-copy,.journey-role.is-active .journey-role-copy{transform:translate(8px)}.journey-role:hover .journey-track i,.journey-role:focus-visible .journey-track i,.journey-role.is-active .journey-track i{background:var(--accent-strong);width:23px}.journey-role:hover .journey-track i:before,.journey-role:focus-visible .journey-track i:before,.journey-role.is-active .journey-track i:before{border-color:var(--accent-strong);background:var(--accent-strong);transform:translateY(-50%)scale(1)}.journey-role:hover .journey-year,.journey-role:focus-visible .journey-year,.journey-role.is-active .journey-year{color:var(--accent-strong)}.journey-context{--context-x:0px;--context-y:0px;box-sizing:border-box;height:390px;transform:translate3d(var(--context-x), var(--context-y), 0);background:#317c700e;border-radius:3px;align-items:center;margin:-56px 0 56px;padding:clamp(28px,3.5vw,48px);transition:transform .65s cubic-bezier(.16,1,.3,1);display:flex;position:relative;left:24px;overflow:hidden}.journey-context-inner{max-width:680px}.journey-context-company{color:var(--accent-strong);margin:0 0 12px;font-size:15px;line-height:1.5}.journey-context h2{font:600 25px/1.25 var(--font-display);letter-spacing:0;margin:0 0 18px}.journey-context-inner>p:not(.journey-context-company):not(.journey-insight){color:#21342dd1;margin:0;font-size:16px;line-height:1.65}.journey-tools{flex-wrap:wrap;gap:8px 18px;margin:28px 0 24px;display:flex}.journey-tools span{color:var(--accent-strong);font-size:15px}.journey-tools span:not(:last-child):after{content:"/";color:#21342d47;margin-left:18px}.journey-insight{color:#21342db8;max-width:60ch;margin:0;font-size:16px;line-height:1.65}.journey-context-enter-active,.journey-context-leave-active{transition:opacity .21s ease, transform .28s var(--ease-out)}.journey-context-enter-from{opacity:0;transform:translateY(14px)}.journey-context-leave-to{opacity:0;transform:translateY(-10px)}.journey-navigation{margin-top:auto;padding:46px 0 0}.to-journey-enter-active .journey-overview{animation:journey-heading-in .44s 30ms var(--ease-out) both}.to-journey-enter-active .journey-roles{animation:journey-roles-in .5s 80ms var(--ease-out) both}.to-journey-enter-active .journey-context{animation:journey-panel-in .56s .1s var(--ease-out) both}.to-journey-enter-active .journey-navigation{animation:journey-support-in .42s .18s var(--ease-out) both}@keyframes journey-heading-in{0%{opacity:0;transform:translateY(-18px)}}@keyframes journey-roles-in{0%{opacity:0;transform:translate(-34px)}}@keyframes journey-panel-in{0%{opacity:0;clip-path:inset(0 0 0 18%);transform:translate(42px,12px)}}@keyframes journey-support-in{0%{opacity:0;transform:translateY(16px)}}.from-journey-leave-active .journey-overview{animation:journey-heading-out .28s var(--ease-in) both}.from-journey-leave-active .journey-roles{animation:journey-roles-out .33s var(--ease-in) both}.from-journey-leave-active .journey-context{animation:journey-panel-out .36s var(--ease-in) both}.from-journey-leave-active .journey-navigation{animation:journey-support-out .26s var(--ease-in) both}@keyframes journey-heading-out{to{opacity:0;transform:translateY(-16px)}}@keyframes journey-roles-out{to{opacity:0;transform:translate(-36px)}}@keyframes journey-panel-out{to{opacity:0;clip-path:inset(0 0 0 20%);transform:translate(48px,-8px)}}@keyframes journey-support-out{to{opacity:0;transform:translateY(14px)}}@media (width<=1100px){.journey-experience{grid-template-columns:280px minmax(0,1fr);gap:40px}.journey-overview{gap:38px}}@media (width<=800px){.highlight-detail-page{scrollbar-width:none;padding:20px;overflow-x:hidden}.highlight-detail-page::-webkit-scrollbar{display:none}.lab-showcase-heading{padding-bottom:28px}.lab-showcase-heading h1{font-size:22px}.lab-showcase{grid-template-columns:1fr;gap:34px}.lab-preview-caption{grid-template-columns:1fr;gap:5px}.lab-showcase-link{min-height:50px}.next-editorial{padding-top:16px}.next-editorial-header{padding-bottom:36px}.next-editorial-header h1{white-space:normal;font-size:32px}.next-editorial-content{grid-template-columns:1fr;gap:38px}.next-editorial-photo{width:min(280px,100%);position:static}.next-directions{padding-top:0}.next-statement{margin-bottom:38px}.next-focus-grid{grid-template-columns:1fr;gap:30px}.next-direction{max-width:34ch}.next-editorial-lead{margin-top:38px}.is-resume-page{scroll-snap-type:none}.journey-screen{justify-content:flex-start;min-height:auto;padding:30px 0 54px}.journey-overview,.journey-experience{grid-template-columns:1fr;gap:30px}.journey-profile{margin-bottom:34px}.journey-profile h1,.journey-screen-title{font-size:32px}.journey-overview{margin-top:38px}.journey-role{grid-template-columns:44px 26px minmax(0,1fr)}.journey-context{width:100%;height:auto;min-height:0;margin:0;padding:26px;left:0}.journey-context h2{font-size:22px}}@media (prefers-reduced-motion:reduce){.next-editorial-photo,.next-editorial-photo img,.lab-showcase-link,.lab-showcase-link i,.preview-object,.preview-route{transition:none}.lab-image-enter-active,.lab-image-leave-active{transition-duration:1ms!important}.lab-image-enter-active img{animation:none}.to-lab-enter-active .lab-showcase-heading>div,.to-lab-enter-active .lab-showcase-heading p,.to-lab-enter-active .lab-showcase-link,.to-lab-enter-active .lab-project-preview,.to-lab-enter-active .detail-navigation,.from-lab-leave-active .lab-showcase-heading,.from-lab-leave-active .lab-showcase-list,.from-lab-leave-active .lab-project-preview,.from-lab-leave-active .detail-navigation,.to-next-enter-active .next-editorial-header,.to-next-enter-active .next-editorial-photo,.to-next-enter-active .next-direction,.to-next-enter-active .detail-navigation,.from-next-leave-active .next-editorial-header,.from-next-leave-active .next-editorial-photo,.from-next-leave-active .next-directions,.from-next-leave-active .detail-navigation,.journey-context{transition:none;transform:none}.journey-context-enter-active,.journey-context-leave-active{transition-duration:1ms!important}.to-journey-enter-active .journey-overview,.to-journey-enter-active .journey-roles,.to-journey-enter-active .journey-context,.to-journey-enter-active .journey-navigation,.from-journey-leave-active .journey-overview,.from-journey-leave-active .journey-roles,.from-journey-leave-active .journey-context,.from-journey-leave-active .journey-navigation{animation-duration:1ms!important;animation-delay:0s!important}}.intro-page{z-index:1;scrollbar-gutter:stable;flex:1;min-height:0;padding:28px clamp(24px,6vw,92px) 44px;position:relative;overflow-y:auto}.portfolio:has(.intro-page):before{opacity:.15}.portfolio:has(.intro-page):after{opacity:.06}.intro-inner{width:min(1240px,100%);margin:auto}.intro-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:center;gap:clamp(72px,11vw,164px);padding:28px 0 22px;display:grid}.intro-narrative{max-width:720px}.intro-heading h1{max-width:none;font:600 48px/1.08 var(--font-display);letter-spacing:0;white-space:nowrap;margin:0 0 24px}.intro-heading>p{color:#21342dcc;max-width:54ch;margin:0;font-size:16px;font-weight:400;line-height:1.7}.intro-portrait{aspect-ratio:4/5;width:100%;margin:0}.intro-portrait-frame{border-radius:38% 12% 32% 14%/28% 16% 26% 18%;width:100%;height:100%;overflow:hidden;box-shadow:0 16px 36px -24px #21342d59}.intro-portrait img{object-fit:cover;width:100%;height:100%;display:block}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.intro-portrait-frame,.intro-portrait img{transition:transform var(--motion-ui) var(--ease-ui)}.intro-portrait:hover .intro-portrait-frame{transform:translateY(-4px)rotate(-1deg)}.intro-portrait:hover img{transform:scale(1.025)}}.intro-story{padding:42px 0 30px}.intro-thought{color:#21342dcc;max-width:54ch;font:400 16px/1.7 var(--font-body);letter-spacing:0;margin:0 0 22px}.intro-copy{gap:18px;max-width:62ch;display:grid}.intro-copy p{color:#21342dcc;margin:0;font-size:16px;font-weight:400;line-height:1.7}.intro-links{flex-wrap:wrap;gap:12px 34px;padding-top:10px;display:flex}.intro-links a{color:var(--text);padding:10px 0;font-size:16px;font-weight:400;text-decoration:none;position:relative}.intro-links a:after{content:"";background:var(--accent-strong);width:0;height:1px;transition:width .22s;position:absolute;bottom:4px;left:0}.intro-links a:hover:after,.intro-links a:focus-visible:after{width:42%}.to-about-card-enter-active .intro-heading{animation:intro-heading-in .5s 40ms var(--ease-out) both}.to-about-card-enter-active .intro-portrait{animation:intro-portrait-in .62s 90ms var(--ease-out) both}.to-about-card-enter-active .intro-story{animation:intro-story-in .52s .15s var(--ease-out) both}.to-about-card-enter-active .intro-links{animation:intro-links-in .36s .23s var(--ease-out) both}@keyframes intro-heading-in{0%{opacity:0;transform:translate(-38px,16px)}}@keyframes intro-portrait-in{0%{opacity:0;clip-path:inset(0 0 24%);transform:translate(30px,18px)scale(.96)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes intro-story-in{0%{opacity:0;transform:translateY(22px)}}@keyframes intro-links-in{0%{opacity:0;transform:translate(24px)}}:is(.from-about-card-leave-active,.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-heading{animation:intro-heading-out .32s var(--ease-in) both}:is(.from-about-card-leave-active,.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-portrait{animation:intro-portrait-out .38s var(--ease-in) both}:is(.from-about-card-leave-active,.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-story,:is(.from-about-card-leave-active,.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-links{animation:intro-content-out .36s var(--ease-in) both}@keyframes intro-heading-out{to{opacity:0;transform:translate(-34px,-8px)}}@keyframes intro-portrait-out{to{opacity:0;transform:translate(28px,20px)scale(.97)}}@keyframes intro-content-out{to{opacity:0;transform:translateY(22px)}}@media (width<=800px){.intro-page{padding:20px}.intro-layout{grid-template-columns:1fr;gap:34px;padding-top:16px}.intro-heading h1{white-space:normal;font-size:40px}.intro-heading>p{font-size:16px}.intro-portrait{width:min(280px,100%)}.intro-story{padding-top:34px}.intro-copy{gap:18px}.intro-links{gap:10px 28px}}@media (prefers-reduced-motion:reduce){.intro-portrait-frame,.intro-portrait img{transition:none;transform:none}.to-about-card-enter-active .intro-portrait,:is(.from-about-card-leave-active,.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-portrait{animation:none!important}.to-about-card-enter-active .intro-heading,.to-about-card-enter-active .intro-portrait,.to-about-card-enter-active .intro-story,.to-about-card-enter-active .intro-links,.from-about-card-leave-active .intro-heading,.from-about-card-leave-active .intro-portrait,.from-about-card-leave-active .intro-story,.from-about-card-leave-active .intro-links,:is(.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-heading,:is(.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-portrait,:is(.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-story,:is(.to-journey-leave-active,.to-lab-leave-active,.to-beyond-leave-active) .intro-links{animation-duration:1ms!important;animation-delay:0s!important}}:root{--bg:#f8fbf9;--surface:#88c4af;--surface-2:#79bda7;--text:#21342d;--muted:#5e746b;--accent:#69c7ba;--accent-strong:#317c70;--font-display:"Onest", sans-serif;--font-body:"Onest", sans-serif;--motion-fast:.18s;--motion-ui:.24s;--motion-page-in:.42s;--motion-page-out:.28s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.55, .05, .65, .45);--ease-ui:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}html{background:var(--bg)}body{color:var(--text);background:var(--bg);-webkit-user-select:text;user-select:text;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-weight:400}button,input,textarea,select{font:inherit}a{color:inherit}.portfolio{isolation:isolate;background:var(--bg);flex-direction:column;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.portfolio:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at 10% 20%,#beebda73,#0000 34%),radial-gradient(circle at 88% 25%,#97e1dc61,#0000 32%),radial-gradient(circle at 70% 90%,#ade8df4d,#0000 38%);position:absolute;inset:0}.portfolio:after{content:"";z-index:0;pointer-events:none;opacity:.3;background-image:repeating-radial-gradient(at 5% 95%,#0000 0 42px,#39695e3d 43px 45px,#0000 46px 72px),repeating-radial-gradient(at 100% 0,#0000 0 55px,#3a827833 56px 58px,#0000 59px 92px);position:absolute;inset:0}.site-header,.highlights-page,.personal-page,.projects-page,.site-footer{z-index:1;position:relative}.site-header,.site-footer,.nav-link,.highlight-description,.loader-progress,.projects-page p,.projects-page span,.projects-page a{font-family:var(--font-body)}.header-left,.highlight-heading h1,.personal-title,.projects-page h1,.projects-page h2,.projects-page h3{font-family:var(--font-display)}.header-left{letter-spacing:-.025em;font-weight:600}.site-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 30px;font-size:14px;font-weight:500;display:flex}.header-left,.header-right{flex:1}.header-right{text-align:right}.header-center{white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:5px;display:flex}.nav-link{color:inherit;letter-spacing:-.01em;padding-bottom:6px;font-weight:500;text-decoration:none;transition:opacity .18s;position:relative}.nav-link:hover{opacity:.65}.nav-link:after{content:"";background:var(--accent-strong);border-radius:2px;width:0;height:2px;transition:width .22s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.nav-link:hover:after{width:35%}.nav-link-active:after{width:75%}.site-footer{flex-shrink:0;padding:20px 30px;font-size:14px;font-weight:500}.footer-links{align-items:center;gap:5px;display:flex}.footer-links a{color:var(--text);padding-bottom:4px;text-decoration:none;transition:opacity .18s;position:relative}.footer-links a:hover{opacity:.6}.footer-links a:after{content:"";background:var(--accent-strong);width:0;height:1px;transition:width .18s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.footer-links a:hover:after{width:70%}.highlights-page{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.highlights-stage{justify-content:center;align-items:center;display:flex;position:relative}.highlights-motion{transform-style:preserve-3d;justify-content:center;align-items:center;display:flex;position:relative}.highlight-heading{pointer-events:none;z-index:1;justify-content:center;width:100%;display:flex;position:absolute;bottom:calc(100% + 25px);left:50%;transform:translate(-50%)}.highlight-heading h1{letter-spacing:-.06em;text-align:center;white-space:nowrap;background:linear-gradient(#21342d 0%,#2d463e 35%,#5d766d 70%,#21342d2e 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(48px,7vw,120px);font-weight:700;line-height:.88;display:inline-block}.highlights-cards{z-index:2;align-items:center;gap:0;display:flex;position:relative}.card-slot{transform:translateX(var(--dance-x,0px));will-change:transform;transition:transform .22s cubic-bezier(.22,1,.36,1);position:relative}.card-slot+.card-slot{margin-left:-70px}.card-slot:first-child{--offset-y:-3px;--rotation:-.5deg;margin-top:-7px}.card-slot:nth-child(2){--offset-y:4px;--rotation:.3deg;margin-top:4px}.card-slot:nth-child(3){--offset-y:-7px;--rotation:-.2deg;margin-top:-2px}.card-slot:nth-child(4){--offset-y:4px;--rotation:.35deg;margin-top:6px}.card-slot:nth-child(5){--offset-y:-4px;--rotation:-.4deg;margin-top:-8px}.card-slot.is-active{z-index:20}.card-intro,.card-flight{backface-visibility:hidden;transform-style:preserve-3d;position:relative}.card-flight{will-change:transform, opacity;transform:translate(0,0)}.card-pointer-motion{--pointer-x:0px;--pointer-y:0px;--pointer-rx:0deg;--pointer-ry:0deg;transform:perspective(1400px) translate3d(var(--pointer-x), var(--pointer-y), 0) rotateX(var(--pointer-rx)) rotateY(var(--pointer-ry));transform-style:preserve-3d;will-change:transform;transition:transform .24s cubic-bezier(.22,1,.36,1);position:relative}.card-tilt{--glare-x:50%;--glare-y:50%;--base-rotate:0deg;transform-style:preserve-3d;transform:perspective(1200px) rotateZ(var(--base-rotate)) translateZ(0);will-change:transform;transition:transform .26s cubic-bezier(.22,1,.36,1),filter .26s;position:relative}.card-hitbox:hover .card-tilt,.card-hitbox:focus-visible .card-tilt{z-index:30;transform:perspective(1200px) rotateZ(var(--base-rotate)) translateY(-12px) scale(1.03) translateZ(40px)}.highlight-card{width:320px;height:420px;font-family:var(--font-body);transform-style:preserve-3d;background:linear-gradient(145deg,#88c4aff2,#79bda7f0);border-radius:20px;transition:box-shadow .26s;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000001a,0 2px 8px #00000014}.card-hitbox:hover .highlight-card,.card-hitbox:focus-visible .highlight-card{box-shadow:0 28px 60px #00000029,0 10px 20px #0000001a}.highlight-card:before{content:"";border-radius:inherit;pointer-events:none;z-index:3;border:1px solid #ffffff38;position:absolute;inset:0}.card-visual{width:100%;height:100%}.card-visual img{object-fit:cover;width:100%;height:100%;display:block}.card-glare{z-index:2;pointer-events:none;background:radial-gradient(circle at var(--glare-x) var(--glare-y), #ffffff94 0%, #dcfff93d 14%, #a9efe51a 28%, transparent 52%);opacity:0;transition:opacity .18s;position:absolute;inset:0}.card-hitbox:hover .card-glare,.card-hitbox:focus-visible .card-glare{opacity:.5}.highlight-description{text-align:center;pointer-events:none;justify-content:center;align-items:flex-start;width:100%;min-height:50px;display:flex;position:absolute;top:calc(100% + 25px);left:50%;transform:translate(-50%)}.highlight-description p{letter-spacing:-.01em;max-width:650px;color:var(--muted);margin:0;font-size:15px;font-weight:500;line-height:1.5}.title-rise{animation:.18s cubic-bezier(.22,1,.36,1) title-rise}@keyframes title-rise{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.description-rise{animation:.16s cubic-bezier(.22,1,.36,1) description-rise}@keyframes description-rise{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.highlights-loader{z-index:50;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.loader-copy{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text);font-size:clamp(16px,1.35vw,21px);font-weight:600;position:relative}.loader-copy:before,.loader-copy:after{content:attr(data-text);white-space:nowrap;pointer-events:none;width:100%;position:absolute;left:0}.loader-copy:before{color:var(--accent-strong);opacity:.66;animation:1.25s ease-in-out infinite loader-echo-top;top:-18px}.loader-copy:after{color:var(--muted);opacity:.16;animation:1.25s ease-in-out infinite loader-echo-bottom;top:18px}.loader-copy>span{z-index:1;position:relative}.loader-progress{letter-spacing:.12em;text-align:center;min-width:42px;color:var(--muted);margin-top:10px;font-size:11px;font-weight:600}@keyframes loader-echo-top{0%,to{opacity:.3;transform:translateY(3px)}50%{opacity:.72;transform:translateY(0)}}@keyframes loader-echo-bottom{0%,to{opacity:.08;transform:translateY(-3px)}50%{opacity:.24;transform:translateY(0)}}.asset-loader-leave-active{transition:opacity .28s,transform .28s}.asset-loader-leave-to{opacity:0;transform:translateY(-8px)scale(.985)}.cards-intro .card-intro{opacity:0;animation:.78s cubic-bezier(.16,1,.3,1) forwards first-visit-card-in;animation-delay:var(--intro-delay,0s);will-change:transform, opacity}@keyframes first-visit-card-in{0%{opacity:0;transform:perspective(1200px) translate3d(var(--intro-x,0px), 120px, 0) rotateZ(var(--intro-r,0deg)) rotateX(5deg) scale(.86)}64%{opacity:1;transform:perspective(1200px)translate3d(0,-9px,30px)rotate(0)rotateX(0)scale(1.012)}84%{transform:perspective(1200px)translateY(3px)scale(.996)}to{opacity:1;transform:perspective(1200px)translate(0,0)scale(1)}}.to-personal-leave-active .highlights-cards,.to-projects-leave-active .highlights-cards,.from-personal-enter-active .highlights-cards,.from-projects-enter-active .highlights-cards{pointer-events:none}.to-personal-leave-active .card-flight,.to-projects-leave-active .card-flight,.from-personal-enter-active .card-flight,.from-projects-enter-active .card-flight{backface-visibility:hidden;transform-style:preserve-3d;will-change:transform, opacity}.to-personal-leave-active .highlight-heading,.to-personal-leave-active .highlight-description,.to-projects-leave-active .highlight-heading,.to-projects-leave-active .highlight-description{animation:.18s both route-label-out}@keyframes route-label-out{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-10px)}}.to-personal-leave-active .card-flight{animation:.42s cubic-bezier(.55,0,.25,1) both card-cascade-left}.to-personal-leave-active .card-slot:first-child .card-flight{animation-delay:0s}.to-personal-leave-active .card-slot:nth-child(2) .card-flight{animation-delay:35ms}.to-personal-leave-active .card-slot:nth-child(3) .card-flight{animation-delay:70ms}.to-personal-leave-active .card-slot:nth-child(4) .card-flight{animation-delay:.105s}.to-personal-leave-active .card-slot:nth-child(5) .card-flight{animation-delay:.14s}@keyframes card-cascade-left{0%{opacity:1;transform:perspective(1200px)translate(0,0)rotateX(0)rotateY(0)rotate(0)scale(1)}18%{opacity:1;transform:perspective(1200px)translate3d(-8px,-16px,50px)rotateX(2deg)rotateY(7deg)rotate(-2deg)scale(1.035)}42%{opacity:1;transform:perspective(1200px)translate3d(-90px,-30px,90px)rotateX(5deg)rotateY(18deg)rotate(-7deg)scale(1.02)}to{opacity:0;transform:perspective(1200px)translate3d(-72vw,-15vh,120px)rotateX(12deg)rotateY(42deg)rotate(-19deg)scale(.78)}}.from-personal-enter-active .card-flight{animation:.52s cubic-bezier(.16,1,.3,1) both card-deal-from-left}.from-personal-enter-active .card-slot:nth-child(5) .card-flight{animation-delay:0s}.from-personal-enter-active .card-slot:nth-child(4) .card-flight{animation-delay:40ms}.from-personal-enter-active .card-slot:nth-child(3) .card-flight{animation-delay:80ms}.from-personal-enter-active .card-slot:nth-child(2) .card-flight{animation-delay:.12s}.from-personal-enter-active .card-slot:first-child .card-flight{animation-delay:.17s}@keyframes card-deal-from-left{0%{opacity:0;transform:perspective(1200px)translate3d(-70vw,-14vh,120px)rotateX(10deg)rotateY(38deg)rotate(-18deg)scale(.8)}55%{opacity:1;transform:perspective(1200px)translate3d(25px,-18px,40px)rotateX(2deg)rotateY(-4deg)rotate(2deg)scale(1.035)}78%{opacity:1;transform:perspective(1200px)translate(-7px,5px)rotateY(1deg)rotate(-.7deg)scale(.992)}to{opacity:1;transform:perspective(1200px)translate(0,0)rotateX(0)rotateY(0)rotate(0)scale(1)}}.to-projects-leave-active .card-flight{animation:.48s cubic-bezier(.55,0,.25,1) both card-cascade-right}.to-projects-leave-active .card-slot:nth-child(5) .card-flight{animation-delay:0s}.to-projects-leave-active .card-slot:nth-child(4) .card-flight{animation-delay:35ms}.to-projects-leave-active .card-slot:nth-child(3) .card-flight{animation-delay:70ms}.to-projects-leave-active .card-slot:nth-child(2) .card-flight{animation-delay:.105s}.to-projects-leave-active .card-slot:first-child .card-flight{animation-delay:.14s}@keyframes card-cascade-right{0%{opacity:1;transform:perspective(1200px)translate(0,0)rotateX(0)rotateY(0)rotate(0)scale(1)}18%{opacity:1;transform:perspective(1200px)translate3d(8px,-16px,50px)rotateX(2deg)rotateY(-7deg)rotate(2deg)scale(1.035)}42%{opacity:1;transform:perspective(1200px)translate3d(90px,-30px,90px)rotateX(5deg)rotateY(-18deg)rotate(7deg)scale(1.02)}to{opacity:0;transform:perspective(1200px)translate3d(72vw,15vh,120px)rotateX(12deg)rotateY(-42deg)rotate(19deg)scale(.78)}}.from-projects-enter-active .card-flight{animation:.54s cubic-bezier(.16,1,.3,1) both card-deal-from-right}.from-projects-enter-active .card-slot:first-child .card-flight{animation-delay:0s}.from-projects-enter-active .card-slot:nth-child(2) .card-flight{animation-delay:40ms}.from-projects-enter-active .card-slot:nth-child(3) .card-flight{animation-delay:80ms}.from-projects-enter-active .card-slot:nth-child(4) .card-flight{animation-delay:.12s}.from-projects-enter-active .card-slot:nth-child(5) .card-flight{animation-delay:.17s}@keyframes card-deal-from-right{0%{opacity:0;transform:perspective(1200px)translate3d(70vw,14vh,120px)rotateX(10deg)rotateY(-38deg)rotate(18deg)scale(.8)}55%{opacity:1;transform:perspective(1200px)translate3d(-25px,-18px,40px)rotateX(2deg)rotateY(4deg)rotate(-2deg)scale(1.035)}78%{opacity:1;transform:perspective(1200px)translate(7px,5px)rotateY(-1deg)rotate(.7deg)scale(.992)}to{opacity:1;transform:perspective(1200px)translate(0,0)rotateX(0)rotateY(0)rotate(0)scale(1)}}.to-about-card-leave-active .card-flight{animation:card-stack-soft-fold .38s var(--ease-in) both}.to-about-card-leave-active .card-slot:first-child .card-flight{animation:card-stack-about-open .46s var(--ease-in) both}.from-about-card-enter-active .card-flight{opacity:0;animation:card-stack-about-return .42s var(--ease-out) forwards}.to-beyond-leave-active .card-flight{animation:card-stack-beyond-drift .4s var(--ease-in) both}.to-beyond-leave-active .card-slot:nth-child(2) .card-flight{animation:card-stack-beyond-open .48s var(--ease-in) both}.from-beyond-enter-active .card-flight{opacity:0;animation:card-stack-beyond-return .43s var(--ease-out) forwards}.to-journey-leave-active .card-slot:nth-child(odd) .card-flight{animation:card-stack-journey-left .41s var(--ease-in) both}.to-journey-leave-active .card-slot:nth-child(2n) .card-flight{animation:card-stack-journey-right .41s var(--ease-in) both}.to-journey-leave-active .card-slot:nth-child(3) .card-flight{animation:card-stack-journey-open .48s var(--ease-in) both}.from-journey-enter-active .card-flight{opacity:0;animation:card-stack-journey-return .44s var(--ease-out) forwards}.to-lab-leave-active .card-flight{animation:card-stack-lab-collapse .41s var(--ease-in) both}.to-lab-leave-active .card-slot:nth-child(4) .card-flight{animation:card-stack-lab-open .48s var(--ease-in) both}.from-lab-enter-active .card-flight{opacity:0;animation:card-stack-lab-return .42s var(--ease-out) forwards}.to-next-leave-active .card-flight{animation:card-stack-next-lift .4s var(--ease-in) both}.to-next-leave-active .card-slot:nth-child(5) .card-flight{animation:card-stack-next-open .48s var(--ease-in) both}.from-next-enter-active .card-flight{opacity:0;animation:card-stack-next-return .45s var(--ease-out) forwards}.from-about-card-enter-active .card-slot:nth-child(2) .card-flight,.from-beyond-enter-active .card-slot:nth-child(2) .card-flight,.from-journey-enter-active .card-slot:nth-child(2) .card-flight,.from-lab-enter-active .card-slot:nth-child(2) .card-flight,.from-next-enter-active .card-slot:nth-child(2) .card-flight{animation-delay:35ms}.from-about-card-enter-active .card-slot:nth-child(3) .card-flight,.from-beyond-enter-active .card-slot:nth-child(3) .card-flight,.from-journey-enter-active .card-slot:nth-child(3) .card-flight,.from-lab-enter-active .card-slot:nth-child(3) .card-flight,.from-next-enter-active .card-slot:nth-child(3) .card-flight{animation-delay:70ms}.from-about-card-enter-active .card-slot:nth-child(4) .card-flight,.from-beyond-enter-active .card-slot:nth-child(4) .card-flight,.from-journey-enter-active .card-slot:nth-child(4) .card-flight,.from-lab-enter-active .card-slot:nth-child(4) .card-flight,.from-next-enter-active .card-slot:nth-child(4) .card-flight{animation-delay:.105s}.from-about-card-enter-active .card-slot:nth-child(5) .card-flight,.from-beyond-enter-active .card-slot:nth-child(5) .card-flight,.from-journey-enter-active .card-slot:nth-child(5) .card-flight,.from-lab-enter-active .card-slot:nth-child(5) .card-flight,.from-next-enter-active .card-slot:nth-child(5) .card-flight{animation-delay:.14s}.from-about-card-enter-active .card-slot:first-child .card-flight,.from-beyond-enter-active .card-slot:nth-child(2) .card-flight,.from-journey-enter-active .card-slot:nth-child(3) .card-flight,.from-lab-enter-active .card-slot:nth-child(4) .card-flight,.from-next-enter-active .card-slot:nth-child(5) .card-flight{animation-delay:40ms}@keyframes card-stack-soft-fold{to{opacity:0;transform:translate(-34px,34px)rotate(-5deg)scale(.88)}}@keyframes card-stack-about-open{to{opacity:0;transform:translate(-70px)rotate(-1deg)scale(1.12)}}@keyframes card-stack-about-return{0%{opacity:0;transform:translate(-42px,28px)rotate(-4deg)scale(.9)}to{opacity:1;transform:none}}@keyframes card-stack-beyond-drift{to{opacity:0;transform:translate(18px,62px)rotate(7deg)scale(.9)}}@keyframes card-stack-beyond-open{to{opacity:0;transform:translate(-24px,-76px)rotate(-7deg)scale(1.08)}}@keyframes card-stack-beyond-return{0%{opacity:0;transform:translate(-24px,70px)rotate(-8deg)scale(.9)}to{opacity:1;transform:none}}@keyframes card-stack-journey-left{to{opacity:0;transform:translate(-90px)rotate(-4deg)scale(.92)}}@keyframes card-stack-journey-right{to{opacity:0;transform:translate(90px)rotate(4deg)scale(.92)}}@keyframes card-stack-journey-open{to{opacity:0;clip-path:inset(0 0 0 48%);transform:translateY(-18px)scale(1.14)}}@keyframes card-stack-journey-return{0%{opacity:0;transform:translateY(44px)scale(.9)}to{opacity:1;transform:none}}@keyframes card-stack-lab-collapse{to{opacity:0;transform:translateY(42px)scaleX(.72)scaleY(.88)}}@keyframes card-stack-lab-open{to{opacity:0;transform:translate(42px)scaleX(1.2)scaleY(.96)}}@keyframes card-stack-lab-return{0%{opacity:0;transform:translateY(-26px)scaleX(.75)}to{opacity:1;transform:none}}@keyframes card-stack-next-lift{to{opacity:0;transform:translateY(-76px)scale(.92)}}@keyframes card-stack-next-open{to{opacity:0;transform:translate(28px,-110px)rotate(3deg)scale(1.08)}}@keyframes card-stack-next-return{0%{opacity:0;transform:translateY(-72px)scale(.9)}to{opacity:1;transform:none}}.page-enter-active,.page-leave-active{will-change:opacity, transform}.page-enter-active{transition:opacity var(--motion-page-in) ease-out, transform var(--motion-page-in) var(--ease-out)}.page-leave-active{transition:opacity var(--motion-page-out) ease-in, transform var(--motion-page-out) var(--ease-in)}.page-enter-from{opacity:0;transform:translateY(16px)}.page-leave-to{opacity:0;transform:translateY(-8px)}@media (width<=1380px){.highlights-stage{transform:scale(.88)}}@media (width<=1160px){.highlights-stage{transform:scale(.74)}}@media (width<=900px){.site-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions""nav nav";gap:10px 18px;padding:16px 20px 13px;display:grid}.header-left{grid-area:brand;min-width:0}.header-center{white-space:nowrap;flex-wrap:nowrap;grid-area:nav;justify-content:flex-start;width:100%;position:static;left:auto;transform:none}.header-right{text-align:right;grid-area:actions;justify-content:flex-end;width:auto}.site-footer{padding-inline:20px}.highlights-stage{transform:scale(.61)}}@media (width<=700px){.personal-page,.projects-page,.highlight-detail-page,.intro-page,.beyond-page{scrollbar-width:none}.personal-page::-webkit-scrollbar{display:none}.projects-page::-webkit-scrollbar{display:none}.highlight-detail-page::-webkit-scrollbar{display:none}.intro-page::-webkit-scrollbar{display:none}.beyond-page::-webkit-scrollbar{display:none}.site-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions""nav nav";gap:10px 14px;padding:14px 18px 12px;font-size:12px;display:grid}.header-left{grid-area:brand;min-width:0}.header-brand{max-width:145px;font-size:11px;line-height:1.25;display:block}.header-center{white-space:nowrap;grid-area:nav;justify-content:flex-start;gap:5px;width:100%;position:static;left:auto;transform:none}.nav-link{padding-bottom:4px}.header-right{text-align:right;grid-area:actions;justify-content:flex-end;gap:7px;width:auto}.language-switcher{gap:4px}.language-switcher button{font-size:11px}.contact-button{min-width:0;padding:9px 14px;font-size:11px;box-shadow:0 6px 14px #00000029}.site-footer{background:linear-gradient(#f8fbf9b8,#f8fbf9f5);padding:12px 18px 14px;font-size:12px}.highlights-stage{width:100%;transform:none}.highlights-page{justify-content:flex-start;width:100%;min-height:0;overflow:hidden}.highlights-motion{width:100%;display:block}.highlights-cards{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x;gap:16px;width:100%;padding:24px 12vw 18px;scroll-padding-inline:12vw;overflow:auto hidden}.highlights-cards::-webkit-scrollbar{display:none}.card-slot,.card-slot+.card-slot,.card-slot:nth-child(n){scroll-snap-align:center;flex:none;margin:0;transform:none}.card-pointer-motion{transition:none;transform:none}.highlight-heading,.highlight-description{display:none}}@media (width>=520px) and (width<=700px){.highlights-cards{gap:18px;padding-inline:8vw;scroll-padding-inline:8vw}.card-slot{scroll-snap-align:start}}@media (width<=420px){.site-header{padding-inline:14px}.header-brand{max-width:122px;font-size:10px}.contact-button{padding-inline:12px}.highlights-cards{padding-inline:10vw}}@media (prefers-reduced-motion:reduce){.card-pointer-motion{transition:none;transform:none}.loader-copy:before,.loader-copy:after,.cards-intro .card-intro,.to-personal-leave-active .card-flight,.to-projects-leave-active .card-flight,.from-personal-enter-active .card-flight,.from-projects-enter-active .card-flight,.to-about-card-leave-active .card-flight,.from-about-card-enter-active .card-flight,.to-beyond-leave-active .card-flight,.from-beyond-enter-active .card-flight,.to-journey-leave-active .card-flight,.from-journey-enter-active .card-flight,.to-lab-leave-active .card-flight,.from-lab-enter-active .card-flight,.to-next-leave-active .card-flight,.from-next-enter-active .card-flight{animation-duration:1ms!important;animation-delay:0s!important}.page-enter-active,.page-leave-active{transition-duration:1ms!important}.language-transition.is-active .language-transition__wash,.language-transition.is-active .language-transition__label,.language-transition__label i:after{animation-duration:1ms!important}}.header-left{flex:1}.header-brand{color:var(--text);font-family:var(--font-display);letter-spacing:-.025em;padding-bottom:6px;font-weight:600;text-decoration:none;transition:opacity .18s;display:inline-block;position:relative}.header-brand:hover{opacity:.65}.header-brand:after{content:"";background:var(--accent-strong);border-radius:2px;width:0;height:2px;transition:width .22s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.header-brand:hover:after{width:35%}.header-brand-active:after{width:75%}.header-right{justify-content:flex-end;align-items:center;gap:8px;display:flex}.language-switcher{align-items:center;gap:6px;display:inline-flex}.language-switcher button{color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;padding:3px 1px 6px;font-size:13px;font-weight:500;transition:color .18s,opacity .18s;position:relative}.language-switcher button:hover{color:var(--text)}.language-switcher button:after{content:"";background:var(--accent-strong);border-radius:999px;width:0;height:2px;transition:width .22s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.language-switcher button:hover:after{width:40%}.language-switcher button.is-active{color:var(--text);font-weight:600}.language-switcher button.is-active:after{width:85%}.language-separator{color:var(--muted);opacity:.45;font-size:11px}.language-transition{z-index:9999;pointer-events:none;visibility:hidden;position:fixed;inset:0}.language-transition__wash{clip-path:circle(0% at calc(100% - 115px) 28px);background:radial-gradient(circle at 82% 16%,#81daccb8 0%,#dcf4edf2 35%,#f8fbf9fb 68%);position:absolute;inset:0}.language-transition.is-active{visibility:visible}.language-transition.is-active .language-transition__wash{animation:.72s cubic-bezier(.76,0,.24,1) both language-wash}@keyframes language-wash{0%{clip-path:circle(0% at calc(100% - 115px) 28px)}46%{clip-path:circle(150vmax at calc(100% - 115px) 28px)}56%{clip-path:circle(150vmax at calc(100% - 115px) 28px)}to{clip-path:circle(0% at calc(100% - 115px) 28px)}}.language-transition__label{opacity:0;font-family:var(--font-display);color:var(--text);align-items:center;gap:18px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)translateY(12px)}.language-transition.is-active .language-transition__label{animation:.72s both language-label}.language-transition__label span{color:var(--muted);font-size:18px}.language-transition__label strong{letter-spacing:-.05em;font-size:32px;font-weight:600}.language-transition__label i{background:#21342d38;width:50px;height:1px;position:relative}.language-transition__label i:after{content:"";background:var(--accent-strong);width:0;height:1px;animation:.72s both language-progress;position:absolute;top:0;left:0}@keyframes language-progress{20%{width:0%}60%{width:100%}to{width:100%}}@keyframes language-label{0%,20%{opacity:0;transform:translate(-50%,-50%)translateY(12px)}38%,62%{opacity:1;transform:translate(-50%,-50%)translateY(0)}80%,to{opacity:0;transform:translate(-50%,-50%)translateY(-10px)}}.contact-button{cursor:pointer}.contact-button__text{align-items:center;display:inline-flex}.contact-button.is-copied{background:#69c7ba2e;border-color:#317c7061}.contact-button.is-copied .contact-button__dot{transform:scale(1.15);box-shadow:0 0 0 8px #317c700f}.contact-button.is-copied .contact-button__arrow{color:var(--accent-strong);transform:scale(1.1)}.contact-wrap{justify-content:center;align-items:center;display:flex;position:relative}.contact-button{appearance:none;color:#fff;min-width:155px;font-family:var(--font-body);letter-spacing:-.01em;cursor:pointer;background:#078b78;border:0;border-radius:999px;outline:0;justify-content:center;align-items:center;padding:10px 24px;font-size:13px;font-weight:700;transition:transform .22s cubic-bezier(.22,1,.36,1),background .18s,box-shadow .22s;display:inline-flex;box-shadow:0 8px 18px #00000038}.contact-button:hover{background:#277367;transform:translateY(-2px);box-shadow:0 12px 24px #317c7047}.contact-button:active{background:#066c5f;transform:translateY(0)scale(.97);box-shadow:0 5px 12px #0000002e}.contact-toast{color:#ffffffeb;font-family:var(--font-body);white-space:nowrap;-webkit-backdrop-filter:blur(10px);z-index:20;background:#161918f0;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:10px;font-weight:500;display:flex;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);box-shadow:0 6px 16px #00000024}.contact-toast-enter-active,.contact-toast-leave-active{transition:opacity .22s,transform .26s cubic-bezier(.22,1,.36,1)}.contact-toast-enter-from{opacity:0;transform:translate(-50%)translateY(-5px)scale(.94)}.contact-toast-enter-to,.contact-toast-leave-from{opacity:1;transform:translate(-50%)translateY(0)scale(1)}.contact-toast-leave-to{opacity:0;transform:translate(-50%)translateY(-4px)scale(.96)}:root{--page-gutter:clamp(20px, 5vw, 80px);--section-gap:clamp(28px, 4vw, 64px)}.portfolio .site-header{padding:max(16px, env(safe-area-inset-top)) var(--page-gutter) 16px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"brand nav actions";gap:16px 24px;display:grid}.portfolio .header-left{grid-area:brand;min-width:0}.portfolio .header-brand{max-width:240px;font-size:14px;line-height:1.4}.portfolio .header-center{white-space:normal;flex-wrap:wrap;grid-area:nav;gap:4px 8px;width:auto;min-width:0;position:static;transform:none}.portfolio .header-right{grid-area:actions;justify-content:flex-end;gap:12px;min-width:0}.portfolio .nav-link{padding:10px 0;line-height:1.4}.portfolio .language-switcher{flex-shrink:0;gap:4px}.portfolio .language-switcher button{min-width:32px;min-height:44px;padding:8px 4px;font-size:13px}.portfolio .language-separator{font-size:11px}.portfolio .contact-button{white-space:nowrap;min-width:0;min-height:44px;padding:10px 18px}.portfolio .contact-toast{white-space:normal;text-align:center;max-width:calc(100vw - 40px);left:auto;right:0;transform:none}.portfolio .site-footer{padding:16px var(--page-gutter) max(16px, env(safe-area-inset-bottom))}.portfolio .footer-links{flex-wrap:wrap;gap:4px 10px}.portfolio .footer-links a{align-items:center;min-height:44px;padding:8px 0;display:inline-flex}.portfolio :is(a,button){touch-action:manipulation}.portfolio :is(a,button):focus-visible{outline:2px solid var(--accent-strong);outline-offset:4px}.portfolio :is(main,section,article,aside,figure,nav){min-width:0}.portfolio :is(h1,h2,h3,p,li,.project-copy,.experience-row,.lab-preview-caption,.next-direction,.beyond-coverage a){overflow-wrap:anywhere}.portfolio :is(h1,h2){text-wrap:balance}.portfolio :is(.intro-page,.personal-page,.projects-page,.highlight-detail-page,.beyond-page){padding-inline:var(--page-gutter);scrollbar-gutter:stable;overflow-y:auto}.portfolio :is(.personal-page,.projects-page){display:block}.portfolio .personal-layout{margin:auto}.portfolio .projects-layout{gap:var(--section-gap);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(180px,.5fr);min-height:0;margin:auto}.portfolio .intro-layout{gap:var(--section-gap);grid-template-columns:minmax(0,1fr) minmax(260px,.62fr)}.portfolio .intro-heading h1,.portfolio .personal-title{white-space:normal;font-size:clamp(32px,3.6vw,48px)}.portfolio .beyond-story h1,.portfolio .next-editorial-header h1{white-space:normal;font-size:clamp(30px,3vw,38px)}.portfolio .personal-layout{column-gap:var(--section-gap)}.portfolio .personal-title{margin-bottom:28px}.portfolio .beyond-intro{gap:var(--section-gap);align-items:start}.portfolio .lab-showcase{gap:var(--section-gap);grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr)}.portfolio .next-editorial-content{gap:var(--section-gap);grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr)}.portfolio .next-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.portfolio .journey-context{align-self:start;height:auto;min-height:390px;margin:0;left:0;overflow:visible}.portfolio .journey-experience{gap:var(--section-gap)}.portfolio .is-resume-page{scroll-snap-type:none;scroll-behavior:auto}.portfolio .journey-screen{scroll-snap-align:none;min-height:auto;padding:30px 0 54px}.portfolio .journey-page{margin:0}.portfolio .journey-profile{width:min(600px,100%)}.portfolio .lab-topology-preview{aspect-ratio:auto}.portfolio .lab-topology-preview pre{padding:16px;font-size:10px;display:block;overflow-x:auto;transform:none}.portfolio .lab-preview-image img{min-height:0}.portfolio .lab-project-open{min-height:44px;color:var(--accent-strong);text-underline-offset:4px;align-items:center;margin-top:8px;line-height:1.5;display:inline-flex}.portfolio .detail-navigation a{max-width:100%;min-height:44px;line-height:1.6}.portfolio .highlights-stage{--card-width:clamp(220px, 21vw, 360px);--card-height:clamp(280px, 24vw, 410px);width:auto;max-width:100%;transform:none}.portfolio .card-slot+.card-slot{margin-left:clamp(-70px,-4vw,-40px)}.portfolio .highlight-heading h1{white-space:normal;max-width:90vw;font-size:clamp(36px,5vw,100px)}.portfolio .highlights-page{align-items:safe center;overflow-y:auto}@media (width<=1200px){.portfolio .site-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions""nav nav";gap:4px 20px}.portfolio .header-center{justify-content:flex-start}.portfolio .projects-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.portfolio .projects-visual{display:none}.portfolio .next-focus-grid{grid-template-columns:1fr;gap:26px}.portfolio .next-direction{max-width:60ch}}@media (width<=1100px),(height<=600px){.portfolio .highlights-page{align-items:safe center;display:flex;overflow:hidden auto}.portfolio .highlights-stage{--card-width:clamp(240px, 70vw, 320px);--card-height:calc(var(--card-width) * 1220 / 1152);width:100%;min-width:0}.portfolio .highlights-motion{width:100%;display:block}.portfolio .highlights-cards{width:100%;padding:28px var(--page-gutter) 32px;scroll-snap-type:x mandatory;scroll-padding-inline:var(--page-gutter);overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;gap:22px;overflow:auto hidden}.portfolio .highlights-cards::-webkit-scrollbar{height:4px;display:block}.portfolio .card-slot,.portfolio .card-slot:nth-child(n){scroll-snap-align:start;flex:none;margin:0;transform:none}.portfolio .card-pointer-motion,.portfolio .card-tilt,.portfolio .card-hitbox:hover .card-tilt,.portfolio .card-hitbox:focus-visible .card-tilt,.portfolio .highlight-card{transform:none}.portfolio .card-sway{animation:none}.portfolio :is(.highlight-heading,.highlight-description){display:none}}@media (width<=1000px){.portfolio .intro-layout{grid-template-columns:minmax(0,1fr);gap:30px}.portfolio .intro-narrative{display:contents}.portfolio .intro-heading{grid-row:1}.portfolio .intro-portrait{grid-row:2;justify-self:center;width:min(360px,100%)}.portfolio .intro-story{grid-row:3;padding:4px 0 0}.portfolio .intro-links{grid-row:4;padding-top:0}.portfolio :is(.intro-heading>p,.intro-thought,.intro-copy){max-width:70ch}.portfolio .personal-layout{grid-template-columns:minmax(0,1fr);row-gap:32px}.portfolio .personal-side{justify-self:center;max-width:440px}.portfolio .personal-photo{aspect-ratio:5/6;width:100%}.portfolio .personal-side-copy{width:100%}.portfolio .lab-showcase{grid-template-columns:minmax(0,1fr);gap:28px}.portfolio .lab-project-preview{width:100%;max-width:760px}.portfolio .lab-showcase-link i{opacity:1;flex-shrink:0;transform:none}.portfolio .next-editorial-content{grid-template-columns:minmax(0,1fr);gap:34px}.portfolio .next-editorial-photo{justify-self:center;width:min(360px,100%);position:static}.portfolio .next-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio .beyond-intro{grid-template-columns:minmax(0,1fr);gap:30px}.portfolio .beyond-illustration{grid-row:2}.portfolio .beyond-story{grid-row:1}.portfolio .journey-experience{grid-template-columns:minmax(0,1fr);gap:28px}.portfolio .journey-context{width:100%;min-height:0;padding:26px}.portfolio .journey-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}@media (width<=700px){:root{--page-gutter:20px}html,body,#app{height:auto;min-height:100%}.portfolio{height:auto;min-height:100svh;overflow:clip}.portfolio .site-header{padding-inline:max(var(--page-gutter), env(safe-area-inset-left))}.portfolio .header-brand{max-width:180px;font-size:13px}.portfolio .header-center{gap:4px 7px;font-size:13px}.portfolio .header-right{flex-direction:column;justify-content:center;align-items:flex-end;gap:4px}.portfolio .header-divider{display:none}.portfolio .contact-button{padding-inline:14px;font-size:13px}.portfolio .language-switcher button{min-width:28px;font-size:12px}.portfolio :is(.intro-page,.personal-page,.projects-page,.highlight-detail-page,.beyond-page){scrollbar-gutter:auto;padding:24px max(var(--page-gutter), env(safe-area-inset-right)) 40px max(var(--page-gutter), env(safe-area-inset-left));flex:1 0 auto;overflow:visible}.portfolio .intro-layout{padding-top:0}.portfolio .intro-portrait{width:min(320px,100%)}.portfolio .intro-links{gap:8px 24px}.portfolio .intro-links a{min-height:44px}.portfolio .personal-story p,.portfolio .personal-story .personal-lead,.portfolio .personal-side-copy p{font-size:16px}.portfolio .projects-layout{grid-template-columns:minmax(0,1fr);gap:40px}.portfolio .projects-middle{gap:36px}.portfolio .project-title{font-size:16px;line-height:1.4}.portfolio .project-detail{font-size:14px;line-height:1.5}.portfolio :is(.focus-row,.experience-role,.experience-company){font-size:16px;line-height:1.5}.portfolio .lab-showcase-heading{padding-top:0}.portfolio .lab-preview-image{padding:12px}.portfolio .next-editorial{padding-top:0}.portfolio .next-focus-grid,.portfolio .journey-overview{grid-template-columns:minmax(0,1fr)}.portfolio .journey-screen{padding:0 0 40px}.portfolio .journey-profile h1,.portfolio .journey-screen-title{font-size:32px}.portfolio .journey-context{padding:22px}.portfolio .journey-role{min-height:80px}.portfolio .journey-navigation{padding-top:30px}.portfolio .detail-navigation{justify-content:flex-start}.portfolio .highlights-page{flex:none;align-items:flex-start;min-height:0;overflow:visible}.portfolio .highlights-cards{padding-top:16px;padding-bottom:20px}.portfolio .site-footer{padding-inline:max(var(--page-gutter), env(safe-area-inset-left));background:0 0;margin-top:auto}}@media (width<=480px){.portfolio .site-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand language""nav contact";align-items:center;gap:8px 12px}.portfolio .header-brand{max-width:none}.portfolio .header-right{display:contents}.portfolio .language-switcher{grid-area:language;justify-self:end}.portfolio .contact-wrap{grid-area:contact;justify-self:end}.portfolio .header-center{justify-content:flex-start}.portfolio .language-switcher button{min-width:28px}.portfolio .contact-button{padding-inline:14px}.portfolio .site-footer{font-size:13px}}@media (width>=701px) and (height<=600px){html,body,#app{height:auto;min-height:100%}.portfolio{height:auto;min-height:100svh;overflow:clip}.portfolio :is(.intro-page,.personal-page,.projects-page,.highlight-detail-page,.beyond-page){scrollbar-gutter:auto;flex:1 0 auto;overflow:visible}.portfolio .highlights-page{flex:1 0 auto;min-height:360px;overflow:visible}.portfolio .site-footer{margin-top:auto}}@media (hover:none),(pointer:coarse){.portfolio :is(.personal-photo,.ship-tilt,.next-editorial-photo){transform:none}.portfolio .next-editorial-photo img{transform:translate(-6px,-6px)scale(1.025)}.portfolio .journey-context{transform:none}}@media (prefers-reduced-motion:reduce){.portfolio .highlights-cards{scroll-behavior:auto;scroll-snap-type:x proximity}.portfolio .next-editorial-photo{transform:none}.portfolio .next-editorial-photo img{transform:translate(-6px,-6px)}}.portfolio a.contact-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.portfolio .contact-wrap{align-items:center;gap:6px;display:flex}.portfolio .site-header{z-index:40}.portfolio .contact-wrap{position:relative}.portfolio .contact-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:260px;max-width:calc(100vw - 40px);height:auto;min-height:0;color:var(--text);text-align:left;background:#f4faf7db;border:1px solid #21342d1f;border-radius:16px;padding:14px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 36px #21342d1f}.portfolio .contact-panel-label{color:var(--muted);margin:0 0 8px;font-size:13px}.portfolio .contact-email{overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;margin:0 0 12px;font-size:17px;font-weight:600}.portfolio .contact-panel-actions{flex-wrap:wrap;gap:8px;display:flex}.portfolio .contact-send,.portfolio .contact-copy{min-height:44px;font:inherit;cursor:pointer;border:1px solid #048977;border-radius:24px;justify-content:center;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.portfolio .contact-send{color:#fff;background:#048977}.portfolio .contact-copy{color:#21342d;background:0 0}.portfolio .contact-send:focus-visible,.portfolio .contact-copy:focus-visible{outline-offset:3px;outline:2px solid #21342d}.portfolio .contact-feedback{min-height:18px;color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.5}.portfolio .contact-feedback:empty{display:none}@media (width<=1100px),(height<=600px){.portfolio .highlight-card,.portfolio .highlight-card:hover{z-index:0}.portfolio .card-mobile-title{z-index:30;opacity:1;visibility:visible}}@media (width<=700px){.portfolio .cards-intro .card-intro{opacity:1;animation:none;transform:none}.portfolio .mobile-page-enter-active{transition:opacity .24s ease-out}.portfolio .mobile-page-leave-active{transition:opacity .18s ease-in}.portfolio .mobile-page-enter-from,.portfolio .mobile-page-leave-to{opacity:0}.portfolio .mobile-page-enter-active .card-flight,.portfolio .mobile-page-leave-active .card-flight{animation:none;transform:none}}@media (width<=700px) and (prefers-reduced-motion:reduce){.portfolio .mobile-page-enter-active,.portfolio .mobile-page-leave-active{transition:none}}@media (width<=700px){.portfolio .highlights-stage{--card-width:min(360px, calc(100vw - 40px));--card-height:calc(var(--card-width) * 1220 / 1152)}.portfolio .highlights-page{flex:none;min-height:0;overflow:visible}.portfolio .highlights-cards{scroll-snap-type:none;overscroll-behavior-x:auto;touch-action:pan-y pinch-zoom;padding:16px var(--page-gutter) 32px;flex-direction:column;align-items:center;gap:24px;overflow:visible}.portfolio .highlights-cards::-webkit-scrollbar{display:none}}.portfolio .nav-mobile-label,.portfolio #footer-contact{display:none}@media (width<=700px){.portfolio .site-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand language""nav nav";align-items:center;gap:4px 12px;padding-bottom:8px}.portfolio .header-right{display:contents}.portfolio .header-brand{max-width:none}.portfolio .language-switcher{grid-area:language;justify-self:end}.portfolio .header-center{flex-wrap:nowrap;justify-content:flex-start;gap:8px}.portfolio .nav-link{white-space:nowrap}.portfolio .nav-desktop-label{display:none}.portfolio .nav-mobile-label{display:inline}.portfolio .site-footer{z-index:41;justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.portfolio .footer-links{flex-wrap:nowrap;gap:6px;font-size:12px}.portfolio #footer-contact{flex-shrink:0;display:block}.portfolio #footer-contact .contact-button{padding-inline:12px;font-size:12px}.portfolio #footer-contact .contact-panel{top:auto;bottom:calc(100% + 8px)}}
