.grain.svelte-18wpuf6{z-index:999;pointer-events:none;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:140px 140px;position:fixed;inset:0}.nav.svelte-1h32yp1{z-index:50;font-family:var(--ff-body);color:#fff;mix-blend-mode:difference;justify-content:space-between;align-items:center;padding:clamp(1.25rem,3vw,2.5rem) clamp(1.5rem,5vw,4rem);font-size:.95rem;font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}.nav__brand.svelte-1h32yp1{align-items:center;gap:.45rem;display:flex}.nav__logo.svelte-1h32yp1{-webkit-user-select:none;user-select:none;width:auto;height:clamp(1.7rem,2.2vw,2.3rem);display:block}.nav__mark.svelte-1h32yp1{font-family:var(--ff-display);letter-spacing:.02em;font-size:clamp(1.15rem,1.8vw,1.6rem);font-weight:400;line-height:1}.nav__links.svelte-1h32yp1{gap:clamp(1rem,2.2vw,2rem);display:flex}.nav__links.svelte-1h32yp1 a:where(.svelte-1h32yp1){color:inherit;text-decoration:none;position:relative}.nav__links.svelte-1h32yp1 a:where(.svelte-1h32yp1):after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .3s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.nav__links.svelte-1h32yp1 a:where(.svelte-1h32yp1):hover:after{transform-origin:0;transform:scaleX(1)}.nav__burger.svelte-1h32yp1{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;width:28px;height:28px;padding:0;display:none}.nav__burger.svelte-1h32yp1 i:where(.svelte-1h32yp1){background:#fff;width:100%;height:2px;transition:transform .3s,opacity .3s;display:block}.nav__burger--open.svelte-1h32yp1 i:where(.svelte-1h32yp1):first-child{transform:translateY(8px)rotate(45deg)}.nav__burger--open.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(2){opacity:0}.nav__burger--open.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(3){transform:translateY(-8px)rotate(-45deg)}.nav__menu.svelte-1h32yp1{z-index:49;background:var(--black);color:var(--fg-dark);opacity:0;flex-direction:column;justify-content:center;gap:clamp(1.25rem,3.5vh,2rem);padding:clamp(6rem,14vh,8rem) clamp(1.5rem,7vw,4.5rem) clamp(3rem,7vh,4rem);display:flex;position:fixed;inset:0;overflow:hidden}.nav__menu-dots.svelte-1h32yp1{z-index:1;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;top:clamp(1.5rem,4vw,3rem);right:clamp(1.5rem,4vw,3rem)}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1){background:var(--fg-dark);opacity:.08;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-1h32yp1-nav-dot-blink;display:block}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(2){animation-delay:.3s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(3){animation-delay:.6s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(4){animation-delay:.9s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(5){animation-delay:1.2s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(6){animation-delay:1.5s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(7){animation-delay:1.8s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(8){animation-delay:2.1s}.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1):nth-child(9){animation-delay:2.4s}.nav__menu-logo.svelte-1h32yp1{opacity:.06;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;width:clamp(11rem,36vw,19rem);height:auto;position:absolute;bottom:-4vw;left:-2vw}.nav__menu-eyebrow.svelte-1h32yp1{z-index:1;font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.8rem;position:relative}.nav__menu-links.svelte-1h32yp1{z-index:1;flex-direction:column;gap:clamp(.75rem,2.5vh,1.25rem);display:flex;position:relative}.nav__menu-link.svelte-1h32yp1{width:fit-content;color:var(--fg-dark);align-items:baseline;gap:clamp(.9rem,2vw,1.5rem);text-decoration:none;display:flex}.nav__menu-index.svelte-1h32yp1{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.75rem}.nav__menu-mask.svelte-1h32yp1{display:block;overflow:hidden}.nav__menu-label.svelte-1h32yp1{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-dark);font-size:clamp(2.2rem,10vw,3.8rem);font-weight:400;line-height:.95;transition:color .3s;display:block}.nav__menu-link.svelte-1h32yp1:hover .nav__menu-label:where(.svelte-1h32yp1){color:var(--gray)}.nav__menu-foot.svelte-1h32yp1{z-index:1;font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray);border-top:1px solid #f1f1ef29;flex-direction:column;gap:.4rem;margin-top:auto;padding-top:clamp(1.25rem,3vh,1.75rem);font-size:.72rem;display:flex;position:relative}@keyframes svelte-1h32yp1-nav-dot-blink{0%,to{opacity:.08}50%{opacity:.34}}@media (width<=700px){.nav__links.svelte-1h32yp1{display:none}.nav__burger.svelte-1h32yp1{display:flex}}@media (prefers-reduced-motion:reduce){.nav__menu-dots.svelte-1h32yp1 i:where(.svelte-1h32yp1){opacity:.2;animation:none}.nav__menu-label.svelte-1h32yp1{transition:none}}.hero.svelte-gzujjl{z-index:1;text-align:center;background:var(--white);flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:clamp(1.5rem,5vw,4rem);display:flex;position:relative;overflow:hidden}.hero__mark.svelte-gzujjl{font-family:var(--ff-display);letter-spacing:.01em;color:var(--black);white-space:nowrap;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(6rem,16vw,13rem);font-weight:400;position:absolute}.hero__mark.svelte-gzujjl i:where(.svelte-gzujjl){opacity:.065;font-style:normal;display:inline-block}.hero__mark--2.svelte-gzujjl{bottom:-3vw;right:-2vw}.hero__content.svelte-gzujjl{z-index:2;flex-direction:column;align-items:center;width:100%;max-width:80rem;display:flex;position:relative}.hero__eyebrow.svelte-gzujjl{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);opacity:0;margin-bottom:1.5rem;font-size:.8rem;animation:.8s .1s forwards svelte-gzujjl-rise;display:block}.hero.svelte-gzujjl h1:where(.svelte-gzujjl){font-family:var(--ff-display);letter-spacing:.01em;opacity:0;font-size:clamp(3.1rem,15vw,11rem);font-weight:400;line-height:.95;animation:.8s .3s forwards svelte-gzujjl-rise}.hero__name.svelte-gzujjl{display:inline}.hero__name.svelte-gzujjl+.hero__name:where(.svelte-gzujjl):before{content:" "}@media (width<=768px){.hero.svelte-gzujjl h1:where(.svelte-gzujjl){font-size:clamp(4.5rem,18vw,7rem);line-height:.9}.hero__name.svelte-gzujjl{white-space:nowrap;display:block}.hero__name.svelte-gzujjl+.hero__name:where(.svelte-gzujjl):before{content:none}.hero__sub.svelte-gzujjl{max-width:22rem}.hero__cta.svelte-gzujjl{gap:.85rem}.hero__cta-item.svelte-gzujjl{font-size:.7rem}}.hero__sub.svelte-gzujjl{color:var(--ink-soft);opacity:0;max-width:35rem;margin:2rem auto 0;font-size:clamp(1rem,2vw,1.25rem);line-height:1.55;animation:.8s .55s forwards svelte-gzujjl-rise;display:block}.hero__cta.svelte-gzujjl{z-index:2;opacity:0;align-items:center;gap:clamp(1rem,2.5vw,1.75rem);margin-top:clamp(2rem,5vh,3rem);animation:.8s .75s forwards svelte-gzujjl-rise;display:flex;position:relative}.hero__cta-item.svelte-gzujjl{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--black);cursor:pointer;background:0 0;border:0;align-items:center;gap:.5rem;margin:0;padding:0;font-size:.78rem;text-decoration:none;display:inline-flex}.hero__cta-index.svelte-gzujjl{color:var(--gray)}.hero__cta-label.svelte-gzujjl{position:relative}.hero__cta-label.svelte-gzujjl:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .3s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.hero__cta-item.svelte-gzujjl:hover .hero__cta-label:where(.svelte-gzujjl):after{transform-origin:0;transform:scaleX(1)}.hero__cta-icon.svelte-gzujjl{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.hero__cta-divider.svelte-gzujjl{background:#0a0a0a33;width:1px;height:1rem}.hero__dots.svelte-gzujjl{z-index:1;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;bottom:clamp(1.5rem,4vw,3rem);left:clamp(1.5rem,4vw,3rem)}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl){background:var(--black);opacity:.06;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-gzujjl-dot-blink;display:block}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(2){animation-delay:.3s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(3){animation-delay:.6s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(4){animation-delay:.9s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(5){animation-delay:1.2s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(6){animation-delay:1.5s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(7){animation-delay:1.8s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(8){animation-delay:2.1s}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl):nth-child(9){animation-delay:2.4s}@keyframes svelte-gzujjl-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes svelte-gzujjl-dot-blink{0%,to{opacity:.06}50%{opacity:.32}}@keyframes svelte-gzujjl-spin{0%{transform:translateY(-50%)rotate(0)}to{transform:translateY(-50%)rotate(360deg)}}@media (prefers-reduced-motion:reduce){.hero__eyebrow.svelte-gzujjl,.hero.svelte-gzujjl h1:where(.svelte-gzujjl),.hero__sub.svelte-gzujjl,.hero__cta.svelte-gzujjl{opacity:1;animation:none}.hero__dots.svelte-gzujjl i:where(.svelte-gzujjl){opacity:.2;animation:none}}.about.svelte-1fbzgiq{background:var(--black);z-index:2;height:200vh;position:relative}.about__mark.svelte-1fbzgiq{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-dark);opacity:.05;white-space:nowrap;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(4rem,11vw,9rem);font-weight:400;position:absolute;bottom:-2.5vw;right:-.5vw}.about__dots.svelte-1fbzgiq{z-index:0;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;top:clamp(1.5rem,4vw,3rem);left:clamp(1.5rem,4vw,3rem)}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq){background:var(--fg-dark);opacity:.08;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-1fbzgiq-about-dot-blink;display:block}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(2){animation-delay:.3s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(3){animation-delay:.6s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(4){animation-delay:.9s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(5){animation-delay:1.2s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(6){animation-delay:1.5s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(7){animation-delay:1.8s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(8){animation-delay:2.1s}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq):nth-child(9){animation-delay:2.4s}.about__dots--bl.svelte-1fbzgiq{inset:auto auto clamp(1.5rem,4vw,3rem) clamp(1.5rem,4vw,3rem)}.about__spin.svelte-1fbzgiq{z-index:0;pointer-events:none;opacity:.3;width:26px;height:26px;animation:10s linear infinite svelte-1fbzgiq-about-spin;position:absolute;top:clamp(1.5rem,4vw,3rem);right:clamp(1.5rem,4vw,3rem)}.about__spin.svelte-1fbzgiq:before,.about__spin.svelte-1fbzgiq:after{content:"";background:var(--fg-dark);position:absolute}.about__spin.svelte-1fbzgiq:before{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.about__spin.svelte-1fbzgiq:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.stage.svelte-1fbzgiq{z-index:1;place-items:center;height:100vh;display:grid;position:sticky;top:0;overflow:hidden}.content.svelte-1fbzgiq{grid-template-columns:1.15fr 1px 1fr;align-items:center;gap:clamp(2rem,5vw,4.5rem);width:100%;max-width:76rem;padding:0 clamp(1.5rem,6vw,4rem);display:grid}.headline.svelte-1fbzgiq{will-change:transform;flex-direction:column;gap:clamp(1rem,2.5vh,1.5rem);display:flex}.eyebrow.svelte-1fbzgiq{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);opacity:0;font-size:.8rem}.heading.svelte-1fbzgiq{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-dark);margin:0;font-size:clamp(2.4rem,6.5vw,7.25rem);font-weight:400;line-height:.95}.line-mask.svelte-1fbzgiq{display:block;overflow:hidden}.line.svelte-1fbzgiq{display:block;transform:translateY(105%)}.cursor.svelte-1fbzgiq{font-family:var(--ff-mono);opacity:0;margin-left:.05em;animation:1s step-end infinite svelte-1fbzgiq-about-blink;display:inline-block}.divider.svelte-1fbzgiq{transform-origin:top;background:#f1f1ef29;align-self:stretch;width:1px;transform:scaleY(0)}.body.svelte-1fbzgiq{will-change:transform;flex-direction:column;gap:clamp(1.75rem,4vh,2.75rem);display:flex}.bio.svelte-1fbzgiq{max-width:34rem;font-family:var(--ff-body);color:var(--fg-dark);opacity:0;margin:0;font-size:clamp(1.05rem,1.7vw,1.35rem);font-weight:500;line-height:1.6}.facts.svelte-1fbzgiq{flex-direction:column;margin:0;display:flex}.facts__row.svelte-1fbzgiq{opacity:0;align-items:baseline;gap:clamp(1rem,2vw,1.75rem);padding:clamp(.75rem,1.8vh,1.1rem) 0;display:flex;position:relative}.facts__rule.svelte-1fbzgiq{transform-origin:0;background:#f1f1ef29;height:1px;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.facts__row.svelte-1fbzgiq dt:where(.svelte-1fbzgiq){width:clamp(5.5rem,9vw,7rem);font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);flex:none;margin:0;font-size:.72rem}.facts__row.svelte-1fbzgiq dd:where(.svelte-1fbzgiq){font-family:var(--ff-body);color:var(--fg-dark);opacity:.9;margin:0;font-size:clamp(.92rem,1.15vw,1.05rem)}@keyframes svelte-1fbzgiq-about-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes svelte-1fbzgiq-about-dot-blink{0%,to{opacity:.08}50%{opacity:.34}}@keyframes svelte-1fbzgiq-about-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=860px){.content.svelte-1fbzgiq{grid-template-columns:1fr;row-gap:clamp(2rem,5vh,3rem)}.divider.svelte-1fbzgiq{display:none}.body.svelte-1fbzgiq{gap:clamp(1.5rem,4vh,2rem)}}@media (width<=700px){.heading.svelte-1fbzgiq{font-size:clamp(2.1rem,11vw,3.2rem)}.bio.svelte-1fbzgiq{max-width:none;font-size:clamp(.98rem,4vw,1.1rem)}.facts.svelte-1fbzgiq{-moz-column-gap:1.25rem;grid-template-columns:1fr 1fr;column-gap:1.25rem;display:grid}.facts__row.svelte-1fbzgiq{flex-direction:column;align-items:flex-start;gap:.3rem;padding:clamp(.6rem,2vh,.85rem) 0}.facts__row.svelte-1fbzgiq dt:where(.svelte-1fbzgiq){width:auto}.about__mark.svelte-1fbzgiq{font-size:clamp(3rem,20vw,5rem)}}@media (prefers-reduced-motion:reduce){.cursor.svelte-1fbzgiq{opacity:1;animation:none}.about__dots.svelte-1fbzgiq i:where(.svelte-1fbzgiq){opacity:.2;animation:none}.about__spin.svelte-1fbzgiq{animation:none}}.projects.svelte-1fgsibr{background:var(--white);color:var(--black);z-index:3;flex-direction:column;min-height:100dvh;padding:clamp(2rem,6vh,4rem) 0 clamp(2rem,6vh,3.5rem);display:flex;position:relative;overflow:hidden}.projects__mark.svelte-1fgsibr{opacity:.05;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;width:clamp(9rem,24vw,19rem);height:auto;position:absolute;bottom:-6vw;left:-2vw}.projects__dots.svelte-1fgsibr{z-index:1;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;top:clamp(1.5rem,4vw,3rem);left:clamp(1.5rem,4vw,3rem)}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr){background:var(--black);opacity:.1;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-1fgsibr-projects-dot-blink;display:block}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(2){animation-delay:.3s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(3){animation-delay:.6s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(4){animation-delay:.9s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(5){animation-delay:1.2s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(6){animation-delay:1.5s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(7){animation-delay:1.8s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(8){animation-delay:2.1s}.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr):nth-child(9){animation-delay:2.4s}.projects__card.projects__card--intro.svelte-1fgsibr,.projects__card.projects__card--outro.svelte-1fgsibr{width:100vw;max-width:100vw;color:var(--black);background:0 0;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.intro__content.svelte-1fgsibr,.outro__content.svelte-1fgsibr{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:clamp(1.25rem,3vh,2rem);padding:0 1.5rem;display:flex;position:relative}.intro__heading.svelte-1fgsibr,.outro__heading.svelte-1fgsibr{font-family:var(--ff-display);letter-spacing:.01em;margin:0;font-size:clamp(2.6rem,7vw,5.5rem);font-weight:400;line-height:.95}.outro__list-group.svelte-1fgsibr{flex-direction:column;align-items:center;gap:.6rem;display:flex}.outro__list-label.svelte-1fgsibr{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.7rem}.outro__list.svelte-1fgsibr{font-family:var(--ff-body);letter-spacing:.01em;color:var(--gray);flex-wrap:wrap;justify-content:center;margin:0;padding:0;font-size:.9rem;font-weight:400;list-style:none;display:flex}.outro__list.svelte-1fgsibr li:where(.svelte-1fgsibr){align-items:center;display:flex}.outro__list.svelte-1fgsibr li:where(.svelte-1fgsibr) span:where(.svelte-1fgsibr){color:var(--accent-ph);margin-left:.3rem}.outro__list.svelte-1fgsibr li:where(.svelte-1fgsibr):not(:last-child):after{content:"|";color:var(--accent-ph);margin:0 .9rem}.outro__list.svelte-1fgsibr li:where(.svelte-1fgsibr) a:where(.svelte-1fgsibr){color:inherit;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.outro__list.svelte-1fgsibr li:where(.svelte-1fgsibr) a:where(.svelte-1fgsibr):hover{opacity:.6}.outro__link.svelte-1fgsibr{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--black);border-bottom:1px solid var(--black);align-items:center;gap:.5rem;padding-bottom:.15rem;font-size:.8rem;font-weight:400;text-decoration:none;transition:opacity .2s;display:inline-flex}.outro__link.svelte-1fgsibr:hover{opacity:.6}.outro__link.svelte-1fgsibr svg:where(.svelte-1fgsibr){fill:none;stroke:currentColor;stroke-width:2px;width:13px;height:13px}.line-mask.svelte-1fgsibr{display:block;overflow:hidden}.line.svelte-1fgsibr{display:block;transform:translateY(105%)}.cursor.svelte-1fgsibr{font-family:var(--ff-mono);opacity:0;margin-left:.05em;animation:1s step-end infinite svelte-1fgsibr-projects-blink;display:inline-block}.intro__scroll.svelte-1fgsibr{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);align-items:center;gap:.5rem;font-size:.75rem;display:inline-flex}.intro__scroll.svelte-1fgsibr svg:where(.svelte-1fgsibr){fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px;animation:1.6s ease-in-out infinite svelte-1fgsibr-intro-scroll-bounce}@keyframes svelte-1fgsibr-intro-scroll-bounce{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}@keyframes svelte-1fgsibr-projects-blink{0%,to{opacity:1}50%{opacity:0}}.projects__head.svelte-1fgsibr{z-index:1;border-bottom:1px solid #0a0a0a24;justify-content:space-between;align-items:baseline;margin:0 clamp(1.5rem,5vw,4rem);padding-bottom:clamp(1.25rem,3vh,2rem);display:flex;position:relative}.projects__eyebrow.svelte-1fgsibr,.projects__count.svelte-1fgsibr{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.8rem}.projects__head-right.svelte-1fgsibr{align-items:center;gap:clamp(1rem,2vw,1.5rem);display:flex}.projects__viewport.svelte-1fgsibr{z-index:1;flex:1;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.projects__track.svelte-1fgsibr{will-change:transform;align-items:stretch;gap:clamp(1.5rem,4vw,6rem);width:max-content;margin:0;padding:0;list-style:none;display:flex}.projects__card.svelte-1fgsibr{flex-direction:row;flex:none;align-items:center;gap:clamp(2rem,4vw,4rem);width:clamp(85vw,88vw,1200px);display:flex}.card__media.svelte-1fgsibr{aspect-ratio:4/3;background:var(--accent-ph);flex:0 0 52%;min-width:0;max-height:clamp(320px,60vh,720px);transition:transform .6s cubic-bezier(.2,.6,.2,1);position:relative;overflow:hidden;box-shadow:0 24px 48px #0a0a0a1a}.media__pan.svelte-1fgsibr{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.media__pan.svelte-1fgsibr img:where(.svelte-1fgsibr),.media__pan.svelte-1fgsibr video:where(.svelte-1fgsibr){-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.media__pan.svelte-1fgsibr img:where(.svelte-1fgsibr){transition:opacity .6s}.media__pan.svelte-1fgsibr video:where(.svelte-1fgsibr){-o-object-fit:cover;object-fit:cover;opacity:0;background:#000;transition:opacity .6s}.media__pan.is-video .media__img.svelte-1fgsibr{opacity:0}.media__pan.is-video .media__video.svelte-1fgsibr{opacity:1}.projects__card.svelte-1fgsibr:hover .card__media:where(.svelte-1fgsibr){transform:scale(1.02)}.card__info.svelte-1fgsibr{flex-direction:column;flex:auto;gap:clamp(.5rem,1.2vh,.85rem);min-width:0;display:flex}.card__row.svelte-1fgsibr{align-items:baseline;gap:clamp(.9rem,2vw,1.5rem);display:flex}.card__index.svelte-1fgsibr{font-family:var(--ff-mono);color:var(--gray);font-size:.85rem}.card__title.svelte-1fgsibr{font-family:var(--ff-display);letter-spacing:.005em;font-size:clamp(1.35rem,2vw,1.9rem);font-weight:400;line-height:1}.card__tag.svelte-1fgsibr{font-family:var(--ff-body);color:var(--ink-soft);opacity:.75;max-width:42ch;font-size:clamp(.78rem,.95vw,.9rem)}.card__metrics.svelte-1fgsibr{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.card__metrics.svelte-1fgsibr li:where(.svelte-1fgsibr){font-family:var(--ff-mono);letter-spacing:.04em;color:var(--white);background:var(--black);white-space:nowrap;border-radius:999px;padding:.3rem .7rem;font-size:.65rem}.card__desc.svelte-1fgsibr{font-family:var(--ff-body);color:var(--gray);max-width:52ch;font-size:clamp(.82rem,1vw,.95rem);line-height:1.55}.card__tech.svelte-1fgsibr{flex-wrap:wrap;align-items:center;gap:clamp(.9rem,2vw,1.5rem);margin-top:clamp(.6rem,1.5vh,1rem);display:flex}.tech__label.svelte-1fgsibr{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.7rem}.tech__list.svelte-1fgsibr{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tech__list.svelte-1fgsibr li:where(.svelte-1fgsibr){font-family:var(--ff-mono);letter-spacing:.03em;color:var(--black);white-space:nowrap;border:1px solid #0a0a0a40;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.65rem;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.tech__list.svelte-1fgsibr li:where(.svelte-1fgsibr):hover{background:var(--tech-color,var(--black));color:var(--white);border-color:#0000}.tech__list.svelte-1fgsibr li.tech__more:where(.svelte-1fgsibr){cursor:pointer;background:0 0;border-style:dashed}.tech__list.svelte-1fgsibr li.tech__more:where(.svelte-1fgsibr):hover{background:var(--black);color:var(--white);border-color:#0000}.tech__list.svelte-1fgsibr li.tech__more:where(.svelte-1fgsibr):focus-visible{outline:2px solid var(--black);outline-offset:2px}.tech-icon.svelte-1fgsibr{width:.85em;height:.85em;color:inherit;flex-shrink:0}.tech-icon.svelte-1fgsibr path:where(.svelte-1fgsibr){fill:currentColor}.card__actions.svelte-1fgsibr{flex-wrap:wrap;gap:clamp(.6rem,1.2vw,.9rem);margin-top:clamp(.9rem,2vh,1.25rem);display:flex}.card__actions-left.svelte-1fgsibr,.card__actions-right.svelte-1fgsibr{flex-wrap:wrap;align-items:center;gap:clamp(.6rem,1.2vw,.9rem);display:flex}.card__btn.svelte-1fgsibr{font-family:var(--ff-mono);letter-spacing:.06em;cursor:pointer;border:0;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-size:.75rem;text-decoration:none;transition:transform .3s cubic-bezier(.2,.6,.2,1),background .3s,color .3s,border-color .3s;display:inline-flex}.card__btn.svelte-1fgsibr svg:where(.svelte-1fgsibr){fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.card__btn--case.svelte-1fgsibr{background:var(--black);color:var(--white)}.card__btn--case.svelte-1fgsibr:hover{background:var(--accent-ph)}.card__btn--demo.svelte-1fgsibr{color:var(--black);background:0 0;border:1px solid #0a0a0a4d}.card__btn--demo.svelte-1fgsibr:hover{background:var(--black);color:var(--white);border-color:var(--black)}.card__btn--npm.svelte-1fgsibr{color:var(--black);background:0 0;border:1px solid #0a0a0a4d}.card__btn--npm.svelte-1fgsibr .card__btn-npm:where(.svelte-1fgsibr){fill:currentColor;stroke:none}.card__btn--npm.svelte-1fgsibr:hover{background:var(--black);color:var(--white);border-color:var(--black)}.card__btn--repo.svelte-1fgsibr{color:var(--black);background:0 0;border:0;border-bottom:1px solid #0a0a0a4d;border-radius:0;padding-left:0;padding-right:0}.card__btn--repo.svelte-1fgsibr .card__btn-gh:where(.svelte-1fgsibr){fill:currentColor;stroke:none}.card__btn--repo.svelte-1fgsibr:hover{border-bottom-color:var(--black);background:0 0}.card__btn.svelte-1fgsibr:hover{transform:translateY(-2px)}@keyframes svelte-1fgsibr-projects-dot-blink{0%,to{opacity:.06}50%{opacity:.32}}@media (width<=900px){.projects.svelte-1fgsibr{padding-top:clamp(2.5rem,6vh,4rem)}.projects__head.svelte-1fgsibr{margin:0 1.25rem;padding-bottom:.85rem}.projects__dots.svelte-1fgsibr{display:none}.projects__head-right.svelte-1fgsibr{gap:.5rem}.projects__card.svelte-1fgsibr{flex-direction:column;align-items:stretch;gap:clamp(1.25rem,3vh,2rem);width:92vw}.card__media.svelte-1fgsibr{flex:none;width:100%;max-height:clamp(180px,32vh,300px)}}@media (width<=640px){.card__actions.svelte-1fgsibr{flex-wrap:nowrap;gap:.5rem}.card__actions-left.svelte-1fgsibr,.card__actions-right.svelte-1fgsibr{flex:1;gap:.5rem}.card__btn.svelte-1fgsibr{flex:1;justify-content:center;padding:.6rem}.card__btn--case.svelte-1fgsibr{width:100%;padding:.6rem .9rem}.card__btn--demo.svelte-1fgsibr span:where(.svelte-1fgsibr),.card__btn--npm.svelte-1fgsibr span:where(.svelte-1fgsibr),.card__btn--repo.svelte-1fgsibr span:where(.svelte-1fgsibr){display:none}.card__btn--repo.svelte-1fgsibr{border:1px solid #0a0a0a4d;border-radius:0;padding-left:.6rem;padding-right:.6rem}}@media (prefers-reduced-motion:reduce){.projects__dots.svelte-1fgsibr i:where(.svelte-1fgsibr){animation:none}.card__media.svelte-1fgsibr{transition:none}.media__pan.svelte-1fgsibr video:where(.svelte-1fgsibr){display:none}.intro__scroll.svelte-1fgsibr svg:where(.svelte-1fgsibr),.cursor.svelte-1fgsibr{animation:none}.projects__viewport.svelte-1fgsibr{align-items:flex-start;overflow:visible}.projects__track.svelte-1fgsibr{flex-direction:column;gap:clamp(1.5rem,4vh,3rem);width:auto;padding:0}.projects__card.svelte-1fgsibr,.projects__card.projects__card--intro.svelte-1fgsibr,.projects__card.projects__card--outro.svelte-1fgsibr{width:92vw;max-width:92vw;margin:0 auto}.projects__card.svelte-1fgsibr:not(.projects__card--intro):not(.projects__card--outro){flex-direction:column;align-items:stretch;gap:clamp(1.25rem,3vh,2rem)}.projects__card--intro.svelte-1fgsibr,.projects__card--outro.svelte-1fgsibr{padding:clamp(3rem,8vh,5rem) 1.5rem}.card__media.svelte-1fgsibr{flex:none;width:100%;max-height:clamp(180px,32vh,300px)}}.process.svelte-idpqxb{background:var(--white);color:var(--black);z-index:3;flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.process__mark.svelte-idpqxb{z-index:0;font-family:var(--ff-display);letter-spacing:.01em;color:var(--black);opacity:0;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(6rem,16vw,13rem);font-weight:400;position:absolute;top:6vw;right:-1vw}.process__cross.svelte-idpqxb{z-index:2;pointer-events:none;width:44px;height:44px;position:absolute;top:clamp(6rem,15vw,10.5rem);left:clamp(4.5rem,12vw,9rem)}.process__cross.svelte-idpqxb:before,.process__cross.svelte-idpqxb:after{content:"";background:var(--black);position:absolute}.process__cross.svelte-idpqxb:before{width:8px;top:0;bottom:0;left:50%;transform:translate(-50%)}.process__cross.svelte-idpqxb:after{height:8px;top:50%;left:0;right:0;transform:translateY(-50%)}.process__dots.svelte-idpqxb{z-index:2;pointer-events:none;grid-template-rows:repeat(3,9px);grid-template-columns:repeat(3,9px);gap:10px;display:grid;position:absolute;bottom:clamp(4rem,10vw,7rem);right:clamp(3rem,8vw,6rem)}.process__dots.svelte-idpqxb i:where(.svelte-idpqxb){background:var(--black);width:9px;height:9px;font-style:normal;display:block}.process__badges.svelte-idpqxb{z-index:2;pointer-events:none;position:absolute;inset:0}.process__badge.svelte-idpqxb{place-items:center;width:46px;height:46px;display:grid;position:absolute}.process__badge.svelte-idpqxb svg:where(.svelte-idpqxb){width:32px;height:32px;fill:var(--black)}.process__viewport.svelte-idpqxb{z-index:1;flex:1;align-items:center;display:flex;position:relative;overflow:hidden}.process__track.svelte-idpqxb{will-change:transform;align-items:center;gap:clamp(1rem,1.8vw,2rem);width:max-content;padding-left:85vw;display:flex}.track-end-spacer.svelte-idpqxb{flex:none;height:1px}.unit.svelte-idpqxb{white-space:nowrap;flex:none}.unit.svelte-idpqxb .word:where(.svelte-idpqxb){font-family:var(--ff-display);letter-spacing:.01em;color:var(--black);white-space:nowrap;margin-right:.28em;font-size:clamp(4.5rem,11vw,9.5rem);font-weight:400;line-height:.95;display:inline-block}.unit.svelte-idpqxb .word:where(.svelte-idpqxb):last-child{margin-right:0}.unit.svelte-idpqxb .word:where(.svelte-idpqxb) .char:where(.svelte-idpqxb){display:inline-block}.card.svelte-idpqxb{background:var(--black);border-radius:0;flex:none;padding:clamp(.9rem,2.7vw,1.8rem) clamp(1.8rem,4.8vw,3.3rem)}.card.svelte-idpqxb span:where(.svelte-idpqxb){font-family:var(--ff-display);letter-spacing:.01em;color:var(--white);white-space:nowrap;font-size:clamp(4.25rem,10vw,8.5rem);font-weight:400;line-height:.95;display:block}.card--system.svelte-idpqxb .sad-word:where(.svelte-idpqxb){font-family:var(--ff-display);letter-spacing:.01em;color:var(--white);white-space:nowrap;font-size:clamp(4.25rem,10vw,8.5rem);font-weight:400;line-height:.95;display:inline-block}.card--system.svelte-idpqxb .sad-word:where(.svelte-idpqxb):not(:last-child){margin-right:.28em}.cluster.svelte-idpqxb{flex:none;align-items:flex-end;display:flex;position:relative}.cluster--with.svelte-idpqxb{margin-top:clamp(3.3rem,7.8vw,5.4rem)}.card--with.svelte-idpqxb{z-index:1;position:relative;transform:translateY(-3rem)}.card--problems.svelte-idpqxb .prob-char:where(.svelte-idpqxb){font-family:var(--ff-display);letter-spacing:.01em;color:var(--white);white-space:pre;font-size:clamp(4.25rem,10vw,8.5rem);font-weight:400;line-height:.95;display:inline-block}.card--real.svelte-idpqxb{z-index:2;padding:.5rem 1.2rem;position:absolute;top:clamp(-3.2rem,-6.8vw,-2rem);left:40%;transform:translate(-40%)translateY(-2rem)}.card--real.svelte-idpqxb span:where(.svelte-idpqxb){font-size:clamp(2.5rem,5vw,3.75rem)}.cluster--into.svelte-idpqxb{margin-top:clamp(3.3rem,7.8vw,5.4rem)}.card--into.svelte-idpqxb{z-index:2;padding:.5rem 1.2rem;position:absolute;top:clamp(-4.5rem,-8.4vw,-3.3rem);left:clamp(-2rem,-3vw,-1rem);transform:rotate(-18deg)}.card--into.svelte-idpqxb span:where(.svelte-idpqxb){font-size:clamp(2.75rem,5.5vw,4.25rem)}@media (width<=860px),(prefers-reduced-motion:reduce){.process.svelte-idpqxb{min-height:auto;padding-block:clamp(3rem,10vh,4.5rem)}.process__mark.svelte-idpqxb,.process__cross.svelte-idpqxb,.process__dots.svelte-idpqxb,.process__badges.svelte-idpqxb{display:none}.process__viewport.svelte-idpqxb{align-items:flex-start;overflow:visible}.process__track.svelte-idpqxb{flex-direction:column;align-items:flex-start;gap:clamp(1.75rem,5vh,2.5rem);width:auto;padding:0 clamp(1.5rem,6vw,3rem)}.track-end-spacer.svelte-idpqxb{display:none}.unit.svelte-idpqxb .word:where(.svelte-idpqxb){font-size:clamp(2.2rem,10vw,3.4rem)}.card.svelte-idpqxb span:where(.svelte-idpqxb),.card--system.svelte-idpqxb .sad-word:where(.svelte-idpqxb){font-size:clamp(2rem,9vw,3rem)}.cluster.svelte-idpqxb{flex-wrap:wrap;gap:.5rem;margin:0;padding-top:clamp(2.5rem,8vh,3.5rem);position:relative}.card--real.svelte-idpqxb,.card--into.svelte-idpqxb{margin-left:0;position:relative;inset:auto;transform:none}.card--problems.svelte-idpqxb{clip-path:none!important}.card--problems.svelte-idpqxb .prob-char:where(.svelte-idpqxb){opacity:1!important}.card--system.svelte-idpqxb{clip-path:none!important}.card--system.svelte-idpqxb .sad-word:where(.svelte-idpqxb){opacity:1!important}}.marquee.svelte-87yoyt{z-index:3;background:0 0;padding:clamp(.6rem,1.8vh,1rem) 0 clamp(.42rem,1.26vh,.7rem);position:relative;overflow:hidden}.marquee__track.svelte-87yoyt{width:max-content;animation:svelte-87yoyt-scroll-left var(--loop-dur,26s) linear infinite;display:flex}.marquee.svelte-87yoyt:hover .marquee__track:where(.svelte-87yoyt){animation-play-state:paused}.marquee__group.svelte-87yoyt{flex:none;align-items:center;display:flex}.marquee__word.svelte-87yoyt{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-light);white-space:nowrap;padding:0 clamp(1rem,2.5vw,2rem);font-size:clamp(.8rem,2.1vw,1.6rem);font-weight:400}.marquee__sep.svelte-87yoyt{-webkit-user-select:none;user-select:none;pointer-events:none;flex:none;width:auto;height:clamp(.8rem,1.7vw,1.3rem);display:block}@keyframes svelte-87yoyt-scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.marquee__track.svelte-87yoyt{animation-play-state:paused}}.xp.svelte-8grda9{background:var(--white);color:var(--black);z-index:3;padding:clamp(5rem,12vh,9rem) clamp(1.5rem,5vw,4rem) clamp(7rem,16vh,11rem);position:relative;overflow:hidden}.xp__mark.svelte-8grda9{font-family:var(--ff-display);letter-spacing:.01em;color:var(--black);opacity:.065;white-space:nowrap;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;will-change:transform;font-size:clamp(6rem,16vw,13rem);font-weight:400;position:absolute}.xp__mark--edu.svelte-8grda9{top:-3vw;right:-2vw}.xp__mark--exp.svelte-8grda9{bottom:-3vw;left:-2vw}.xp__dots.svelte-8grda9{z-index:0;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;bottom:clamp(2rem,5vw,3.5rem);right:clamp(1.5rem,4vw,3rem)}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9){background:var(--black);opacity:.06;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-8grda9-dot-blink;display:block}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(2){animation-delay:.3s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(3){animation-delay:.6s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(4){animation-delay:.9s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(5){animation-delay:1.2s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(6){animation-delay:1.5s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(7){animation-delay:1.8s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(8){animation-delay:2.1s}.xp__dots.svelte-8grda9 i:where(.svelte-8grda9):nth-child(9){animation-delay:2.4s}.xp__spin.svelte-8grda9{z-index:0;pointer-events:none;opacity:.35;width:26px;height:26px;margin-top:-13px;animation:10s linear infinite svelte-8grda9-spin;position:absolute;top:50%;left:clamp(2rem,5vw,4rem)}.xp__spin.svelte-8grda9:before,.xp__spin.svelte-8grda9:after{content:"";background:var(--black);position:absolute}.xp__spin.svelte-8grda9:before{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.xp__spin.svelte-8grda9:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.xp__head.svelte-8grda9{z-index:1;flex-direction:column;gap:.75rem;margin-bottom:clamp(3rem,8vh,5rem);display:flex;position:relative}.xp__eyebrow.svelte-8grda9{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);white-space:nowrap;font-size:.8rem;display:inline-block}.xp__heading.svelte-8grda9{font-family:var(--ff-display);letter-spacing:.005em;perspective:400px;margin:0;font-size:clamp(2rem,5vw,3.5rem);font-weight:400;line-height:1}.xp__char.svelte-8grda9{will-change:transform, opacity;display:inline-block}.xp__timeline.svelte-8grda9{z-index:1;max-width:60rem;margin:0 auto;position:relative}.xp__spine.svelte-8grda9{transform-origin:top;background:#0a0a0a29;width:2px;margin-left:-1px;position:absolute;top:6px;bottom:6px;left:50%}.xp__list.svelte-8grda9{flex-direction:column;gap:clamp(2.5rem,6vh,4rem);margin:0;padding:0;list-style:none;display:flex}.xp__entry.svelte-8grda9{-moz-column-gap:clamp(1rem, 3vw, 2rem);grid-template-columns:1fr 2rem 1fr;align-items:start;column-gap:clamp(1rem,3vw,2rem);display:grid;position:relative}.xp__tick.svelte-8grda9{background:var(--black);z-index:1;will-change:transform;grid-column:2;place-self:start center;width:9px;height:9px;margin-top:.4em;position:relative}.xp__body.svelte-8grda9{flex-direction:column;gap:.35rem;display:flex}.xp__entry--left.svelte-8grda9 .xp__body:where(.svelte-8grda9){text-align:right;grid-column:1;align-items:flex-end}.xp__entry--right.svelte-8grda9 .xp__body:where(.svelte-8grda9){text-align:left;grid-column:3;align-items:flex-start}.xp__date.svelte-8grda9{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray);font-size:.75rem}.xp__title.svelte-8grda9{font-family:var(--ff-display);perspective:400px;font-size:clamp(1.4rem,3vw,2.1rem);font-weight:400;line-height:1.05;display:inline-block}.xp__org.svelte-8grda9{font-family:var(--ff-body);color:var(--ink-soft);font-size:.95rem}.xp__desc.svelte-8grda9{font-family:var(--ff-body);color:var(--ink-soft);opacity:.75;max-width:34rem;margin:.15rem 0 0;font-size:.9rem;line-height:1.5}@media (width<=700px){.xp__timeline.svelte-8grda9{max-width:none}.xp__spine.svelte-8grda9{margin-left:0;left:calc(.75rem - 1px)}.xp__entry.svelte-8grda9{-moz-column-gap:1rem;grid-template-columns:1.5rem 1fr;column-gap:1rem}.xp__tick.svelte-8grda9{grid-column:1}.xp__entry--left.svelte-8grda9 .xp__body:where(.svelte-8grda9),.xp__entry--right.svelte-8grda9 .xp__body:where(.svelte-8grda9){text-align:left;grid-column:2;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.xp__dots.svelte-8grda9 i:where(.svelte-8grda9){opacity:.2;animation:none}.xp__spin.svelte-8grda9{animation:none}}@keyframes svelte-8grda9-dot-blink{0%,to{opacity:.06}50%{opacity:.32}}@keyframes svelte-8grda9-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skills.svelte-hjj7gn{background:var(--white);z-index:3;grid-template-columns:1fr 1fr;align-items:start;display:grid;position:relative}.skills__dark.svelte-hjj7gn{z-index:2;background:var(--black);height:100vh;color:var(--fg-dark);will-change:transform, width;justify-content:center;align-items:center;padding:clamp(2rem,6vw,4rem);display:flex;position:sticky;top:0;overflow:hidden}.skills__dark-content.svelte-hjj7gn{z-index:1;flex-direction:column;align-items:flex-start;gap:clamp(1rem,2.5vh,1.5rem);max-width:24rem;display:flex;position:relative}.skills__eyebrow.svelte-hjj7gn{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);opacity:0;font-size:.8rem}.skills__heading.svelte-hjj7gn{font-family:var(--ff-display);letter-spacing:.01em;margin:0;font-size:clamp(2.6rem,7vw,5.5rem);font-weight:400;line-height:.95}.line-mask.svelte-hjj7gn{display:block;overflow:hidden}.line.svelte-hjj7gn{display:block;transform:translateY(105%)}.cursor.svelte-hjj7gn{font-family:var(--ff-mono);opacity:0;margin-left:.05em;animation:1s step-end infinite svelte-hjj7gn-skills-blink;display:inline-block}.skills__lead.svelte-hjj7gn{font-family:var(--ff-body);color:var(--fg-dim);opacity:0;font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.55}.skills__dots.svelte-hjj7gn{z-index:1;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;top:clamp(1.5rem,4vw,3rem);left:clamp(1.5rem,4vw,3rem)}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn){background:var(--fg-dark);opacity:.08;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-hjj7gn-skills-dot-blink;display:block}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(2){animation-delay:.3s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(3){animation-delay:.6s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(4){animation-delay:.9s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(5){animation-delay:1.2s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(6){animation-delay:1.5s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(7){animation-delay:1.8s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(8){animation-delay:2.1s}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn):nth-child(9){animation-delay:2.4s}.skills__light.svelte-hjj7gn{background:var(--white);color:var(--black);grid-column:2;padding:clamp(3rem,8vh,5rem) clamp(2rem,6vw,4rem);position:relative;overflow:hidden}.skills__mark.svelte-hjj7gn{font-family:var(--ff-display);letter-spacing:.01em;color:var(--black);opacity:.05;white-space:nowrap;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(4rem,11vw,9rem);font-weight:400;position:absolute;top:-2.5vw;right:-.5vw}.skills__mark--dark.svelte-hjj7gn{color:var(--fg-dark);inset:auto auto -2.5vw -.5vw}.skills__legend.svelte-hjj7gn{z-index:1;gap:clamp(1rem,2.5vw,1.5rem);margin-bottom:clamp(1.5rem,3.5vh,2.25rem);display:flex;position:relative}.skills__legend-item.svelte-hjj7gn{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray,#0a0a0a8c);align-items:center;gap:.4rem;font-size:.68rem;display:inline-flex}.skills__legend-swatch.svelte-hjj7gn{flex:none;width:8px;height:8px;display:block}.skills__legend-swatch--solid.svelte-hjj7gn{background:var(--black)}.skills__legend-swatch--ghost.svelte-hjj7gn{background:var(--white);border:1px solid var(--gray-light,#0a0a0a4d)}.skills__col.svelte-hjj7gn{z-index:1;flex-direction:column;gap:clamp(2.5rem,6vh,3.75rem);max-width:30rem;display:flex;position:relative}.skills__group-head.svelte-hjj7gn{align-items:baseline;gap:.7rem;margin-bottom:clamp(.75rem,1.8vh,1.1rem);display:flex;position:relative}.skills__group-index.svelte-hjj7gn{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--accent-ph);flex:none;font-size:.68rem}.skills__rule.svelte-hjj7gn{transform-origin:0;background:#0a0a0a29;flex:auto;height:1px}.skills__label.svelte-hjj7gn{font-family:var(--ff-mono);letter-spacing:.1em;color:var(--black);white-space:nowrap;flex:none;font-size:.72rem}.skills__grid.svelte-hjj7gn{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(58px,7vw,84px);grid-auto-flow:dense;gap:clamp(.35rem,.9vw,.55rem);display:grid}.skills__box.svelte-hjj7gn{cursor:default;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.2,.6,.2,1),background-color .3s,border-color .3s,color .3s;display:flex;position:relative;overflow:hidden}.skills__box--wide.svelte-hjj7gn{grid-column:span 2}.skills__box--tall.svelte-hjj7gn{grid-row:span 2}.skills__box--solid.svelte-hjj7gn{background:var(--skill-tone,var(--black));color:var(--white)}.skills__box--solid.svelte-hjj7gn:hover{background:var(--skill-color)}.skills__box--ghost.svelte-hjj7gn{background:var(--white);border:1px solid var(--gray-light);color:var(--black)}.skills__box--ghost.svelte-hjj7gn:hover{color:var(--skill-color);border-color:var(--skill-color)}.skills__box.svelte-hjj7gn:hover{z-index:2;transform:translateY(-3px)}.skill-icon.svelte-hjj7gn{color:currentColor;width:34%;height:34%;transition:transform .3s,color .3s,filter .3s}.skill-icon.svelte-hjj7gn:not(.skill-icon--multicolor) path:where(.svelte-hjj7gn){fill:currentColor}.skill-icon--multicolor.svelte-hjj7gn{filter:grayscale()}.skills__box.svelte-hjj7gn:hover .skill-icon--multicolor:where(.svelte-hjj7gn){filter:grayscale(0)}.skills__box.svelte-hjj7gn:hover .skill-icon:where(.svelte-hjj7gn){transform:translateY(-9px)}.skills__box-label.svelte-hjj7gn{font-family:var(--ff-mono);letter-spacing:.02em;text-align:center;white-space:nowrap;text-overflow:ellipsis;opacity:0;pointer-events:none;padding:.3rem .35rem .4rem;font-size:.6rem;transition:opacity .25s,transform .25s;position:absolute;inset:auto 0 0;overflow:hidden;transform:translateY(8px)}.skills__box--solid.svelte-hjj7gn .skills__box-label:where(.svelte-hjj7gn){color:var(--white)}.skills__box--ghost.svelte-hjj7gn .skills__box-label:where(.svelte-hjj7gn){color:var(--black)}.skills__box.svelte-hjj7gn:hover .skills__box-label:where(.svelte-hjj7gn){opacity:1;transform:translateY(0)}@keyframes svelte-hjj7gn-skills-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes svelte-hjj7gn-skills-dot-blink{0%,to{opacity:.08}50%{opacity:.34}}@media (width<=860px){.skills.svelte-hjj7gn{grid-template-columns:1fr}.skills__dark.svelte-hjj7gn{height:60vh;position:relative;top:auto}.skills__dark-content.svelte-hjj7gn{text-align:center;align-items:center;max-width:none}.skills__lead.svelte-hjj7gn{font-size:clamp(.9rem,1.2vw,1rem)}.skills__light.svelte-hjj7gn{grid-column:1;margin-top:30px;padding:clamp(2.25rem,7vh,3rem) clamp(1.5rem,6vw,3rem)}.skills__col.svelte-hjj7gn{gap:2rem;max-width:none;position:relative}.skills__group.svelte-hjj7gn{width:100%}.skills__grid.svelte-hjj7gn{grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(58px,19vw,78px)}.skills__box-label.svelte-hjj7gn{opacity:1;padding-bottom:.3rem;font-size:.54rem;transform:translateY(0)}.skill-icon.svelte-hjj7gn{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.cursor.svelte-hjj7gn{opacity:1;animation:none}.skills__dots.svelte-hjj7gn i:where(.svelte-hjj7gn){opacity:.2;animation:none}.skills__box.svelte-hjj7gn{transition:none}}.ghactivity.svelte-1h2zyh7{background:var(--white);min-height:220vh;color:var(--black);z-index:3;position:relative}.ghactivity__stage.svelte-1h2zyh7{align-items:center;height:100vh;padding-block:clamp(1.75rem,6vw,4.5rem);display:flex;position:sticky;top:0;overflow:hidden}.ghactivity__mark.svelte-1h2zyh7{width:clamp(14rem,30vw,26rem);height:auto;color:var(--black);opacity:.07;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;bottom:-1vw;right:3vw}.ghactivity__mark.svelte-1h2zyh7 svg:where(.svelte-1h2zyh7){width:100%;height:auto;display:block}.ghactivity__dots.svelte-1h2zyh7{z-index:1;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;top:clamp(1.5rem,4vw,3rem);right:clamp(1.5rem,4vw,3rem)}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7){background:var(--black);opacity:.08;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-1h2zyh7-gh-dot-blink;display:block}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(2){animation-delay:.3s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(3){animation-delay:.6s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(4){animation-delay:.9s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(5){animation-delay:1.2s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(6){animation-delay:1.5s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(7){animation-delay:1.8s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(8){animation-delay:2.1s}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7):nth-child(9){animation-delay:2.4s}.ghactivity__inner.svelte-1h2zyh7{z-index:1;grid-template-columns:minmax(240px,35%) 1fr;gap:clamp(2rem,5vw,4rem);width:100%;padding-inline:clamp(2rem,7vw,5.5rem);display:grid;position:relative}.ghactivity__left.svelte-1h2zyh7{flex-direction:column;gap:clamp(.6rem,1.6vh,1rem);display:flex}.eyebrow.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.1em;color:var(--gray);font-size:.8rem}.heading.svelte-1h2zyh7{font-family:var(--ff-display);letter-spacing:.01em;margin:0;font-size:clamp(2.6rem,6vw,4.5rem);font-weight:400;line-height:.95}.line-mask.svelte-1h2zyh7{display:block;overflow:hidden}.line.svelte-1h2zyh7{display:block;transform:translateY(105%)}.cursor.svelte-1h2zyh7{opacity:0;margin-left:.05em;animation:1s step-end infinite svelte-1h2zyh7-gh-blink;display:inline-block}.stats.svelte-1h2zyh7{flex-direction:column;margin:clamp(.5rem,1.6vh,1rem) 0 0;display:flex}.stats__row.svelte-1h2zyh7{align-items:baseline;gap:1.25rem;padding:.55rem 0;display:flex;position:relative}.stats__rule.svelte-1h2zyh7{background:#0a0a0a24;height:1px;position:absolute;top:0;left:0;right:0}.stats__row.svelte-1h2zyh7 dt:where(.svelte-1h2zyh7){width:6.5rem;font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);flex:none;margin:0;font-size:.68rem}.stats__row.svelte-1h2zyh7 dd:where(.svelte-1h2zyh7){font-family:var(--ff-body);color:var(--black);margin:0;font-size:.9rem}.stats__row.svelte-1h2zyh7 dd:where(.svelte-1h2zyh7) span:where(.svelte-1h2zyh7){font-family:var(--ff-mono);font-weight:600}.ghactivity__insight.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray);white-space:pre;min-height:1em;margin:.4rem 0 0;font-size:.76rem}.ghactivity__link.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.05em;color:var(--black);border-bottom:1px solid #0a0a0a4d;align-self:flex-start;margin-top:clamp(.6rem,1.6vh,1rem);padding-bottom:.2rem;font-size:.8rem;transition:border-color .2s}.ghactivity__link.svelte-1h2zyh7:hover{border-color:var(--black)}.ghactivity__fallback.svelte-1h2zyh7{font-family:var(--ff-body);color:var(--ink-soft);max-width:26rem;font-size:.92rem}.ghactivity__fallback.svelte-1h2zyh7 a:where(.svelte-1h2zyh7){border-bottom:1px solid #0a0a0a4d}.ghactivity__right.svelte-1h2zyh7{flex-direction:column;gap:clamp(1.5rem,4vh,2.5rem);min-width:0;display:flex}.ghactivity__meta.svelte-1h2zyh7{align-self:flex-end;gap:1.1rem;display:flex}.ghactivity__years.svelte-1h2zyh7{flex-wrap:wrap;align-self:flex-end;align-items:center;gap:.35rem;margin-top:-1rem;display:flex}.ghactivity__years-btns.svelte-1h2zyh7{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.ghactivity__years-mobile.svelte-1h2zyh7{display:none}.ghactivity__years-mobile.svelte-1h2zyh7 select:where(.svelte-1h2zyh7){font-family:var(--ff-mono);letter-spacing:.08em;background:var(--white);color:var(--gray);cursor:pointer;border:0;border-bottom:1px solid #0a0a0a4d;padding:.3rem .4rem;font-size:.68rem}.ghactivity__year.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0a0a0a4d;padding:.25rem 0;font-size:.68rem;transition:background .2s,color .2s,border-color .2s}.ghactivity__year.svelte-1h2zyh7:hover{border-color:var(--black);color:var(--black)}.ghactivity__year.is-active.svelte-1h2zyh7{background:var(--black);color:var(--white);border-bottom:0;padding-inline:.65rem}.ghactivity__meta-item.svelte-1h2zyh7{font-family:var(--ff-mono);color:var(--black);align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;display:flex}.ghactivity__meta-icon.svelte-1h2zyh7{opacity:.65;flex-shrink:0;font-size:1.1rem;line-height:1}.ghactivity__meta-person.svelte-1h2zyh7{opacity:.65;flex-shrink:0;width:.95rem;height:.95rem;display:inline-block;position:relative}.ghactivity__meta-person.svelte-1h2zyh7:before{content:"";background:currentColor;border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.ghactivity__meta-person.svelte-1h2zyh7:after{content:"";background:currentColor;border-radius:50% 50% .15rem .15rem;width:.82rem;height:.48rem;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.ghactivity__loading.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.75rem;animation:1.2s step-end infinite svelte-1h2zyh7-gh-blink}.heatmap-wrap.svelte-1h2zyh7{-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;width:100%;max-width:100%;padding-bottom:.5rem;position:relative;overflow-x:auto}.heatmap-wrap.svelte-1h2zyh7::-webkit-scrollbar{display:none}.heatmap-scroll.svelte-1h2zyh7{width:max-content;margin-left:auto}.heatmap.svelte-1h2zyh7{gap:3px;width:max-content;display:flex}.heatmap__col.svelte-1h2zyh7{flex-direction:column;gap:3px;display:flex}.heatmap__cell.svelte-1h2zyh7{background:var(--black);width:11px;height:11px;opacity:var(--opacity,.06);will-change:opacity;display:block}.heatmap__legend.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.05em;color:var(--gray);background:var(--white);align-items:center;gap:.4rem;width:max-content;margin-top:1rem;padding-right:.5rem;font-size:.7rem;display:flex;position:sticky;left:0}.heatmap__legend.svelte-1h2zyh7 .heatmap__cell:where(.svelte-1h2zyh7){width:9px;height:9px}.monthly.svelte-1h2zyh7{align-items:flex-end;gap:3px;margin-top:auto;margin-left:auto;display:flex}.monthly__col.svelte-1h2zyh7{flex-direction:column;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.monthly__track.svelte-1h2zyh7{align-items:flex-end;width:100%;max-width:26px;height:96px;display:flex}.monthly__bar.svelte-1h2zyh7{background:var(--black);opacity:.8;transform-origin:bottom;width:100%;display:block}.monthly__label.svelte-1h2zyh7{font-family:var(--ff-mono);letter-spacing:.03em;color:var(--gray);font-size:.6rem}@keyframes svelte-1h2zyh7-gh-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes svelte-1h2zyh7-gh-dot-blink{0%,to{opacity:.08}50%{opacity:.34}}@media (width<=860px){.ghactivity.svelte-1h2zyh7{min-height:auto}.ghactivity__years-btns.svelte-1h2zyh7{display:none}.ghactivity__years-mobile.svelte-1h2zyh7{display:block}.ghactivity__stage.svelte-1h2zyh7{height:auto;padding-block:clamp(3rem,10vh,4.5rem);position:relative;top:auto}.ghactivity__inner.svelte-1h2zyh7{grid-template-columns:1fr;gap:clamp(1.5rem,4vh,2.5rem);padding-inline:clamp(1.5rem,6vw,3rem)}.heading.svelte-1h2zyh7{font-size:clamp(2.2rem,11vw,3rem)}.monthly.svelte-1h2zyh7{gap:3px;width:100%}.monthly__track.svelte-1h2zyh7{max-width:22px;height:72px}.monthly__label.svelte-1h2zyh7{font-size:.55rem}}@media (prefers-reduced-motion:reduce){.cursor.svelte-1h2zyh7{opacity:1;animation:none}.ghactivity__dots.svelte-1h2zyh7 i:where(.svelte-1h2zyh7){opacity:.2;animation:none}.ghactivity__loading.svelte-1h2zyh7{animation:none}}.contact.svelte-1hgotnh{background:var(--white);z-index:3;height:200vh;position:relative}.contact__curtain.svelte-1hgotnh{z-index:999;background:var(--black);pointer-events:none;will-change:transform;display:none;position:fixed;inset:0}.contact__stage.svelte-1hgotnh{grid-template-columns:1fr 1fr;height:100vh;display:grid;position:sticky;top:0;overflow:hidden}.contact__light.svelte-1hgotnh{background:var(--white);color:var(--black);flex-direction:column;grid-column:1;gap:clamp(1.75rem,4vh,2.5rem);padding:clamp(1.5rem,4vh,2.5rem) clamp(2rem,6vw,4rem);display:flex;position:relative;overflow:hidden}.contact__light-head.svelte-1hgotnh{opacity:0;flex-direction:column;gap:.6rem;max-width:26rem;margin-top:auto;display:flex}.contact__eyebrow-light.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.8rem}.contact__light-lead.svelte-1hgotnh{font-family:var(--ff-body);color:var(--ink-soft);font-size:clamp(.95rem,1.3vw,1.05rem);line-height:1.55}.contact__groups.svelte-1hgotnh{gap:clamp(2rem,6vw,3.5rem);margin-bottom:auto;display:flex}.contact__group.svelte-1hgotnh{opacity:0;flex:1;min-width:0}.contact__group-label.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);margin-bottom:.6rem;font-size:.72rem;display:block}.contact__group-list.svelte-1hgotnh{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.contact__group-list.svelte-1hgotnh a:where(.svelte-1hgotnh){font-family:var(--ff-body);color:var(--black);align-items:baseline;gap:.55rem;font-size:clamp(.95rem,1.3vw,1.05rem);transition:opacity .2s;display:inline-flex}.contact__group-index.svelte-1hgotnh{font-family:var(--ff-mono);color:var(--accent-ph);font-size:.65rem}.contact__group-list.svelte-1hgotnh a:where(.svelte-1hgotnh):hover{opacity:.55}.contact__copy.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.03em;color:var(--gray);opacity:0;border-top:1px solid #0a0a0a24;margin-top:clamp(.25rem,1vh,.5rem);padding-top:clamp(1rem,2.5vh,1.5rem);font-size:.72rem}.contact__dark.svelte-1hgotnh{z-index:2;background:var(--black);width:50%;color:var(--fg-dark);will-change:transform, width;justify-content:center;align-items:center;padding:clamp(2rem,6vw,4rem);display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.contact__dark-content.svelte-1hgotnh{z-index:1;flex-direction:column;align-items:flex-start;gap:clamp(1rem,2.5vh,1.5rem);max-width:24rem;display:flex;position:relative}.contact__eyebrow--dark.svelte-1hgotnh{color:var(--gray)}.contact__heading.svelte-1hgotnh{font-family:var(--ff-display);letter-spacing:.01em;margin:0;font-size:clamp(2.6rem,7vw,5.5rem);font-weight:400;line-height:.95}.line-mask.svelte-1hgotnh{display:block;overflow:hidden}.line.svelte-1hgotnh{display:block;transform:translateY(105%)}.cursor.svelte-1hgotnh{font-family:var(--ff-mono);opacity:0;margin-left:.05em;animation:1s step-end infinite svelte-1hgotnh-contact-blink;display:inline-block}.contact__cta.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.02em;color:var(--fg-dark);opacity:0;border-bottom:1px solid #f1f1ef4d;padding-bottom:.2rem;font-size:clamp(.9rem,1.2vw,1rem);transition:border-color .2s,opacity .2s}.contact__cta.svelte-1hgotnh:hover{border-color:var(--fg-dark)}.contact__ending.svelte-1hgotnh{z-index:2;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:clamp(1rem,2.5vh,1.6rem);width:100%;max-width:40rem;margin:0 auto;display:flex;position:absolute;inset:0}.contact__ending-eyebrow.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.1em;color:var(--gray);opacity:0;font-size:.8rem}.contact__ending-heading.svelte-1hgotnh{font-family:var(--ff-display);letter-spacing:.01em;margin:0;font-size:clamp(2.6rem,8vw,6.5rem);font-weight:400;line-height:.95}.contact__ending-credits.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);opacity:0;font-size:clamp(.72rem,1.1vw,.85rem)}.contact__ending-back.svelte-1hgotnh{color:var(--fg-dark);font-family:var(--ff-mono);letter-spacing:.08em;cursor:pointer;opacity:0;pointer-events:auto;background:0 0;border:1px solid #f1f1ef4d;align-items:center;gap:.5rem;margin-top:clamp(.5rem,2vh,1rem);padding:.55rem 1.1rem;font-size:.72rem;transition:background .3s,color .3s,border-color .3s,transform .3s cubic-bezier(.2,.6,.2,1);display:inline-flex}.contact__ending-back.svelte-1hgotnh:hover{background:var(--fg-dark);color:var(--black);border-color:var(--fg-dark);transform:translateY(-2px)}.contact__ending-mobile.svelte-1hgotnh{display:none}.contact__ending-mobile-eyebrow.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.1em;color:var(--gray);opacity:0;font-size:.78rem}.contact__ending-mobile-heading.svelte-1hgotnh{font-family:var(--ff-display);letter-spacing:.01em;margin:0;font-size:clamp(2.2rem,11vw,3.2rem);font-weight:400;line-height:.95}.contact__ending-mobile-credits.svelte-1hgotnh{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray);opacity:0;font-size:.7rem}.contact__ending-mobile-back.svelte-1hgotnh{color:var(--fg-dark);font-family:var(--ff-mono);letter-spacing:.08em;cursor:pointer;opacity:0;background:0 0;border:1px solid #f1f1ef4d;align-items:center;gap:.5rem;margin-top:clamp(.3rem,1.5vh,.6rem);padding:.55rem 1.1rem;font-size:.72rem;transition:background .3s,color .3s,border-color .3s;display:inline-flex}.contact__ending-mobile-back.svelte-1hgotnh:active{background:var(--fg-dark);color:var(--black);border-color:var(--fg-dark)}.contact__dots.svelte-1hgotnh{z-index:1;pointer-events:none;grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);gap:9px;display:grid;position:absolute;top:clamp(1.5rem,4vw,3rem);right:clamp(1.5rem,4vw,3rem)}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh){background:var(--fg-dark);opacity:.08;width:8px;height:8px;font-style:normal;animation:3s ease-in-out infinite svelte-1hgotnh-contact-dot-blink;display:block}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(2){animation-delay:.3s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(3){animation-delay:.6s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(4){animation-delay:.9s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(5){animation-delay:1.2s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(6){animation-delay:1.5s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(7){animation-delay:1.8s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(8){animation-delay:2.1s}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh):nth-child(9){animation-delay:2.4s}.contact__mark.svelte-1hgotnh{font-family:var(--ff-display);letter-spacing:.01em;white-space:nowrap;z-index:0;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.05;font-size:clamp(4rem,11vw,9rem);font-weight:400;position:absolute}.contact__mark--light.svelte-1hgotnh{color:var(--black);top:-2.5vw;left:-.5vw}.contact__mark--dark.svelte-1hgotnh{color:var(--fg-dark);bottom:-2.5vw;right:-.5vw}@keyframes svelte-1hgotnh-contact-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes svelte-1hgotnh-contact-dot-blink{0%,to{opacity:.08}50%{opacity:.34}}@media (width<=860px){.contact.svelte-1hgotnh{height:auto}.contact__stage.svelte-1hgotnh{height:auto;display:block;position:relative;top:auto}.contact__dark.svelte-1hgotnh{width:100%;height:60vh;position:absolute;inset:0 0 auto}.contact__light.svelte-1hgotnh{flex-direction:column;grid-column:1;justify-content:flex-start;gap:clamp(1.5rem,4vh,2rem);min-height:auto;margin-top:60vh;padding:clamp(2rem,8vh,3.5rem) clamp(1.5rem,6vw,3rem);display:flex}.contact__groups.svelte-1hgotnh{grid-template-columns:1fr 1fr;gap:clamp(1rem,4vw,2rem);display:grid}.contact__copy.svelte-1hgotnh{text-align:left}.contact__ending.svelte-1hgotnh{display:none}.contact__ending-mobile.svelte-1hgotnh{text-align:center;background:var(--black);min-height:100svh;color:var(--fg-dark);flex-direction:column;justify-content:center;align-items:center;gap:clamp(.9rem,3vh,1.4rem);padding:clamp(3rem,12vh,4.5rem) clamp(1.5rem,6vw,3rem);display:flex;position:relative}}@media (prefers-reduced-motion:reduce){.cursor.svelte-1hgotnh{opacity:1;animation:none}.contact__dots.svelte-1hgotnh i:where(.svelte-1hgotnh){opacity:.2;animation:none}}.resume-modal.svelte-sygo7n{z-index:80;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.resume-modal__backdrop.svelte-sygo7n{opacity:0;cursor:pointer;background:#0a0a0ab8;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.resume-modal__panel.svelte-sygo7n{z-index:1;background:var(--black);opacity:0;border:1px solid #f1f1ef24;flex-direction:column;gap:.35rem;width:100%;max-width:24rem;padding:clamp(1.75rem,4vw,2.5rem);display:flex;position:relative;box-shadow:0 32px 64px #00000073}.resume-modal__close.svelte-sygo7n{width:28px;height:28px;color:var(--gray);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:color .2s;display:grid;position:absolute;top:clamp(1rem,2vw,1.5rem);right:clamp(1rem,2vw,1.5rem)}.resume-modal__close.svelte-sygo7n:hover{color:var(--fg-dark)}.resume-modal__close.svelte-sygo7n svg:where(.svelte-sygo7n){fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:16px;height:16px}.resume-modal__eyebrow.svelte-sygo7n{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);margin-bottom:.5rem;font-size:.75rem}.resume-modal__name.svelte-sygo7n{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-dark);margin:0;font-size:clamp(1.7rem,4vw,2.1rem);font-weight:400;line-height:1}.resume-modal__role.svelte-sygo7n{font-family:var(--ff-body);color:var(--gray);margin:.3rem 0 0;font-size:.9rem}.resume-modal__meta.svelte-sygo7n{flex-direction:column;margin:clamp(1.25rem,3vw,1.75rem) 0 0;display:flex}.resume-modal__row.svelte-sygo7n{align-items:baseline;gap:1.25rem;padding:.65rem 0;display:flex;position:relative}.resume-modal__rule.svelte-sygo7n{background:#f1f1ef24;height:1px;position:absolute;top:0;left:0;right:0}.resume-modal__row.svelte-sygo7n dt:where(.svelte-sygo7n){width:5rem;font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);flex:none;margin:0;font-size:.68rem}.resume-modal__row.svelte-sygo7n dd:where(.svelte-sygo7n){font-family:var(--ff-body);color:var(--fg-dark);opacity:.9;margin:0;font-size:.88rem}.resume-modal__download.svelte-sygo7n{background:var(--fg-dark);color:var(--black);font-family:var(--ff-mono);letter-spacing:.08em;justify-content:center;align-items:center;gap:.6rem;margin-top:clamp(1.5rem,3.5vw,2rem);padding:.9rem 1.25rem;font-size:.8rem;text-decoration:none;transition:background .25s,transform .25s;display:flex}.resume-modal__download.svelte-sygo7n:hover{background:var(--accent-ph);color:var(--fg-dark);transform:translateY(-1px)}.resume-modal__download.svelte-sygo7n svg:where(.svelte-sygo7n){fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}@media (prefers-reduced-motion:reduce){.resume-modal__download.svelte-sygo7n{transition:none}}.cs-modal.svelte-1mcw6ct{z-index:80;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.cs-modal__backdrop.svelte-1mcw6ct{opacity:0;cursor:pointer;background:#0a0a0ab8;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.cs-modal__panel.svelte-1mcw6ct{z-index:1;background:var(--black);opacity:0;border:1px solid #f1f1ef24;flex-direction:column;gap:.35rem;width:100%;max-width:30rem;height:min(85vh,33rem);padding:clamp(1.75rem,4vw,2.5rem);display:flex;position:relative;overflow:hidden;box-shadow:0 32px 64px #00000073}.cs-modal__close.svelte-1mcw6ct{width:28px;height:28px;color:var(--gray);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:color .2s;display:grid;position:absolute;top:clamp(1rem,2vw,1.5rem);right:clamp(1rem,2vw,1.5rem)}.cs-modal__close.svelte-1mcw6ct:hover{color:var(--fg-dark)}.cs-modal__close.svelte-1mcw6ct svg:where(.svelte-1mcw6ct){fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:16px;height:16px}.cs-modal__top.svelte-1mcw6ct{justify-content:space-between;align-items:center;gap:1rem;padding-right:2rem;display:flex}.cs-modal__eyebrow.svelte-1mcw6ct{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);font-size:.75rem}.cs-modal__lang.svelte-1mcw6ct{border:1px solid #f1f1ef33;display:flex}.cs-modal__lang-btn.svelte-1mcw6ct{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray);cursor:pointer;background:0 0;border:0;padding:.2rem .55rem;font-size:.68rem;transition:background .2s,color .2s}.cs-modal__lang-btn.is-active.svelte-1mcw6ct{background:var(--fg-dark);color:var(--black)}.cs-modal__title.svelte-1mcw6ct{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-dark);margin:.6rem 0 0;font-size:clamp(1.7rem,4vw,2.1rem);font-weight:400;line-height:1}.cs-modal__tabs.svelte-1mcw6ct{border:1px solid #f1f1ef29;margin-top:clamp(.75rem,1.5vw,1rem);padding:3px;display:flex;position:relative}.cs-modal__tab-indicator.svelte-1mcw6ct{background:var(--fg-dark);z-index:0;will-change:transform, width;position:absolute;top:3px;bottom:3px;left:0}.cs-modal__tab.svelte-1mcw6ct{z-index:1;font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);cursor:pointer;background:0 0;border:0;flex:1;padding:.55rem .75rem;font-size:.72rem;transition:color .25s;position:relative}.cs-modal__tab.is-active.svelte-1mcw6ct{color:var(--black)}.cs-modal__body.svelte-1mcw6ct{min-height:0;font-family:var(--ff-body);color:var(--fg-dark);opacity:.85;scrollbar-width:thin;scrollbar-color:#1c1c1a var(--black);flex:auto;margin:clamp(.5rem,1vw,.75rem) 0 0;padding:0 .25rem .25rem 0;font-size:.9rem;line-height:1.6;overflow-y:auto}.cs-modal__body.svelte-1mcw6ct::-webkit-scrollbar-track{background:0 0}.cs-modal__body.svelte-1mcw6ct::-webkit-scrollbar-thumb{border-color:var(--black);background:#1c1c1a}.cs-modal__body.svelte-1mcw6ct::-webkit-scrollbar-thumb:hover{background:var(--gray)}.cs-modal__actions.svelte-1mcw6ct{border-top:1px solid #f1f1ef24;flex-wrap:wrap;align-items:center;gap:clamp(.6rem,1.2vw,.9rem);margin-top:clamp(.75rem,1.5vw,1rem);padding-top:clamp(1rem,2vw,1.25rem);display:flex}.cs-modal__btn.svelte-1mcw6ct{font-family:var(--ff-mono);letter-spacing:.06em;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-size:.75rem;text-decoration:none;transition:transform .3s cubic-bezier(.2,.6,.2,1),background .3s,color .3s,border-color .3s;display:inline-flex}.cs-modal__btn.svelte-1mcw6ct svg:where(.svelte-1mcw6ct){fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.cs-modal__btn--demo.svelte-1mcw6ct{background:var(--fg-dark);color:var(--black)}.cs-modal__btn--demo.svelte-1mcw6ct:hover{background:var(--accent-ph);color:var(--fg-dark)}.cs-modal__btn--npm.svelte-1mcw6ct{color:var(--fg-dark);background:0 0;border:1px solid #f1f1ef4d}.cs-modal__btn--npm.svelte-1mcw6ct .cs-modal__btn-npm:where(.svelte-1mcw6ct){fill:currentColor;stroke:none}.cs-modal__btn--npm.svelte-1mcw6ct:hover{background:var(--accent-ph);color:var(--fg-dark);border-color:var(--accent-ph)}.cs-modal__btn--repo.svelte-1mcw6ct{color:var(--fg-dark);background:0 0;border:1px solid #f1f1ef4d}.cs-modal__btn--repo.svelte-1mcw6ct .cs-modal__btn-gh:where(.svelte-1mcw6ct){fill:currentColor;stroke:none}.cs-modal__btn--repo.svelte-1mcw6ct:hover{border-color:var(--fg-dark)}.cs-modal__btn.svelte-1mcw6ct:hover{transform:translateY(-2px)}.cs-modal__badge.svelte-1mcw6ct{font-family:var(--ff-mono);letter-spacing:.06em;color:var(--gray);border:1px dashed #f1f1ef40;flex:1;justify-content:center;align-items:center;padding:.5rem .75rem;font-size:.68rem;display:flex}@media (width<=640px){.cs-modal__panel.svelte-1mcw6ct{height:min(92vh,36rem)}.cs-modal__actions.svelte-1mcw6ct{flex-direction:column;align-items:stretch}.cs-modal__btn.svelte-1mcw6ct,.cs-modal__badge.svelte-1mcw6ct{flex:none;width:100%}}@media (prefers-reduced-motion:reduce){.cs-modal__btn.svelte-1mcw6ct{transition:none}}.tm-modal.svelte-1souyc8{z-index:80;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.tm-modal__backdrop.svelte-1souyc8{opacity:0;cursor:pointer;background:#0a0a0ab8;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.tm-modal__panel.svelte-1souyc8{z-index:1;background:var(--black);opacity:0;border:1px solid #f1f1ef24;flex-direction:column;gap:.35rem;width:100%;max-width:30rem;height:min(85vh,33rem);padding:clamp(1.75rem,4vw,2.5rem);display:flex;position:relative;overflow:hidden;box-shadow:0 32px 64px #00000073}.tm-modal__close.svelte-1souyc8{width:28px;height:28px;color:var(--gray);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:color .2s;display:grid;position:absolute;top:clamp(1rem,2vw,1.5rem);right:clamp(1rem,2vw,1.5rem)}.tm-modal__close.svelte-1souyc8:hover{color:var(--fg-dark)}.tm-modal__close.svelte-1souyc8 svg:where(.svelte-1souyc8){fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:16px;height:16px}.tm-modal__eyebrow.svelte-1souyc8{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);padding-right:2rem;font-size:.75rem}.tm-modal__title.svelte-1souyc8{font-family:var(--ff-display);letter-spacing:.01em;color:var(--fg-dark);margin:.6rem 0 0;font-size:clamp(1.7rem,4vw,2.1rem);font-weight:400;line-height:1}.tm-modal__body.svelte-1souyc8{scrollbar-width:thin;scrollbar-color:#1c1c1a var(--black);flex:auto;min-height:0;margin:clamp(.5rem,1vw,.75rem) 0 0;padding:0 .25rem .25rem 0;overflow-y:auto}.tm-modal__body.svelte-1souyc8::-webkit-scrollbar-track{background:0 0}.tm-modal__body.svelte-1souyc8::-webkit-scrollbar-thumb{border-color:var(--black);background:#1c1c1a}.tm-modal__body.svelte-1souyc8::-webkit-scrollbar-thumb:hover{background:var(--gray)}.tm-modal__group.svelte-1souyc8{margin-bottom:clamp(1.1rem,2.5vw,1.6rem)}.tm-modal__group.svelte-1souyc8:last-child{margin-bottom:0}.tm-modal__group-label.svelte-1souyc8{font-family:var(--ff-mono);letter-spacing:.08em;color:var(--gray);margin-bottom:.6rem;font-size:.7rem;display:block}.tm-modal__pills.svelte-1souyc8{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tm-modal__pills.svelte-1souyc8 li:where(.svelte-1souyc8){font-family:var(--ff-mono);letter-spacing:.03em;color:var(--fg-dark);white-space:nowrap;border:1px solid #f1f1ef33;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.7rem;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.tm-modal__pills.svelte-1souyc8 li:where(.svelte-1souyc8):hover{background:var(--tech-color,var(--fg-dark));color:var(--black);border-color:#0000}.tech-icon.svelte-1souyc8{width:.85em;height:.85em;color:inherit;flex-shrink:0}.tech-icon.svelte-1souyc8 path:where(.svelte-1souyc8){fill:currentColor}@media (width<=640px){.tm-modal__panel.svelte-1souyc8{height:min(92vh,36rem)}}@media (prefers-reduced-motion:reduce){.tm-modal__pills.svelte-1souyc8 li:where(.svelte-1souyc8){transition:none}}.desktop-only.svelte-1uha8ag{display:block}@media (width<=767px){.desktop-only.svelte-1uha8ag{display:none}}
