.scene[data-astro-cid-lcdefpme]{position:relative}.scene__end[data-astro-cid-lcdefpme]{position:absolute;top:80svh}.hero[data-astro-cid-lcdefpme]{min-height:88svh;padding-block:calc(var(--space-8) + var(--space-5)) var(--space-7);align-items:center;display:grid;position:relative}.hero__inner[data-astro-cid-lcdefpme]{gap:var(--space-5);text-align:center;justify-items:center;display:grid}.hero[data-astro-cid-lcdefpme] h1[data-astro-cid-lcdefpme]{letter-spacing:-.045em;max-width:15ch;font-size:min(clamp(2.6rem,.9rem + 6.4vw,7.25rem),12.5svh);line-height:.95}.hero[data-astro-cid-lcdefpme] .lede[data-astro-cid-lcdefpme]{max-width:46ch;color:var(--color-muted)}.hero__cta[data-astro-cid-lcdefpme]{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.deck[data-astro-cid-lcdefpme]{z-index:1;width:min(100% - 2 * var(--gutter), var(--deck-w,66rem));padding-block:var(--space-4) var(--space-8);margin-inline:auto;position:relative}.deck__cards[data-astro-cid-lcdefpme]{gap:var(--space-4);padding:0 0 var(--space-3);scroll-snap-type:x mandatory;scrollbar-width:thin;grid-auto-columns:min(78%,20rem);grid-auto-flow:column;margin:0;list-style:none;display:grid;overflow-x:auto}.card[data-astro-cid-lcdefpme]{gap:var(--space-2);scroll-snap-align:start;align-content:start;display:grid;position:relative}.card__media[data-astro-cid-lcdefpme]{border-radius:var(--radius-md);place-items:center;display:grid;position:relative}.card__device[data-astro-cid-lcdefpme]{width:100%;transition:translate var(--dur-slow) var(--ease-out);justify-items:center;display:grid}.card__device--desktop[data-astro-cid-lcdefpme]{display:none;container-type:inline-size}.card__device[data-astro-cid-lcdefpme] .device--desktop{box-shadow:inset 0 0 0 1px #ffffff17,0 6px 14px -8px #00000080}.card__device[data-astro-cid-lcdefpme] .device--phone .device__screen{box-shadow:0 0 0 .9cqi #2f3a37,0 0 0 1.3cqi #0d1312,inset 0 0 0 .4cqi #ffffff0d,0 6px 14px -8px #00000080}.card__device--desktop[data-astro-cid-lcdefpme] .device--desktop{border-radius:2.4cqi;width:100%;padding:0 1cqi 1cqi}.card__device--desktop[data-astro-cid-lcdefpme] .device__screen{border-radius:0 0 1.4cqi 1.4cqi}.card__device--desktop[data-astro-cid-lcdefpme] .device__bar{gap:2cqi;height:5.4cqi;padding-inline:1.4cqi}.card__device--desktop[data-astro-cid-lcdefpme] .device__dots{width:1.4cqi;height:1.4cqi;margin-inline-end:4.6cqi;box-shadow:2.3cqi 0 #ffbd2e,4.6cqi 0 #28c941}.card__device--desktop[data-astro-cid-lcdefpme] .device__url{border-radius:1cqi;padding:.3cqi 1.6cqi;font-size:2.3cqi}.card__device--phone[data-astro-cid-lcdefpme] .device--phone{width:72%}.card__device[data-astro-cid-lcdefpme] .email{width:100%}.card__title[data-astro-cid-lcdefpme]{font-size:var(--step-2);letter-spacing:var(--tracking-display);text-wrap:balance;margin-block-start:var(--space-4);line-height:1.05}.card__title[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]{color:inherit;text-decoration:none}.card__title[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]:after{content:"";z-index:1;position:absolute;inset:0}.card__title[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]:focus-visible{outline:none}.card[data-astro-cid-lcdefpme]:has(.card__title a:focus-visible) .card__media[data-astro-cid-lcdefpme]{outline:3px solid var(--color-focus);outline-offset:4px}.card__role[data-astro-cid-lcdefpme]{color:var(--color-muted);line-height:1.4}.card__credit[data-astro-cid-lcdefpme]{color:var(--color-muted);font-size:var(--step--1)}.card__cta[data-astro-cid-lcdefpme]{color:var(--color-accent);margin-block-start:var(--space-2);font-weight:600;display:none}@media (hover:none){.card__cta[data-astro-cid-lcdefpme]{display:block}}@media (hover:hover){.card[data-astro-cid-lcdefpme]:has(.card__title a:hover) .card__device[data-astro-cid-lcdefpme]{translate:0 -3%}}@media (width>=48rem){.card__device--desktop[data-astro-cid-lcdefpme]{display:grid}.card__device--phone[data-astro-cid-lcdefpme]{display:none}.deck__cards[data-astro-cid-lcdefpme]{gap:var(--deck-gap,var(--space-5));grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-columns:auto;grid-auto-flow:row;overflow:visible}}@supports (animation-timeline:view()){@media (width>=48rem) and (height>=34rem) and (prefers-reduced-motion:no-preference){.scene[data-astro-cid-lcdefpme]{--deck-w:min(100vw - 2 * var(--gutter), 66rem);--deck-gap:var(--space-5);--step:calc((var(--deck-w) - 2 * var(--deck-gap)) / 3 + var(--deck-gap));--media-h:calc((var(--deck-w) - 2 * var(--deck-gap)) / 3 * .677);--big:1.55;--behind:1.42;view-timeline:--scene block;height:420svh;margin-block-end:calc(-1*max(3rem,50svh - 16rem))}.scene__end[data-astro-cid-lcdefpme]{top:calc(100% - 100svh)}@media (height<=44rem){.scene[data-astro-cid-lcdefpme]{--big:1.15;--behind:1.07}}.stage[data-astro-cid-lcdefpme]{height:100svh;display:grid;position:sticky;top:0;overflow:clip}.hero[data-astro-cid-lcdefpme],.deck[data-astro-cid-lcdefpme]{grid-area:1/1;align-self:center}.hero[data-astro-cid-lcdefpme]{min-height:0;padding-block:var(--space-8) 24svh}.hero__inner[data-astro-cid-lcdefpme]{animation-name:hero-recede;animation-timing-function:linear;animation-fill-mode:both}.scene[data-astro-cid-lcdefpme] .hero__inner[data-astro-cid-lcdefpme]{animation-timeline:--scene;animation-range:contain contain 20%}.stage[data-astro-cid-lcdefpme]:before{animation-name:glow-out;animation-timing-function:linear;animation-fill-mode:both}.scene[data-astro-cid-lcdefpme] .stage[data-astro-cid-lcdefpme]:before{animation-timeline:--scene;animation-range:contain contain 20%}.deck[data-astro-cid-lcdefpme]{padding:0}.deck[data-astro-cid-lcdefpme],.deck__cards[data-astro-cid-lcdefpme]{pointer-events:none}.card[data-astro-cid-lcdefpme]{pointer-events:auto;z-index:1;clip-path:inset(-3rem);transform-origin:50%;animation-timing-function:linear;animation-fill-mode:both}.scene[data-astro-cid-lcdefpme] .card[data-astro-cid-lcdefpme]{animation-timeline:--scene;animation-range:contain}.card[data-astro-cid-lcdefpme]:first-child{animation-name:deal-1}.card[data-astro-cid-lcdefpme]:nth-child(2){animation-name:deal-2}.card[data-astro-cid-lcdefpme]:nth-child(3){animation-name:deal-3}}}@keyframes glow-out{to{opacity:0}}@keyframes hero-recede{to{opacity:0;visibility:hidden;transform:translateY(-6svh)scale(.94)}}@keyframes deal-1{0%,8%{transform:translate(calc(-.45 * var(--o) * var(--step)), calc(41svh + 2rem)) scale(.5);z-index:1;clip-path:inset(-3rem)}12%,94%{z-index:5}22%,34%{transform:translate(calc(-1 * var(--o) * var(--step)), 0) scale(var(--big));filter:none;clip-path:inset(-3rem)}46%,84%{transform:translate(calc(-1 * var(--o) * var(--step)), -7svh) scale(var(--behind));filter:brightness(.45);clip-path:inset(-3rem -3rem calc(100% - var(--media-h)) -3rem)}96%,to{filter:none;clip-path:inset(-3rem);transform:none}}@keyframes deal-2{0%,8%{transform:translate(calc(-.45 * var(--o) * var(--step)), calc(41svh + 2rem)) scale(.5);z-index:1;clip-path:inset(-3rem)}16%,34%{transform:translate(calc(-.45 * var(--o) * var(--step)), 75svh) scale(.5);z-index:1;clip-path:inset(-3rem)}36%,94%{z-index:6}46%,56%{transform:translate(calc(-1 * var(--o) * var(--step)), 0) scale(var(--big));filter:none;clip-path:inset(-3rem)}68%,84%{transform:translate(calc(-1 * var(--o) * var(--step)), -7svh) scale(var(--behind));filter:brightness(.45);clip-path:inset(-3rem -3rem calc(100% - var(--media-h)) -3rem)}96%,to{filter:none;clip-path:inset(-3rem);transform:none}}@keyframes deal-3{0%,8%{transform:translate(calc(-.45 * var(--o) * var(--step)), calc(41svh + 2rem)) scale(.5);z-index:1;clip-path:inset(-3rem)}16%,56%{transform:translate(calc(-.45 * var(--o) * var(--step)), 75svh) scale(.5);z-index:1;clip-path:inset(-3rem)}58%,94%{z-index:7}68%,84%{transform:translate(calc(-1 * var(--o) * var(--step)), 0) scale(var(--big));clip-path:inset(-3rem)}96%,to{clip-path:inset(-3rem);transform:none}}.skills[data-astro-cid-lcdefpme]{gap:var(--space-6);min-height:85svh;padding-block:var(--space-9) var(--space-8);align-content:center;display:grid}.skills[data-astro-cid-lcdefpme] h2[data-astro-cid-lcdefpme]{letter-spacing:-.045em;font-size:clamp(2.6rem,1rem + 6vw,6.5rem);line-height:.95}.skills__list[data-astro-cid-lcdefpme]{gap:0 var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));padding:0;list-style:none;display:grid}.skills__list[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme]{padding-block:var(--space-4);font-family:var(--font-display-stack);font-size:var(--step-1);letter-spacing:-.01em;font-weight:500}.skills__list[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme]:before{content:"";height:1px;background:var(--color-line);transform-origin:0;margin-block-end:var(--space-4);display:block}.teaser__inner[data-astro-cid-lcdefpme]{gap:var(--space-5);min-height:90svh;padding-block:var(--space-8);align-content:center;display:grid}.teaser__text[data-astro-cid-lcdefpme]{max-width:24ch;font-family:var(--font-display-stack);letter-spacing:-.04em;text-wrap:balance;font-size:clamp(2rem,1.1rem + 3.4vw,4.25rem);font-weight:600;line-height:1}.teaser__link[data-astro-cid-lcdefpme]{font-weight:700}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.skills[data-astro-cid-lcdefpme] h2[data-astro-cid-lcdefpme],.skills__list[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme],.teaser__text[data-astro-cid-lcdefpme],.teaser__link[data-astro-cid-lcdefpme]{animation-name:rise;animation-timing-function:cubic-bezier(.2,.8,.2,1);animation-fill-mode:both}.skills__list[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme]:before{animation-name:draw;animation-timing-function:cubic-bezier(.2,.8,.2,1);animation-fill-mode:both}section[data-astro-cid-lcdefpme].skills h2[data-astro-cid-lcdefpme],section[data-astro-cid-lcdefpme].teaser .teaser__text[data-astro-cid-lcdefpme]{animation-timeline:view();animation-range:entry 15% cover 40%}section[data-astro-cid-lcdefpme].teaser .teaser__link[data-astro-cid-lcdefpme]{animation-timeline:view();animation-range:entry 40% cover 45%}section[data-astro-cid-lcdefpme].skills .skills__list[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme],section[data-astro-cid-lcdefpme].skills .skills__list[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme]:before{animation-timeline:view();animation-range:entry calc(10% + var(--n) * 8%) cover calc(30% + var(--n) * 6%)}}}
