.code-trails[data-v-0cc134da]{inset:0;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-rail[data-v-0cc134da],.code-trails[data-v-0cc134da]{overflow:clip;position:absolute}.code-rail[data-v-0cc134da]{color:#fff;inset-block:0;mix-blend-mode:difference;width:calc(max(clamp(48px,6vw,120px),(100vw - 1440px) / 2) - 10px);z-index:2}.code-rail--left[data-v-0cc134da]{left:0}.code-rail[data-v-0cc134da]:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='760' preserveAspectRatio='none' viewBox='0 0 100 760'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1.15' d='M50 0C8 63 8 127 50 190s42 127 0 190-42 127 0 190 42 127 0 190' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");background-repeat:repeat-y;background-size:100% 760px;content:"";inset:0;opacity:.28;position:absolute}.code-track[data-v-0cc134da]{height:760px;position:absolute;view-timeline-axis:block;view-timeline-name:--code-track;width:100%}.code-fragment[data-v-0cc134da]{font-family:IBM Plex Mono,monospace;font-size:11px;inset:0 auto auto 0;line-height:1;offset-rotate:0deg;opacity:.72;padding:6px 2px;position:absolute;width:-moz-max-content;width:max-content}.code-fragment--0[data-v-0cc134da]{offset-distance:18%}.code-fragment--1[data-v-0cc134da]{offset-distance:48%}.code-fragment--2[data-v-0cc134da]{offset-distance:78%}.code-anchor[data-v-0cc134da]{font-family:IBM Plex Mono,monospace;font-size:36px;left:50%;opacity:.3;position:absolute;top:360px;transform:translate(-50%)}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.code-fragment[data-v-0cc134da]{animation:code-flow-a-0cc134da linear both;animation-range:entry 0 exit 100%;animation-timeline:--code-track}.code-fragment--1[data-v-0cc134da]{animation-name:code-flow-b-0cc134da}.code-fragment--2[data-v-0cc134da]{animation-name:code-flow-c-0cc134da}.code-track:not(.track-visible) .code-fragment[data-v-0cc134da],.motion-paused .code-fragment[data-v-0cc134da]{animation-play-state:paused}}}@keyframes code-flow-a-0cc134da{0%{offset-distance:0}to{offset-distance:70%}}@keyframes code-flow-b-0cc134da{0%{offset-distance:18%}to{offset-distance:88%}}@keyframes code-flow-c-0cc134da{0%{offset-distance:36%}to{offset-distance:100%}}@media(max-width:800px){.code-rail[data-v-0cc134da]{opacity:.16;width:min(160px,30vw);z-index:1}.code-anchor[data-v-0cc134da],.code-fragment[data-v-0cc134da]{display:none}.code-rail[data-v-0cc134da]:before{opacity:1}}@media(prefers-reduced-motion:reduce){.code-fragment[data-v-0cc134da]{opacity:.45}}.cursor-light-layer[data-v-a185723e]{inset:0;mix-blend-mode:screen;overflow:hidden;pointer-events:none;position:fixed;z-index:4}.cursor-light[data-v-a185723e]{background:radial-gradient(circle,#ffffff10 0,#ffffff06 30%,#fff0 68%);border-radius:50%;contain:strict;height:520px;inset:0 auto auto 0;opacity:0;pointer-events:none;position:absolute;transform:translate3d(-200vw,-200vh,0);transition:opacity .35s;width:520px;will-change:transform}.sculpture-stage[data-v-754cc8f8]{background:#070707;inset:0;overflow:hidden;pointer-events:none;position:fixed;transition:opacity .35s,visibility .35s;z-index:-1}.scene-muted[data-v-754cc8f8]{opacity:0;visibility:hidden}.sculpture-canvas[data-v-754cc8f8]{display:block;height:var(--scene-height, calc(100% - 340px) );max-height:820px;opacity:0;position:absolute;right:max(clamp(48px,6vw,120px),(100vw - 1440px)/2);top:170px;transition:opacity .8s,transform .9s cubic-bezier(.16,1,.3,1);width:min(690px,42%)}html.scene-preparing .sculpture-stage .scene-poster,html.scene-preparing .sculpture-stage .sculpture-canvas{opacity:0;transform:translate3d(0,28px,0) scale(.97)}.scene-ready .sculpture-canvas[data-v-754cc8f8]{opacity:1}.scene-fallback .sculpture-canvas[data-v-754cc8f8]{opacity:0}.scene-poster[data-v-754cc8f8]{height:var(--scene-height, calc(100% - 340px) );max-height:820px;-o-object-fit:contain;object-fit:contain;opacity:.75;position:absolute;right:max(clamp(48px,6vw,120px),(100vw - 1440px)/2);top:170px;transition:opacity .55s;width:min(690px,42%)}.scene-ready:not(.scene-fallback) .scene-poster[data-v-754cc8f8]{opacity:0}.scene-vignette[data-v-754cc8f8]{background:radial-gradient(ellipse at 70% 42%,transparent 35%,rgba(7,7,7,.565) 100%);inset:0;position:absolute}@media(max-width:800px){.sculpture-stage[data-v-754cc8f8]{background:transparent;inset:0;position:fixed;z-index:0}.sculpture-canvas[data-v-754cc8f8]{height:var(--scene-height,clamp(240px,55svh,440px));right:-10%;top:22svh;width:100%}.scene-ready:not(.scene-fallback) .sculpture-canvas[data-v-754cc8f8]{opacity:.12}.scene-vignette[data-v-754cc8f8]{display:none}.scene-poster[data-v-754cc8f8]{height:var(--scene-height,clamp(240px,55svh,440px));opacity:.1;right:-10%;top:22svh;width:100%}}@media(min-width:801px){.scene-fallback[data-v-754cc8f8],.sculpture-stage[data-v-754cc8f8]:not(.scene-ready){height:100svh;inset:-118px auto auto calc(50% - 50vw);position:absolute;width:100vw}}.hero[data-v-52d9b8ca]{min-height:100svh;overflow:clip;padding:118px 0 40px}.hero[data-v-52d9b8ca],.hero-inner[data-v-52d9b8ca]{position:relative}.hero-scene-space[data-v-52d9b8ca]{display:contents}.hero-meta[data-v-52d9b8ca]{color:#aaa;display:flex;font-size:9px;justify-content:space-between}.hero-title[data-v-52d9b8ca]{font-size:clamp(110px,17vw,270px);font-weight:600;letter-spacing:-.085em;line-height:.79;margin-top:54px;pointer-events:none;position:relative}.hero-title>span[data-v-52d9b8ca]{display:block;width:-moz-fit-content;width:fit-content}.hero-surname[data-v-52d9b8ca]{color:transparent;margin-top:17px;-webkit-text-stroke:1px #e5e5e5}.name-dot[data-v-52d9b8ca]{color:#eee;display:inline-block;-webkit-text-stroke:0;animation:dot-land-52d9b8ca .72s 1.4s both;transform-origin:50% 90%}.hero-letter-mask[data-v-52d9b8ca]{display:inline-block;margin-block:-.1em;margin-inline:-.085em;overflow:hidden;padding-block:.1em;padding-inline:.085em;vertical-align:bottom}.hero-letter[data-v-52d9b8ca]{animation:letter-in-52d9b8ca .85s cubic-bezier(.16,1,.3,1) both;display:inline-block}.hero-bottom[data-v-52d9b8ca]{align-items:end;display:flex;gap:35px;justify-content:space-between;margin-top:45px}.hero-description[data-v-52d9b8ca]{color:#bbb;font-size:14px;max-width:380px}.hero-actions[data-v-52d9b8ca]{color:#eee;display:flex;gap:32px;margin-top:8px}.hero-actions .text-link[data-v-52d9b8ca]{font-size:12px}@keyframes letter-in-52d9b8ca{0%{opacity:0;transform:translate3d(0,110%,0) rotate(5deg)}to{opacity:1;transform:none}}@keyframes dot-land-52d9b8ca{0%{animation-timing-function:cubic-bezier(.55,.05,.8,.6);opacity:0;transform:translate3d(0,-1.9em,0) scale(.65)}15%{opacity:1}58%{animation-timing-function:cubic-bezier(.2,.7,.3,1);transform:translateZ(0) scale(1.15,.82)}78%{transform:translate3d(0,-.13em,0) scale(.92,1.08)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.hero-letter[data-v-52d9b8ca],.name-dot[data-v-52d9b8ca]{animation:none}}@media(min-width:1600px){.hero-title[data-v-52d9b8ca]{margin-top:70px}}@media(max-width:800px){.hero[data-v-52d9b8ca]{min-height:0;padding-bottom:40px;padding-top:112px}.hero-scene-space[data-v-52d9b8ca]{display:contents}.hero-bottom[data-v-52d9b8ca],.hero-meta[data-v-52d9b8ca],.hero-title[data-v-52d9b8ca]{position:relative;z-index:1}.hero-title[data-v-52d9b8ca]{font-size:clamp(72px,21vw,158px);margin-top:30px}.hero-surname[data-v-52d9b8ca]{margin-top:12px}.hero-bottom[data-v-52d9b8ca]{align-items:start;flex-direction:column;gap:28px;margin-top:24px}.hero-description[data-v-52d9b8ca]{font-size:14px;max-width:420px}.hero-actions[data-v-52d9b8ca]{gap:16px;justify-content:space-between;margin-top:18px}.hero-actions .text-link[data-v-52d9b8ca]{font-size:12px;min-height:44px}}.work-section[data-v-f891f79f]{background:linear-gradient(90deg,#070707 0 48%,#07070700 60%);padding-top:48px;position:relative}.work-static[data-v-f891f79f]{background:#070707}.work-static .featured-project[data-v-f891f79f]{border-top:1px solid hsla(0,0%,100%,.133);min-height:0;padding-block:48px}.work-static .featured-project[data-v-f891f79f]:first-child{border-top:0}.work-heading[data-v-f891f79f]{font-size:clamp(20px,2vw,28px);font-weight:500;letter-spacing:-.035em;line-height:1.2}.work-heading-wrap[data-v-f891f79f]{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.133);display:flex;justify-content:space-between;padding-bottom:22px;position:relative}.work-heading-wrap .section-label-wrap[data-v-f891f79f]{margin-bottom:0}.work-range[data-v-f891f79f]{color:#999;font-size:9px}.project-sequence[data-v-f891f79f]{margin-top:16px}.project-sticky[data-v-f891f79f]{position:relative}.featured-project[data-v-f891f79f]{align-items:center;display:grid;gap:60px;grid-template-columns:1fr 1fr;min-height:650px;padding-block:60px;position:relative}.project-copy[data-v-f891f79f]{max-width:600px;min-width:0;position:relative}.project-meta[data-v-f891f79f]{color:#a0a0a0;font-size:9px;margin-bottom:30px}.project-copy h3[data-v-f891f79f]{font-size:clamp(36px,4.8vw,76px);line-height:1.04}.project-description[data-v-f891f79f]{color:#b5b5b5;font-size:14px;margin-top:28px;max-width:440px}.project-stack[data-v-f891f79f]{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:22px}.project-stack>span[data-v-f891f79f]{color:#aaa;font-family:IBM Plex Mono,monospace;font-size:9px}.project-open[data-v-f891f79f]{margin-top:28px}.project-highlights[data-v-f891f79f]{border-top:1px solid hsla(0,0%,100%,.133);display:flex;flex-wrap:wrap;gap:18px 36px;margin-top:24px;padding-top:16px}.project-highlights dt[data-v-f891f79f]{color:#999;font-family:IBM Plex Mono,monospace;font-size:9px}.project-highlights dd[data-v-f891f79f]{font-size:22px;letter-spacing:-.04em;line-height:1.3;margin-top:5px}.project-visual[data-v-f891f79f]{align-self:center;background:#070707;min-width:0}.project-visual img[data-v-f891f79f]{aspect-ratio:16/10;background:#151515;border:1px solid hsla(0,0%,100%,.2);display:block;height:auto;-o-object-fit:contain;object-fit:contain;width:100%}.project-visual figcaption[data-v-f891f79f]{color:#999;font-size:8px;margin-top:12px}.project-dialog .project-live[data-v-f891f79f]{margin:28px 0 0}.dialog-highlights[data-v-f891f79f]{border-bottom:1px solid hsla(0,0%,100%,.133);margin-block:24px;padding-block:16px}.project-role[data-v-f891f79f]{margin-top:24px}.enhanced[data-v-f891f79f]{height:310vh}.enhanced .project-sticky[data-v-f891f79f]{height:calc(100svh - 90px);min-height:600px;position:sticky;top:80px}.enhanced .featured-project[data-v-f891f79f]{inset:0 0 100px;min-height:0;opacity:0;position:absolute;transform:translateY(70px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1),visibility .6s;visibility:hidden}.enhanced .featured-project.active[data-v-f891f79f]{opacity:1;transform:none;visibility:visible}.project-navigation[data-v-f891f79f]{align-items:center;background:#070707;display:flex;gap:24px;inset:auto 0 0;padding:20px 0;position:absolute;z-index:1}.count-divider[data-v-f891f79f]{color:#888;margin-left:10px}.project-progress[data-v-f891f79f]{background:#fff2;flex:1;height:1px;margin-inline:10px}.project-progress span[data-v-f891f79f]{background:#fff;display:block;height:100%;transform-origin:left;transition:transform .7s}.project-navigation button[data-v-f891f79f]{background:none;border:1px solid hsla(0,0%,100%,.267);font-size:21px;height:42px;width:42px}.project-navigation button[data-v-f891f79f]:disabled{cursor:default;opacity:.25}.dialog-close[data-v-f891f79f]:is(:hover,:focus-visible),.project-navigation button[data-v-f891f79f]:not(:disabled):is(:hover,:focus-visible){color:#fff;text-shadow:0 0 14px hsla(0,0%,100%,.439)}.project-archive[data-v-f891f79f]{background:#070707;margin-top:70px;padding-top:30px;position:relative}.archive-heading[data-v-f891f79f]{color:#aaa;padding-bottom:25px}.archive-project[data-v-f891f79f]{align-items:center;background:none;border:0;border-top:1px solid hsla(0,0%,100%,.2);display:flex;gap:30px;padding:25px 0;text-align:left;transition:padding .4s,background .4s;width:100%}.archive-project[data-v-f891f79f]:last-child{border-bottom:1px solid hsla(0,0%,100%,.2)}.archive-project[data-v-f891f79f]:focus-visible,.archive-project[data-v-f891f79f]:hover{background:#ffffff08;padding-inline:15px;text-shadow:none}.archive-index[data-v-f891f79f]{color:#888}.archive-title[data-v-f891f79f]{flex:1;font-size:24px;letter-spacing:-.04em}.archive-company[data-v-f891f79f]{color:#aaa;font-size:9px}.archive-arrow[data-v-f891f79f]{font-size:24px;margin-left:25px}.project-dialog[data-v-f891f79f]{background:#111;border:1px solid hsla(0,0%,100%,.2);margin:auto;max-height:90dvh;overflow:hidden;padding:0;width:min(800px,100% - 32px)}.project-dialog-content[data-v-f891f79f]{display:flex;flex-direction:column;max-height:calc(90dvh - 2px)}.project-dialog-header[data-v-f891f79f]{flex-shrink:0;padding:38px 38px 24px}.project-dialog-body[data-v-f891f79f]{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 38px 38px}.project-dialog-body[data-v-f891f79f]>:first-child{margin-top:0}.dialog-top[data-v-f891f79f]{align-items:center;color:#aaa;display:flex;gap:20px;justify-content:space-between;margin-bottom:35px}.dialog-close[data-v-f891f79f]{background:none;border:0;flex-shrink:0;font-size:30px;height:44px;width:44px}.project-dialog h2[data-v-f891f79f]{font-size:clamp(30px,4vw,48px)}.project-dialog h3[data-v-f891f79f]{margin:30px 0 15px}.project-dialog li[data-v-f891f79f],.project-dialog p[data-v-f891f79f]{color:#bbb;font-size:14px}.project-page-link[data-v-f891f79f]{margin-right:24px;margin-top:28px}.project-dialog ul[data-v-f891f79f]{margin-top:20px;padding-left:18px}.project-dialog li[data-v-f891f79f]{margin-top:12px}@media(max-width:800px){.work-section[data-v-f891f79f]{background:#070707;padding-top:32px}.work-range[data-v-f891f79f]{display:none}.project-navigation[data-v-f891f79f]{padding-bottom:68px;padding-right:0}.project-sequence[data-v-f891f79f]{margin-top:20px}.featured-project[data-v-f891f79f]{border-top:1px solid hsla(0,0%,100%,.145);gap:32px;grid-template-columns:1fr;min-height:0;padding-block:40px}.project-meta[data-v-f891f79f]{margin-bottom:20px}.project-description[data-v-f891f79f]{font-size:13px;margin-top:20px}.project-copy h3[data-v-f891f79f]{font-size:clamp(30px,7.8vw,56px);overflow-wrap:anywhere}.enhanced .project-sticky[data-v-f891f79f]{min-height:540px}.enhanced .featured-project[data-v-f891f79f]{align-content:center;padding-block:30px}.project-archive[data-v-f891f79f]{margin-top:0}.archive-project[data-v-f891f79f]{gap:15px}.archive-title[data-v-f891f79f]{font-size:18px;line-height:1.25}.archive-company[data-v-f891f79f]{display:none}.archive-arrow[data-v-f891f79f]{margin-left:5px}.project-dialog-header[data-v-f891f79f]{padding:20px 20px 16px}.project-dialog[data-v-f891f79f]{height:calc(100dvh - max(28px,env(safe-area-inset-top)))}.project-dialog-content[data-v-f891f79f]{height:100%;max-height:none}.project-dialog-header[data-v-f891f79f]{padding-top:0}.dialog-top[data-v-f891f79f]{margin-bottom:18px}.project-dialog-body[data-v-f891f79f]{padding:0 20px calc(24px + env(safe-area-inset-bottom))}.project-dialog-header h2[data-v-f891f79f]{font-size:clamp(25px,6vw,40px)}.dialog-top>.mono[data-v-f891f79f]{max-width:calc(100% - 52px)}}@media(min-width:601px)and (max-width:800px){.project-copy h3[data-v-f891f79f]{font-size:clamp(30px,5vw,40px)}.project-highlights[data-v-f891f79f]{gap:16px}}@media(max-height:650px){.enhanced .project-sticky[data-v-f891f79f]{height:calc(100svh - 80px);min-height:0;top:72px}.project-copy h3[data-v-f891f79f]{font-size:36px}.project-description[data-v-f891f79f]{font-size:12px;margin-top:16px}.project-meta[data-v-f891f79f]{margin-bottom:14px}.project-open[data-v-f891f79f],.project-stack[data-v-f891f79f]{margin-top:14px}}@media(min-width:801px)and (min-height:701px)and (max-height:850px){.project-copy h3[data-v-f891f79f]{font-size:clamp(36px,4vw,60px)}.project-meta[data-v-f891f79f]{margin-bottom:20px}.project-description[data-v-f891f79f]{font-size:13px;margin-top:20px}.project-highlights[data-v-f891f79f]{margin-top:18px;padding-top:12px}.project-stack[data-v-f891f79f]{margin-top:16px}.project-open[data-v-f891f79f]{margin-top:18px}}.about-section[data-v-7c394caa]{background:#ededeb;color:#101010;color-scheme:light;overflow:clip}.label[data-v-7c394caa],.section-num[data-v-7c394caa]{color:#666}.about-title-row[data-v-7c394caa]{align-items:center;display:flex;gap:30px;justify-content:space-between}.about-title-row .section-title[data-v-7c394caa]{font-size:clamp(55px,9vw,140px);letter-spacing:-.075em}.about-asterisk[data-v-7c394caa]{animation:rotate-7c394caa 30s linear infinite;font-size:clamp(80px,15vw,240px);line-height:1}.about-asterisk.motion-paused[data-v-7c394caa]{animation-play-state:paused}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.about-title-row[data-v-7c394caa]{view-timeline-name:--about-title}.about-asterisk[data-v-7c394caa]{animation:about-turn-7c394caa linear both;animation-range:entry 0 exit 100%;animation-timeline:--about-title}}}@keyframes about-turn-7c394caa{0%{transform:rotate(-45deg)}to{transform:rotate(315deg)}}.about-statement[data-v-7c394caa]{font-size:clamp(26px,3.8vw,58px);letter-spacing:-.045em;line-height:1.25;margin-top:75px;max-width:1050px}.about-grid[data-v-7c394caa]{display:grid;gap:clamp(60px,10vw,170px);grid-template-columns:1fr 1fr;margin-top:80px}.about-story[data-v-7c394caa]{color:#555;font-size:14px;line-height:1.9}.about-story[data-v-7c394caa] strong{color:#111;font-weight:500}.background-details[data-v-7c394caa]{margin-top:25px}.background-details summary[data-v-7c394caa]{color:#111;cursor:pointer;display:flex;font-size:12px;justify-content:space-between;list-style:none}.background-details summary[data-v-7c394caa]::-webkit-details-marker{display:none}.background-details summary span[data-v-7c394caa]{font-size:20px}.background-details[open] summary span[data-v-7c394caa]{transform:rotate(45deg)}.background-details p[data-v-7c394caa]{margin-top:20px}.about-cv[data-v-7c394caa]{border-color:#12121244;color:#111;margin-top:25px}.about-stats[data-v-7c394caa]{border-top:1px solid hsla(0,0%,7%,.267);display:flex;justify-content:space-between;margin-top:60px;padding-top:30px}.about-stats>div[data-v-7c394caa]{display:flex;flex-direction:column}.about-stats strong[data-v-7c394caa]{color:#111;font-size:48px;font-weight:400;letter-spacing:-.05em;line-height:1.3}.about-stats span[data-v-7c394caa]{font-size:11px}.experience-label[data-v-7c394caa]{color:#666;margin-bottom:25px}.experience-job[data-v-7c394caa]{border-top:1px solid hsla(0,0%,7%,.267);padding-block:28px}.experience-job[data-v-7c394caa]:last-child{border-bottom:1px solid hsla(0,0%,7%,.267)}.experience-job summary[data-v-7c394caa]{cursor:pointer;list-style:none}.experience-job summary[data-v-7c394caa]::-webkit-details-marker{display:none}.job-period[data-v-7c394caa]{color:#666;display:block;font-size:9px;margin-bottom:15px}.job-company[data-v-7c394caa]{align-items:center;display:flex;font-size:34px;justify-content:space-between;letter-spacing:-.06em;line-height:1.2}.job-company>span[data-v-7c394caa]{font-size:26px;transition:transform .3s}.experience-job[open] .job-company>span[data-v-7c394caa]{transform:rotate(90deg)}.job-role[data-v-7c394caa]{color:#555;display:block;font-size:11px;margin-top:9px}.experience-job ul[data-v-7c394caa]{list-style:none;margin-top:24px}.experience-job li[data-v-7c394caa]{color:#555;font-size:13px;line-height:1.9;margin-top:13px}@keyframes rotate-7c394caa{to{transform:rotate(1turn)}}@media(max-width:800px){.about-title-row[data-v-7c394caa]{position:relative}.about-asterisk[data-v-7c394caa]{font-size:58px;position:absolute;right:0;top:-35px}.about-grid[data-v-7c394caa]{gap:55px;grid-template-columns:1fr;margin-top:45px}.about-title-row .section-title[data-v-7c394caa]{font-size:clamp(45px,10.5vw,75px)}.about-statement[data-v-7c394caa]{font-size:clamp(25px,6.2vw,38px);margin-top:36px}.about-stats[data-v-7c394caa]{gap:16px;margin-top:36px}.about-stats strong[data-v-7c394caa]{font-size:38px}.about-stats span[data-v-7c394caa]{font-size:10px}.job-company[data-v-7c394caa]{font-size:clamp(26px,6.5vw,36px)}.experience-job[data-v-7c394caa]{padding-block:24px}.background-details summary[data-v-7c394caa]{align-items:center;min-height:44px}.about-cv[data-v-7c394caa]{min-height:44px}}.skills-section[data-v-0067e1b9]{background:#070707;overflow:clip;padding-top:0}.skills-marquee[data-v-0067e1b9]{border-bottom:1px solid hsla(0,0%,100%,.2);margin-bottom:90px;padding-block:55px}.marquee-track[data-v-0067e1b9]{animation:ticker-0067e1b9 var(--ticker-duration,40s) linear infinite;display:flex;width:-moz-max-content;width:max-content}.marquee-set[data-v-0067e1b9]{align-items:center;display:flex;font-size:clamp(60px,8vw,130px);gap:.26em;letter-spacing:-.07em;line-height:1.15;padding-right:.26em}.marquee-separator[data-v-0067e1b9],.marquee-tech[data-v-0067e1b9]{color:transparent;text-transform:uppercase;white-space:nowrap;-webkit-text-stroke:1px #888}.marquee-tech[data-v-0067e1b9]{display:inline-block;transition:color .2s,-webkit-text-stroke-color .2s}.marquee-tech[data-v-0067e1b9]:focus-visible,.marquee-tech[data-v-0067e1b9]:hover{color:var(--tech-color);-webkit-text-stroke-color:var(--tech-color)}.skills-marquee.motion-paused .marquee-track[data-v-0067e1b9],.skills-marquee:focus-within .marquee-track[data-v-0067e1b9],.skills-marquee:hover .marquee-track[data-v-0067e1b9]{animation-play-state:paused}.marquee-tech[data-v-0067e1b9]:focus-visible{background:transparent;outline:none}.section-title>span[data-v-0067e1b9]{color:#888}.skills-grid[data-v-0067e1b9]{display:grid;gap:45px 60px;grid-template-columns:repeat(3,1fr);margin-top:60px}.skill-group[data-v-0067e1b9]{border-top:1px solid hsla(0,0%,100%,.2);padding-top:22px}.skill-group>.mono[data-v-0067e1b9]{color:#888;font-size:9px;margin-bottom:18px}.skill-group h3[data-v-0067e1b9]{font-size:24px;line-height:1.2}.skill-names[data-v-0067e1b9]{color:#aaa;display:flex;flex-wrap:wrap;font-size:13px;gap:8px 20px;margin-top:18px}@keyframes ticker-0067e1b9{to{transform:translate(-50%)}}@media(max-width:800px){.skills-grid[data-v-0067e1b9]{gap:28px;grid-template-columns:1fr;margin-top:36px}.skill-group[data-v-0067e1b9]{display:grid;gap:0 16px;grid-template-columns:26px minmax(0,1fr);padding-top:20px}.skill-group>.mono[data-v-0067e1b9]{grid-row:1/3;margin:4px 0 0}.skill-group h3[data-v-0067e1b9]{font-size:20px}.skill-names[data-v-0067e1b9]{font-size:12px;gap:6px 16px;grid-column:2;margin-top:12px}.skills-marquee[data-v-0067e1b9]{margin-bottom:60px;padding-block:35px}.marquee-set[data-v-0067e1b9]{font-size:clamp(44px,11vw,80px)}}@media(min-width:601px)and (max-width:800px){.skills-grid[data-v-0067e1b9]{gap:32px 24px;grid-template-columns:1fr 1fr}}#contact[data-v-b18e9814]{background:#070707;border-top:1px solid hsla(0,0%,100%,.22);overflow:clip;padding-block:80px 100px}.contact-heading-wrap[data-v-b18e9814]{margin-bottom:75px}.contact-heading[data-v-b18e9814]{font-size:clamp(65px,15.5vw,245px);letter-spacing:-.085em;line-height:.85;position:relative}.contact-heading>span[data-v-b18e9814]:not(.contact-big-arrow){color:transparent;-webkit-text-stroke:1px #bbb}.contact-big-arrow[data-v-b18e9814]{font-size:.8em;position:absolute;right:0;top:-.05em}@media(max-width:800px){#contact[data-v-b18e9814]{padding-block:64px 72px}.contact-big-arrow[data-v-b18e9814]{font-size:.4em;top:-.35em}.contact-heading[data-v-b18e9814]{font-size:clamp(48px,13vw,120px);line-height:1.08}.contact-heading-wrap[data-v-b18e9814]{margin-bottom:32px}}.contact-wrapper[data-v-b18e9814]{align-items:start;display:grid;gap:clamp(36px,5vw,80px);grid-template-columns:1fr 1fr}.contact-intro[data-v-b18e9814]{color:#b4b4b4;font-size:14px;margin-block:30px;max-width:330px}.contact-links[data-v-b18e9814]{align-items:start;display:flex;flex-direction:column;gap:6px}.contact-chip[data-v-b18e9814]{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.22);display:flex;flex-direction:row-reverse;font-size:clamp(18px,1.7vw,24px);gap:25px;letter-spacing:-.04em;padding-block:12px;transition:color .3s}.chip-icon[data-v-b18e9814],.contact-chip[data-v-b18e9814]:hover{color:#f2f2ef}.chip-icon[data-v-b18e9814]{font-size:22px}.contact-chip--phone[data-v-b18e9814]{border:0;color:#b4b4b4;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:0}.contact-chip--phone .chip-icon[data-v-b18e9814]{font-size:15px}.contact-form-wrap[data-v-b18e9814]{padding-top:0}.form-title[data-v-b18e9814]{font-size:22px;letter-spacing:-.04em;margin-bottom:30px}.form-row[data-v-b18e9814]{display:grid;gap:25px;grid-template-columns:1fr 1fr}.form-field[data-v-b18e9814]{display:flex;flex-direction:column;margin-bottom:25px;position:relative}.form-field[data-v-b18e9814]:after{background:#eee;content:"";height:1px;inset:auto 0 0;pointer-events:none;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}.form-field[data-v-b18e9814]:focus-within:after{transform:scaleX(1)}.form-field:focus-within .form-label[data-v-b18e9814]{color:#eee;text-shadow:0 0 12px hsla(0,0%,100%,.251)}.form-label[data-v-b18e9814]{color:#b4b4b4;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;transition:color .25s,text-shadow .25s}.form-input[data-v-b18e9814]{padding-block:12px}textarea.form-input[data-v-b18e9814]{min-height:115px;resize:vertical}.submit-btn[data-v-b18e9814]{margin-top:8px;width:100%}.submit-btn[data-v-b18e9814]:after{content:none}.submit-btn-idle[data-v-b18e9814],.submit-btn-progress[data-v-b18e9814]{align-items:center;display:flex;gap:25px}@media(prefers-reduced-motion:reduce){.form-field[data-v-b18e9814]:after,.form-label[data-v-b18e9814]{transition:none}}.submit-spinner[data-v-b18e9814]{animation:submit-spin-b18e9814 .65s linear infinite;border:1px solid #f2f2ef;border-radius:50%;border-top-color:#070707;height:17px;width:17px}@keyframes submit-spin-b18e9814{to{transform:rotate(1turn)}}.contact-feedback-dialog[data-v-b18e9814]{background:#111;border:1px solid hsla(0,0%,100%,.22);margin:auto;max-height:90dvh;padding:0;width:min(440px,100vw - 40px)}.contact-feedback-card[data-v-b18e9814]{padding:30px}.contact-feedback-header[data-v-b18e9814]{align-items:center;display:flex;flex-direction:column;gap:16px;margin-bottom:20px;text-align:center}.contact-feedback-title[data-v-b18e9814]{font-size:25px}.contact-feedback-icon-wrap[data-v-b18e9814]{background:#ffffff0f;border-radius:50%;color:#f2f2ef;display:grid;height:50px;place-items:center;width:50px}.contact-feedback-icon-wrap--error[data-v-b18e9814]{background:#ffffff0f;color:#eee}.contact-feedback-copy[data-v-b18e9814]{color:#b4b4b4;font-size:14px;margin-bottom:18px;text-align:center}.contact-feedback-detail[data-v-b18e9814]{color:#eee;font-size:14px;margin-bottom:18px}.contact-feedback-email-wrap[data-v-b18e9814]{text-align:center}.contact-feedback-mailto[data-v-b18e9814]{color:#f2f2ef;font-size:14px}.contact-feedback-close[data-v-b18e9814]{margin-top:25px;width:100%}@media(max-width:850px){.contact-wrapper[data-v-b18e9814]{gap:30px;grid-template-columns:1fr}.contact-form-wrap[data-v-b18e9814]{padding-top:20px}.contact-intro[data-v-b18e9814]{max-width:500px}}@media(max-width:480px){.form-row[data-v-b18e9814]{gap:0;grid-template-columns:1fr}}@media(max-width:800px){.contact-feedback-card[data-v-b18e9814]{max-height:calc(100dvh - max(20px,env(safe-area-inset-top)));overflow-y:auto;overscroll-behavior:contain;padding:0 24px calc(24px + env(safe-area-inset-bottom))}.contact-feedback-card .sheet-handle[data-v-b18e9814]{margin-bottom:14px}.contact-intro[data-v-b18e9814]{margin-block:0 20px}.form-input[data-v-b18e9814]{font-size:16px}.contact-chip[data-v-b18e9814]{font-size:clamp(17px,4.4vw,24px);gap:16px}.contact-chip--phone[data-v-b18e9814]{font-size:11px}}.cv-dialog[data-v-cd9d5a40]{background:transparent;border:none;margin:auto;max-width:440px;outline:none;overflow:visible;padding:0;width:min(440px,100vw - 32px)}.cv-dialog[data-v-cd9d5a40]::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}.cv-dialog-card[data-v-cd9d5a40]{background:#111;border:1px solid hsla(0,0%,100%,.22);border-radius:20px;box-shadow:0 24px 64px #00000073;padding:clamp(22px,4vw,30px)}.cv-dialog-title[data-v-cd9d5a40]{color:#f2f2ef;font-size:clamp(19px,2.8vw,22px);font-weight:500;letter-spacing:-.03em;margin:0 0 8px;text-align:center}.cv-dialog-desc[data-v-cd9d5a40]{color:#b4b4b4;font-size:14px;line-height:1.55;margin:0 0 20px;text-align:center}.cv-options[data-v-cd9d5a40]{display:flex;flex-direction:column;gap:10px}.cv-option[data-v-cd9d5a40]{align-items:center;background:#ffffff05;border:1px solid hsla(0,0%,100%,.22);border-radius:8px;cursor:pointer;display:flex;justify-content:center;padding:14px 16px;text-align:left;transition:color .2s,text-shadow .2s;width:100%}.cv-option[data-v-cd9d5a40]:focus-visible,.cv-option[data-v-cd9d5a40]:hover{color:#fff;outline:none;text-shadow:0 0 14px hsla(0,0%,100%,.439)}.cv-option-label[data-v-cd9d5a40]{color:inherit;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:500}.cv-cancel[data-v-cd9d5a40]{border-radius:8px;justify-content:center;margin-top:16px;width:100%}@media(max-width:800px){.cv-dialog[data-v-cd9d5a40]::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.cv-dialog-card[data-v-cd9d5a40]{border:0;border-radius:0;box-shadow:none;max-height:calc(100dvh - max(20px,env(safe-area-inset-top)));overflow-y:auto;overscroll-behavior:contain;padding:0 24px calc(24px + env(safe-area-inset-bottom))}.cv-dialog-card .sheet-handle[data-v-cd9d5a40]{margin-bottom:14px}}.portfolio-page[data-v-0eddb316]{isolation:isolate;position:relative}
