.sky[data-astro-cid-el3ewxpd]{pointer-events:none;background:linear-gradient(180deg, #05080f 0%, var(--midnight) 40%, #0a1230 100%);position:absolute;inset:0;overflow:hidden}.sky__top[data-astro-cid-el3ewxpd]{background:radial-gradient(70% 45% at 50% -5%,#1a327873 0%,#0000 70%);position:absolute;inset:0}.sky__stars[data-astro-cid-el3ewxpd]{opacity:0;width:100%;height:100%;transition:opacity 1.6s var(--ease-out);position:absolute;inset:0}.sky[data-astro-cid-el3ewxpd].is-live .sky__stars[data-astro-cid-el3ewxpd]{opacity:1}.sky__horizon[data-astro-cid-el3ewxpd]{filter:blur(20px);background:radial-gradient(closest-side,#3e63dd8c 0%,#1a327873 40%,#0d163533 70%,#0000 100%);border-radius:50%;width:150%;height:80%;animation:12s ease-in-out infinite alternate horizon;position:absolute;bottom:-42%;left:50%;transform:translate(-50%)}.sky__haze[data-astro-cid-el3ewxpd]{filter:blur(10px);background:radial-gradient(50% 100% at 50% 100%,#8fa6ff2e,#0000 80%);width:70%;height:22%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes horizon{0%{opacity:.82}to{opacity:1}}@media (prefers-reduced-motion:reduce){.sky__horizon[data-astro-cid-el3ewxpd]{animation:none}}.hero[data-astro-cid-ge2uvauf]{min-height:100svh;padding-top:var(--nav-h);background:var(--midnight);isolation:isolate;flex-direction:column;display:flex;position:relative;overflow:hidden}.hero__content[data-astro-cid-ge2uvauf]{z-index:1;text-align:center;flex-direction:column;align-items:center;margin-block:auto;padding-top:clamp(72px,14vh,170px);padding-bottom:clamp(72px,12vh,150px);display:flex;position:relative}.hero__title[data-astro-cid-ge2uvauf]{letter-spacing:-.055em;flex-wrap:wrap;justify-content:center;column-gap:.24em;font-size:clamp(3.4rem,10.2vw,8.75rem);font-weight:700;line-height:.95;display:flex}.hero__line[data-astro-cid-ge2uvauf]{margin-bottom:-.06em;padding:.04em .02em .1em;display:block;overflow:hidden}.hero__line[data-astro-cid-ge2uvauf]>span[data-astro-cid-ge2uvauf]{display:block}.yo[data-astro-cid-ge2uvauf]{color:var(--accent)}.hero__role[data-astro-cid-ge2uvauf]{letter-spacing:-.025em;margin-top:clamp(18px,2vw,28px);font-size:clamp(1.375rem,2.2vw,2rem);font-weight:550;line-height:1.2}.hero__lead[data-astro-cid-ge2uvauf]{max-width:40ch;color:var(--ink-2);text-wrap:balance;margin-top:.75rem;font-size:clamp(1.0625rem,.6vw + .9rem,1.25rem);line-height:1.55}.hero__cta[data-astro-cid-ge2uvauf]{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(28px,3.2vw,40px);display:flex}.hero__links[data-astro-cid-ge2uvauf]{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:14px;display:flex}.icon-btn[data-astro-cid-ge2uvauf]{width:2.75rem;height:2.75rem;color:var(--ink);transition:background-color .3s var(--ease-out), border-color .3s var(--ease-out), transform .3s var(--ease-out);background:#0c122859;border:1px solid #fffdff47;border-radius:999px;place-items:center;display:grid}.icon-btn[data-astro-cid-ge2uvauf] svg[data-astro-cid-ge2uvauf]{fill:currentColor;width:1.15rem;height:1.15rem}.icon-btn[data-astro-cid-ge2uvauf]:hover{background:#fffdff1a;border-color:#fffdff99;transform:translateY(-2px)}.js-motion .hero__line[data-astro-cid-ge2uvauf]>span[data-astro-cid-ge2uvauf]{animation:hero-rise 1.2s var(--ease-out) var(--intro,0s) both}.js-motion .hero__line[data-astro-cid-ge2uvauf]:nth-child(2)>span[data-astro-cid-ge2uvauf]{animation-delay:calc(var(--intro,0s) + .11s)}.js-motion .yo[data-astro-cid-ge2uvauf]{animation:yo-in 1.1s var(--ease-out) calc(var(--intro,0s) + .9s) both}@keyframes yo-in{0%{color:var(--ink)}}.js-motion .hero__role[data-astro-cid-ge2uvauf],.js-motion .hero__lead[data-astro-cid-ge2uvauf],.js-motion .hero__cta[data-astro-cid-ge2uvauf],.js-motion .hero__links[data-astro-cid-ge2uvauf],.js-motion .hero__facts[data-astro-cid-ge2uvauf]{animation:hero-fade 1s var(--ease-out) both}.js-motion .hero__role[data-astro-cid-ge2uvauf]{animation-delay:calc(var(--intro,0s) + .38s)}.js-motion .hero__lead[data-astro-cid-ge2uvauf]{animation-delay:calc(var(--intro,0s) + .47s)}.js-motion .hero__cta[data-astro-cid-ge2uvauf]{animation-delay:calc(var(--intro,0s) + .56s)}.js-motion .hero__links[data-astro-cid-ge2uvauf]{animation-delay:calc(var(--intro,0s) + .65s)}.js-motion .hero__facts[data-astro-cid-ge2uvauf]{animation-delay:calc(var(--intro,0s) + .8s)}@keyframes hero-rise{0%{transform:translateY(110%)}}@keyframes hero-fade{0%{opacity:0;transform:translateY(14px)}}.hero__facts[data-astro-cid-ge2uvauf]{z-index:1;background:linear-gradient(#0000 0%,#070b1799 100%);position:relative}.facts[data-astro-cid-ge2uvauf]{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.facts__cell[data-astro-cid-ge2uvauf]{padding:1.4rem 0 1.6rem}.facts__cell[data-astro-cid-ge2uvauf]+.facts__cell[data-astro-cid-ge2uvauf]{border-left:1px solid var(--line);padding-left:clamp(16px,2.4vw,36px)}.facts[data-astro-cid-ge2uvauf] dt[data-astro-cid-ge2uvauf]{color:var(--ink-3);font-size:.8125rem;font-weight:500}.facts[data-astro-cid-ge2uvauf] dd[data-astro-cid-ge2uvauf]{letter-spacing:-.01em;margin-top:.3rem;font-size:clamp(1rem,.4vw + .9rem,1.1875rem);font-weight:600;line-height:1.3}@media (width<=640px){.facts[data-astro-cid-ge2uvauf]{grid-template-columns:1fr}.facts__cell[data-astro-cid-ge2uvauf]{justify-content:space-between;align-items:baseline;gap:1rem;padding:.95rem 0;display:flex}.facts__cell[data-astro-cid-ge2uvauf]+.facts__cell[data-astro-cid-ge2uvauf]{border-left:0;border-top:1px solid var(--line);padding-left:0}.facts[data-astro-cid-ge2uvauf] dt[data-astro-cid-ge2uvauf]{flex:none}.facts[data-astro-cid-ge2uvauf] dd[data-astro-cid-ge2uvauf]{text-align:right;margin-top:0;font-size:1rem}}@media (width<=480px){.hero__cta[data-astro-cid-ge2uvauf]{flex-direction:column-reverse;width:100%}.hero__cta[data-astro-cid-ge2uvauf] .btn[data-astro-cid-ge2uvauf]{width:100%}}.stack[data-astro-cid-ox4betna]{background:var(--midnight);border-bottom:1px solid var(--line)}.stack__inner[data-astro-cid-ox4betna]{padding-block:clamp(36px,4.5vw,64px)}.stack__stage[data-astro-cid-ox4betna]{width:100%;display:none;position:relative}.stack__stage[data-astro-cid-ox4betna] canvas{width:100%;height:100%;display:block}.stack__stage[data-astro-cid-ox4betna] .stack__tip{background:var(--ink);color:var(--navy);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s var(--ease-out);border-radius:999px;padding:.3rem .75rem;font-size:.8125rem;font-weight:600;position:absolute;top:0;left:0}.stack__stage[data-astro-cid-ox4betna] .stack__tip.is-on{opacity:1}.stack[data-astro-cid-ox4betna].is-3d .stack__stage[data-astro-cid-ox4betna]{display:block}.stack[data-astro-cid-ox4betna].is-3d .stack__list[data-astro-cid-ox4betna]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.stack__list[data-astro-cid-ox4betna]{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;max-width:62rem;margin-inline:auto;display:flex}.stack__item[data-astro-cid-ox4betna]{--rx:0deg;--ry:0deg;border:1px solid var(--line);letter-spacing:-.01em;color:var(--ink-2);transform:perspective(700px) rotateX(var(--rx)) rotateY(var(--ry));transition:color .3s var(--ease-out), border-color .3s var(--ease-out), background-color .3s var(--ease-out), transform .3s var(--ease-out);will-change:transform;background:linear-gradient(#1a327829,#0d163566);border-radius:16px;align-items:center;gap:.65rem;padding:.7rem 1.1rem;font-size:.9375rem;font-weight:600;display:flex}.stack__item[data-astro-cid-ox4betna] .tech-icon{color:var(--ink);opacity:.85;transition:opacity .3s var(--ease-out);flex:none}.stack__item[data-astro-cid-ox4betna]:hover{color:var(--ink);border-color:var(--line-strong)}.stack__item[data-astro-cid-ox4betna]:hover .tech-icon{opacity:1}.js-motion .stack__item[data-astro-cid-ox4betna][data-reveal]:not(.is-in){transform:translateY(28px)}.about[data-astro-cid-oxgmilyn]{background:var(--midnight)}.about__grid[data-astro-cid-oxgmilyn]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:clamp(48px,7vw,112px);display:grid}.about__title[data-astro-cid-oxgmilyn]{margin-bottom:clamp(24px,3vw,40px)}.about__statement[data-astro-cid-oxgmilyn]{letter-spacing:-.035em;text-wrap:balance;max-width:21ch;font-size:clamp(1.75rem,3.2vw,2.75rem);font-weight:600;line-height:1.2}.about__body[data-astro-cid-oxgmilyn]{max-width:54ch;margin-top:clamp(24px,2.6vw,36px)}.about__body[data-astro-cid-oxgmilyn] p[data-astro-cid-oxgmilyn]{color:var(--ink-2);text-wrap:pretty;font-size:clamp(1.0625rem,.4vw + .95rem,1.1875rem);line-height:1.7}.about__body[data-astro-cid-oxgmilyn] p[data-astro-cid-oxgmilyn]+p[data-astro-cid-oxgmilyn]{margin-top:1rem}.portrait[data-astro-cid-oxgmilyn]{justify-self:center;width:min(100%,420px);margin:0;position:relative}.portrait__frame[data-astro-cid-oxgmilyn]{aspect-ratio:4/5;background:radial-gradient(80% 60% at 50% 100%, #3e63dd80, transparent 70%), linear-gradient(180deg, var(--dark-blue), var(--midnight));border:1px solid var(--line-strong);border-radius:28px;place-items:end center;display:grid;position:relative;overflow:hidden;box-shadow:0 50px 90px -40px #000000d9}.portrait__img[data-astro-cid-oxgmilyn]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.portrait__placeholder[data-astro-cid-oxgmilyn]{width:70%;height:auto;fill:var(--muted);opacity:.6}.portrait__pending[data-astro-cid-oxgmilyn]{border:1px dashed var(--line-strong);color:var(--ink-2);white-space:nowrap;background:#070b1799;border-radius:999px;padding:.45rem .9rem;font-size:.8125rem;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.chip[data-astro-cid-oxgmilyn]{border:1px solid var(--line-strong);white-space:nowrap;background:#0c1228f0;border-radius:16px;align-items:center;gap:.6rem;padding:.7rem 1rem;font-size:.9375rem;font-weight:600;line-height:1.25;display:inline-flex;position:absolute;box-shadow:0 24px 44px -22px #000000d9}.chip[data-astro-cid-oxgmilyn] small[data-astro-cid-oxgmilyn]{color:var(--ink-3);font-size:.75rem;font-weight:400;display:block}.chip--place[data-astro-cid-oxgmilyn]{bottom:36px;left:-28px}.chip--years[data-astro-cid-oxgmilyn]{top:34px;right:-24px}.chip--apps[data-astro-cid-oxgmilyn]{transition:border-color .3s var(--ease-out), background-color .3s var(--ease-out);text-decoration:none;bottom:116px;right:-24px}.chip--apps[data-astro-cid-oxgmilyn]:hover{border-color:var(--accent);background:#1a3278e6}.chip__num[data-astro-cid-oxgmilyn]{letter-spacing:-.03em;color:var(--accent);margin-right:.2rem;font-size:1.375rem;font-weight:700}.chip__dot[data-astro-cid-oxgmilyn]{background:#8fa6ff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 10px #8fa6ff}.js-motion .chip[data-astro-cid-oxgmilyn]{animation:6s ease-in-out infinite alternate chip-float}.js-motion .chip--years[data-astro-cid-oxgmilyn]{animation-delay:-3s}.js-motion .chip--apps[data-astro-cid-oxgmilyn]{animation-delay:-1.5s}@keyframes chip-float{to{transform:translateY(-6px)}}.pillars[data-astro-cid-oxgmilyn]{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,2.5vw,40px);margin-top:clamp(72px,9vw,120px);display:grid}.pillar[data-astro-cid-oxgmilyn]{border-top:1px solid var(--line-strong);padding-top:1.3rem}.pillar[data-astro-cid-oxgmilyn] h3[data-astro-cid-oxgmilyn]{letter-spacing:-.02em;font-size:1.1875rem;font-weight:600}.pillar[data-astro-cid-oxgmilyn] p[data-astro-cid-oxgmilyn]{color:var(--ink-2);margin-top:.45rem;line-height:1.55}@media (width<=960px){.about__grid[data-astro-cid-oxgmilyn]{grid-template-columns:1fr}.pillars[data-astro-cid-oxgmilyn]{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2rem}}@media (width<=560px){.portrait[data-astro-cid-oxgmilyn]{width:calc(100% - 24px)}.chip--place[data-astro-cid-oxgmilyn]{left:-12px}.chip--years[data-astro-cid-oxgmilyn],.chip--apps[data-astro-cid-oxgmilyn]{right:-12px}}@media (width<=520px){.pillars[data-astro-cid-oxgmilyn]{grid-template-columns:1fr}}.pv[data-astro-cid-utabsd57]{width:100%;height:100%;font-family:var(--font);color:var(--ink);place-items:center;display:grid;position:relative}.win[data-astro-cid-utabsd57]{text-align:left;background:#0a1130;border:1px solid #a3aed62e;border-radius:14px;width:min(100%,560px);overflow:hidden;box-shadow:0 40px 80px -30px #000000bf,0 0 0 1px #0003}.win__bar[data-astro-cid-utabsd57]{background:#0c1438;border-bottom:1px solid #a3aed61f;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.win__url[data-astro-cid-utabsd57],.win__tab[data-astro-cid-utabsd57]{color:var(--ink-2);background:#ffffff0f;border-radius:999px;padding:3px 10px;font-size:10px}.win__status[data-astro-cid-utabsd57]{color:#c9d3ff;background:#3e63dd40;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:600}.dash[data-astro-cid-utabsd57]{grid-template-columns:44px 1fr;min-height:250px;display:grid}.dash__side[data-astro-cid-utabsd57]{border-right:1px solid #a3aed61a;flex-direction:column;align-items:center;gap:10px;padding-top:14px;display:flex}.dash__logo[data-astro-cid-utabsd57]{background:linear-gradient(145deg, #3e63dd, var(--royal));border-radius:6px;width:20px;height:20px;margin-bottom:8px}.dash__nav[data-astro-cid-utabsd57]{background:#a3aed640;border-radius:4px;width:18px;height:4px}.dash__nav[data-astro-cid-utabsd57].is-on{background:var(--ink)}.dash__main[data-astro-cid-utabsd57]{gap:12px;padding:14px;display:grid}.dash__kpis[data-astro-cid-utabsd57]{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.dash__kpis[data-astro-cid-utabsd57] div[data-astro-cid-utabsd57]{background:#ffffff0a;border:1px solid #a3aed61a;border-radius:10px;gap:2px;padding:9px 10px;display:grid}.dash__kpis[data-astro-cid-utabsd57] small[data-astro-cid-utabsd57]{color:var(--ink-3);font-size:9px}.dash__kpis[data-astro-cid-utabsd57] b[data-astro-cid-utabsd57]{letter-spacing:-.02em;font-size:16px;font-weight:700}.dash__kpis[data-astro-cid-utabsd57] em[data-astro-cid-utabsd57]{color:#9fe3c0;font-size:9px;font-style:normal}.dash__chart[data-astro-cid-utabsd57]{width:100%;height:78px}.dash__rows[data-astro-cid-utabsd57]{gap:6px;display:grid}.dash__rows[data-astro-cid-utabsd57] li[data-astro-cid-utabsd57]{color:var(--ink-2);border-bottom:1px solid #a3aed614;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding-bottom:6px;font-size:10px;display:grid}.dash__rows[data-astro-cid-utabsd57] i[data-astro-cid-utabsd57]{color:#ffe39a;background:#ffd76a24;border-radius:999px;padding:2px 7px;font-size:9px;font-style:normal}.dash__rows[data-astro-cid-utabsd57] i[data-astro-cid-utabsd57].ok{color:#9fe3c0;background:#9fe3c01f}.phone[data-astro-cid-utabsd57]{aspect-ratio:9/18.5;background:#050817;border:1px solid #a3aed638;border-radius:34px;width:196px;padding:7px;box-shadow:0 40px 80px -30px #000c}.phone__screen[data-astro-cid-utabsd57]{background:#0b1335;border-radius:27px;height:100%;position:relative;overflow:hidden}.phone__map[data-astro-cid-utabsd57]{width:100%;height:100%;position:absolute;inset:0}.phone__sheet[data-astro-cid-utabsd57]{background:var(--ink);color:var(--navy);border-radius:18px;gap:9px;padding:11px;display:grid;position:absolute;bottom:8px;left:8px;right:8px}.phone__row[data-astro-cid-utabsd57]{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.phone__row[data-astro-cid-utabsd57] b[data-astro-cid-utabsd57]{font-size:10px;line-height:1.2;display:block}.phone__row[data-astro-cid-utabsd57] small[data-astro-cid-utabsd57]{color:#4a5684;font-size:8.5px;display:block}.phone__row[data-astro-cid-utabsd57] strong[data-astro-cid-utabsd57]{letter-spacing:-.02em;font-size:13px}.phone__avatar[data-astro-cid-utabsd57]{background:var(--royal);width:26px;height:26px;color:var(--ink);border-radius:50%;place-items:center;font-size:9px;font-weight:700;display:grid}.phone__progress[data-astro-cid-utabsd57]{background:#dfe4f7;border-radius:4px;height:4px;overflow:hidden}.phone__progress[data-astro-cid-utabsd57] span[data-astro-cid-utabsd57]{background:var(--royal);border-radius:4px;width:68%;height:100%;display:block}.win--chat[data-astro-cid-utabsd57]{width:min(100%,520px)}.chat[data-astro-cid-utabsd57]{grid-template-rows:auto auto;grid-template-columns:1fr 120px;gap:12px;min-height:230px;padding:16px;display:grid}.chat__q[data-astro-cid-utabsd57]{background:var(--royal);border-radius:14px 14px 4px;grid-column:1;justify-self:end;max-width:90%;padding:9px 12px;font-size:11px;line-height:1.4}.chat__a[data-astro-cid-utabsd57]{color:var(--ink);background:#ffffff0f;border:1px solid #a3aed624;border-radius:14px 14px 14px 4px;grid-column:1;padding:11px 12px;font-size:11px;line-height:1.5}.chat__src[data-astro-cid-utabsd57]{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.chat__src[data-astro-cid-utabsd57] span[data-astro-cid-utabsd57]{color:#c9d3ff;border:1px solid #c9d3ff66;border-radius:999px;padding:2px 8px;font-size:9px}.chat__doc[data-astro-cid-utabsd57]{background:var(--ink);border-radius:10px;grid-area:1/2/span 2;align-content:start;gap:7px;padding:12px 10px;display:grid}.chat__doc[data-astro-cid-utabsd57] span[data-astro-cid-utabsd57]{background:#cfd5ea;border-radius:3px;height:5px}.chat__doc[data-astro-cid-utabsd57] span[data-astro-cid-utabsd57].short{width:60%}.chat__doc[data-astro-cid-utabsd57] span[data-astro-cid-utabsd57].is-hl{background:#8fa6ff}.code[data-astro-cid-utabsd57]{color:var(--ink-2);white-space:pre;margin:0;padding:16px 18px 18px;font-family:ui-monospace,Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.7;overflow:hidden}.code[data-astro-cid-utabsd57] .c-m{color:#9fe3c0;font-weight:700}.code[data-astro-cid-utabsd57] .c-p{color:var(--ink)}.code[data-astro-cid-utabsd57] .c-k{color:#8fa6ff}.code[data-astro-cid-utabsd57] .c-s{color:#ffe39a}.code[data-astro-cid-utabsd57] .c-n{color:#f6b3c8}.code[data-astro-cid-utabsd57] .c-c{color:#6f7db3}@media (width<=560px){.chat[data-astro-cid-utabsd57]{grid-template-columns:1fr}.chat__doc[data-astro-cid-utabsd57]{display:none}.dash[data-astro-cid-utabsd57]{grid-template-columns:1fr}.dash__side[data-astro-cid-utabsd57]{display:none}}.projects[data-astro-cid-ftq3vvlr]{background:linear-gradient(180deg, var(--midnight) 0%, var(--navy) 30%, var(--navy) 100%)}.projects__grid[data-astro-cid-ftq3vvlr]{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);display:grid}.project[data-astro-cid-ftq3vvlr]{transition:border-color .4s var(--ease-out), transform .6s var(--ease-out);display:grid;overflow:hidden}.project[data-astro-cid-ftq3vvlr]:hover{border-color:var(--line-strong)}.project[data-astro-cid-ftq3vvlr].wide{grid-column:1/-1;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.project[data-astro-cid-ftq3vvlr].flip .project__stage[data-astro-cid-ftq3vvlr]{order:2}.project[data-astro-cid-ftq3vvlr].half{grid-template-rows:auto 1fr}.project__stage[data-astro-cid-ftq3vvlr]{border-bottom:1px solid var(--line);background:radial-gradient(70% 70% at 50% 100%,#3e63dd59 0%,#0000 70%),radial-gradient(60% 50% at 50% 0,#1a327880 0%,#0000 80%),linear-gradient(#0a1233 0%,#0c1740 100%);min-height:clamp(280px,30vw,420px);padding:clamp(24px,3.5vw,52px);display:grid;position:relative}.project[data-astro-cid-ftq3vvlr].wide .project__stage[data-astro-cid-ftq3vvlr]{border-bottom:0;border-right:1px solid var(--line)}.project[data-astro-cid-ftq3vvlr].wide.flip .project__stage[data-astro-cid-ftq3vvlr]{border-right:0;border-left:1px solid var(--line)}.project__visual[data-astro-cid-ftq3vvlr]{transition:transform .8s var(--ease-out);place-items:center;display:grid}.project[data-astro-cid-ftq3vvlr]:hover .project__visual[data-astro-cid-ftq3vvlr]{transform:translateY(-8px)scale(1.015)}.project__body[data-astro-cid-ftq3vvlr]{flex-direction:column;gap:1rem;padding:clamp(24px,3vw,44px);display:flex}.project[data-astro-cid-ftq3vvlr].wide .project__body[data-astro-cid-ftq3vvlr]{justify-content:center}.project__top[data-astro-cid-ftq3vvlr]{flex-wrap:wrap;align-items:center;gap:.6rem .9rem;display:flex}.project__title[data-astro-cid-ftq3vvlr]{letter-spacing:-.04em;font-size:clamp(1.75rem,2.6vw,2.5rem);font-weight:700;line-height:1.05}.project__type[data-astro-cid-ftq3vvlr]{color:var(--ink-3);margin-top:-.5rem;font-size:.9375rem}.project__summary[data-astro-cid-ftq3vvlr]{color:var(--ink-2);text-wrap:pretty;max-width:48ch;font-size:1.0625rem;line-height:1.6}.project__facts[data-astro-cid-ftq3vvlr]{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:.75rem;padding:1rem 0;display:grid}.project__facts[data-astro-cid-ftq3vvlr] div[data-astro-cid-ftq3vvlr]{grid-template-columns:7rem minmax(0,1fr);gap:1rem;display:grid}.project__facts[data-astro-cid-ftq3vvlr] dt[data-astro-cid-ftq3vvlr]{color:var(--ink-3);font-size:.875rem}.project__facts[data-astro-cid-ftq3vvlr] dd[data-astro-cid-ftq3vvlr]{color:var(--ink-2);font-size:.9375rem;line-height:1.5}.project__facts[data-astro-cid-ftq3vvlr] .project__result[data-astro-cid-ftq3vvlr]{color:var(--ink);font-weight:600}.project__actions[data-astro-cid-ftq3vvlr]{flex-wrap:wrap;gap:10px;margin-top:.25rem;display:flex}.project__link[data-astro-cid-ftq3vvlr]{align-self:flex-start;margin-top:.25rem}.project__poster[data-astro-cid-ftq3vvlr]{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--line-strong);border-radius:14px;width:100%;max-width:560px;box-shadow:0 40px 80px -30px #000000bf}.project__stage[data-astro-cid-ftq3vvlr][data-demo]{cursor:pointer}.project__video[data-astro-cid-ftq3vvlr]{object-fit:cover;border:1px solid var(--line-strong);opacity:0;width:calc(100% - 2*clamp(24px,3.5vw,52px));max-width:560px;height:calc(100% - 2*clamp(24px,3.5vw,52px));transition:opacity .4s var(--ease-out);background:#0a1130;border-radius:14px;margin:auto;position:absolute;inset:clamp(24px,3.5vw,52px)}.project__stage[data-astro-cid-ftq3vvlr].is-playing .project__video[data-astro-cid-ftq3vvlr]{opacity:1}.project__demo[data-astro-cid-ftq3vvlr]{border:1px solid var(--line-strong);color:var(--ink);white-space:nowrap;transition:opacity .3s var(--ease-out);background:#070b17cc;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .8rem;font-size:.8125rem;display:inline-flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.project__demo[data-astro-cid-ftq3vvlr]:before{content:"";background:var(--ink);clip-path:polygon(0 0,100% 50%,0 100%);width:8px;height:10px}.project__stage[data-astro-cid-ftq3vvlr].is-playing .project__demo[data-astro-cid-ftq3vvlr]{opacity:0}@media (width<=960px){.projects__grid[data-astro-cid-ftq3vvlr],.project[data-astro-cid-ftq3vvlr].wide{grid-template-columns:1fr}.project[data-astro-cid-ftq3vvlr].flip .project__stage[data-astro-cid-ftq3vvlr]{order:0}.project[data-astro-cid-ftq3vvlr].wide .project__stage[data-astro-cid-ftq3vvlr],.project[data-astro-cid-ftq3vvlr].wide.flip .project__stage[data-astro-cid-ftq3vvlr]{border-left:0;border-right:0;border-bottom:1px solid var(--line)}}@media (width<=520px){.project__facts[data-astro-cid-ftq3vvlr] div[data-astro-cid-ftq3vvlr]{grid-template-columns:1fr;gap:.2rem}}.process[data-astro-cid-grsovck6]{background:var(--midnight);border-top:1px solid var(--line);padding-block:clamp(72px,8vw,120px)}.process[data-astro-cid-grsovck6] .head[data-astro-cid-grsovck6]{margin-bottom:clamp(32px,4vw,56px)}.steps[data-astro-cid-grsovck6]{grid-template-columns:repeat(5,minmax(0,1fr));gap:0 clamp(16px,2vw,32px);display:grid;position:relative}.steps[data-astro-cid-grsovck6]:before{content:"";background:linear-gradient(90deg, var(--accent), var(--line-strong) 40%, var(--line));height:1px;position:absolute;top:17px;left:0;right:0}.step[data-astro-cid-grsovck6]{position:relative}.step__n[data-astro-cid-grsovck6]{z-index:1;background:var(--midnight);border:1px solid var(--accent);width:35px;height:35px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:.875rem;font-weight:700;display:grid;position:relative}.step[data-astro-cid-grsovck6] h3[data-astro-cid-grsovck6]{letter-spacing:-.02em;margin-top:1.1rem;font-size:1.0625rem;font-weight:600}.step[data-astro-cid-grsovck6] p[data-astro-cid-grsovck6]{color:var(--ink-2);text-wrap:pretty;margin-top:.4rem;font-size:.9375rem;line-height:1.55}@media (width<=960px){.steps[data-astro-cid-grsovck6]{grid-template-columns:1fr;gap:1.5rem}.steps[data-astro-cid-grsovck6]:before{background:linear-gradient(180deg, var(--accent), var(--line));width:1px;height:auto;inset:0 auto 0 17px}.step[data-astro-cid-grsovck6]{grid-template-columns:35px minmax(0,1fr);column-gap:1rem;display:grid}.step[data-astro-cid-grsovck6] h3[data-astro-cid-grsovck6]{margin-top:.35rem}.step[data-astro-cid-grsovck6] p[data-astro-cid-grsovck6]{grid-column:2;margin-top:.1rem}}.experience[data-astro-cid-bl6cniha]{background:var(--navy)}.timeline[data-astro-cid-bl6cniha]{--tl-gap:clamp(20px, 3vw, 40px);position:relative}.timeline__list[data-astro-cid-bl6cniha]{gap:clamp(36px,4vw,56px);display:grid}.timeline__rail[data-astro-cid-bl6cniha]{top:10px;bottom:10px;left:calc(12rem + var(--tl-gap) + 7px);background:var(--line-strong);width:1px;position:absolute}.timeline__fill[data-astro-cid-bl6cniha]{background:linear-gradient(180deg, var(--ink) 0%, #8fa6ff 60%, var(--glow) 100%);transform-origin:top;transform:scaleY(var(--p,1));position:absolute;inset:0}.job[data-astro-cid-bl6cniha]{column-gap:var(--tl-gap);grid-template-columns:12rem 15px minmax(0,1fr);align-items:start;display:grid}.job__period[data-astro-cid-bl6cniha]{color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right;padding-top:.15rem;font-size:1rem;font-weight:550}.job__dot[data-astro-cid-bl6cniha]{z-index:1;background:var(--navy);border:2px solid var(--ink-2);border-radius:50%;width:15px;height:15px;margin-top:.45rem;position:relative}.job--now[data-astro-cid-bl6cniha] .job__dot[data-astro-cid-bl6cniha]{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 6px #3e63dd40}.job--edu[data-astro-cid-bl6cniha] .job__dot[data-astro-cid-bl6cniha]{border-style:dashed}.job__body[data-astro-cid-bl6cniha]{gap:.6rem;max-width:60ch;display:grid}.job__role[data-astro-cid-bl6cniha]{letter-spacing:-.03em;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;font-size:clamp(1.375rem,1.8vw,1.75rem);font-weight:650;line-height:1.2;display:flex}.job__org[data-astro-cid-bl6cniha]{color:var(--ink-3);margin-top:-.3rem;font-size:1rem}.job__summary[data-astro-cid-bl6cniha]{color:var(--ink-2);text-wrap:pretty;line-height:1.6}.job[data-astro-cid-bl6cniha] .tags[data-astro-cid-bl6cniha]{margin-top:.2rem}@media (width<=760px){.timeline__rail[data-astro-cid-bl6cniha]{left:7px}.job[data-astro-cid-bl6cniha]{grid-template-columns:15px minmax(0,1fr);column-gap:20px}.job__period[data-astro-cid-bl6cniha]{text-align:left;grid-area:1/2;font-size:.9375rem}.job__dot[data-astro-cid-bl6cniha]{grid-area:1/1;margin-top:.3rem}.job__body[data-astro-cid-bl6cniha]{grid-column:2;margin-top:.4rem}}.blog[data-astro-cid-6573cpmj]{background:var(--navy);border-top:1px solid var(--line)}.blog__side[data-astro-cid-6573cpmj]{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.blog__grid[data-astro-cid-6573cpmj]{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);display:grid}.blog__grid[data-astro-cid-6573cpmj]>div[data-astro-cid-6573cpmj]{display:grid}@media (width<=860px){.blog__grid[data-astro-cid-6573cpmj]{grid-template-columns:1fr}}.contact[data-astro-cid-he3spzz3]{background:linear-gradient(180deg, var(--navy) 0%, var(--midnight) 100%);overflow:hidden}.contact__glow[data-astro-cid-he3spzz3]{pointer-events:none;background:radial-gradient(45% 55% at 50% 0,#1a3278bf 0%,#0000 70%),radial-gradient(25% 35% at 50% 0,#3e63dd59 0%,#0000 70%);width:120%;height:620px;position:absolute;top:0;left:50%;transform:translate(-50%)}.contact__head[data-astro-cid-he3spzz3]{text-align:center;margin-bottom:clamp(48px,6vw,80px);position:relative}.contact__title[data-astro-cid-he3spzz3]{letter-spacing:-.055em;text-wrap:balance;font-size:clamp(2.8rem,7.4vw,6.5rem);font-weight:700;line-height:.98}.contact__lead[data-astro-cid-he3spzz3]{max-width:46ch;color:var(--ink-2);text-wrap:balance;margin:1.4rem auto 0;font-size:clamp(1.0625rem,.6vw + .9rem,1.25rem);line-height:1.55}.contact__grid[data-astro-cid-he3spzz3]{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(16px,2vw,28px);display:grid;position:relative}@media (width<=1000px){.contact__grid[data-astro-cid-he3spzz3]{grid-template-columns:1fr}}.contact__side[data-astro-cid-he3spzz3],.contact__book[data-astro-cid-he3spzz3]{padding:clamp(24px,3vw,40px)}@media (width>=1001px){.contact__side[data-astro-cid-he3spzz3]{top:calc(var(--nav-h) + 24px);position:sticky}}.panel__title[data-astro-cid-he3spzz3]{letter-spacing:-.03em;font-size:1.5rem;font-weight:650}.panel__lead[data-astro-cid-he3spzz3]{color:var(--ink-2);margin-top:.5rem;line-height:1.55}.mail[data-astro-cid-he3spzz3]{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.5rem;padding-bottom:1.5rem;display:flex}.mail__value[data-astro-cid-he3spzz3]{letter-spacing:-.025em;overflow-wrap:anywhere;transition:background-size .5s var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;font-size:clamp(1.25rem,1.9vw,1.625rem);font-weight:650;text-decoration:none}.mail__value[data-astro-cid-he3spzz3]:hover{background-size:100% 1px}.mail__copy[data-astro-cid-he3spzz3]{border:1px solid var(--line-strong);min-height:2rem;color:var(--ink-2);cursor:pointer;transition:background-color .25s var(--ease-out), color .25s var(--ease-out);background:0 0;border-radius:999px;padding:0 .85rem;font-size:.8125rem;font-weight:600}.mail__copy[data-astro-cid-he3spzz3]:hover{color:var(--ink);background:#ffffff14}.mail__copy[data-astro-cid-he3spzz3].is-done{background:var(--ink);color:var(--navy);border-color:var(--ink)}.links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]{border-bottom:1px solid var(--line);color:var(--ink-3);transition:color .25s var(--ease-out);grid-template-columns:6.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.05rem 0;text-decoration:none;display:grid}.links__value[data-astro-cid-he3spzz3]{color:var(--ink);font-size:1.0625rem;font-weight:600}.links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3] svg{width:1em;height:1em;color:var(--ink-2);transition:transform .4s var(--ease-out)}.links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]:hover svg{transform:translate(2px,-2px)}.sched[data-astro-cid-he3spzz3]{gap:1.6rem;margin-top:1.6rem;display:grid}.sched[data-astro-cid-he3spzz3] fieldset[data-astro-cid-he3spzz3]{border:0;min-width:0;margin:0;padding:0}.sched[data-astro-cid-he3spzz3] legend[data-astro-cid-he3spzz3],.field[data-astro-cid-he3spzz3] label[data-astro-cid-he3spzz3]{color:var(--ink-2);margin-bottom:.6rem;font-size:.875rem;font-weight:550;display:block}.sched__row[data-astro-cid-he3spzz3]{grid-template-columns:minmax(0,1fr) auto;gap:1.25rem 1.5rem;display:grid}.choice__opts[data-astro-cid-he3spzz3]{flex-wrap:wrap;gap:.45rem;display:flex}.pill[data-astro-cid-he3spzz3]{position:relative}.pill[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3],.day input,.slot input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pill[data-astro-cid-he3spzz3] span[data-astro-cid-he3spzz3]{border:1px solid var(--line-strong);min-height:2.5rem;color:var(--ink-2);transition:background-color .25s var(--ease-out), color .25s var(--ease-out), border-color .25s var(--ease-out);border-radius:999px;align-items:center;padding:0 1rem;font-size:.9375rem;font-weight:550;display:inline-flex}.pill[data-astro-cid-he3spzz3]:hover span[data-astro-cid-he3spzz3]{color:var(--ink);border-color:#fffdff73}.pill[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3]:checked+span[data-astro-cid-he3spzz3]{background:var(--ink);border-color:var(--ink);color:var(--navy)}.pill[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3]:focus-visible+span[data-astro-cid-he3spzz3],.day input:focus-visible+span,.slot input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}.sched__when[data-astro-cid-he3spzz3]{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:1.25rem 1.5rem;display:grid}.days__head[data-astro-cid-he3spzz3],.days__grid[data-astro-cid-he3spzz3]{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;display:grid}.days__head[data-astro-cid-he3spzz3] span[data-astro-cid-he3spzz3]{text-align:center;text-transform:capitalize;color:var(--ink-3);padding-bottom:.25rem;font-size:.75rem;font-weight:600}.day,.day-empty{aspect-ratio:1/.92;position:relative}.day span{border:1px solid var(--line);height:100%;transition:background-color .25s var(--ease-out), border-color .25s var(--ease-out), color .25s var(--ease-out);background:#ffffff09;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex}.day b{font-variant-numeric:tabular-nums;font-size:1.0625rem;font-weight:650}.day small{color:var(--ink-3);font-size:.6875rem}.day:hover span{border-color:var(--line-strong);background:#ffffff12}.day input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--navy)}.day input:checked+span small{color:#4a5684}.slots__tz[data-astro-cid-he3spzz3]{color:var(--ink-3);font-weight:400}.slots__grid[data-astro-cid-he3spzz3]{scrollbar-width:thin;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;max-height:15.5rem;padding-right:2px;display:grid;overflow-y:auto}.slots-empty{border:1px dashed var(--line-strong);min-height:9rem;color:var(--ink-3);text-align:center;border-radius:12px;grid-column:1/-1;place-items:center;padding:1rem;font-size:.9375rem;display:grid}.slot{position:relative}.slot span{border:1px solid var(--line-strong);min-height:2.9rem;transition:background-color .25s var(--ease-out), color .25s var(--ease-out), border-color .25s var(--ease-out);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex}.slot b{font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:600}.slot small{color:var(--ink-3);font-size:.6875rem}.slot:hover span{border-color:#fffdff73}.slot input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--navy)}.slot input:checked+span small{color:#4a5684}.fields[data-astro-cid-he3spzz3]{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;display:grid}.field[data-astro-cid-he3spzz3][hidden]{display:none}.field--wide[data-astro-cid-he3spzz3]{grid-column:1/-1}.field__opt[data-astro-cid-he3spzz3]{color:var(--ink-3);font-weight:400}.field[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3],.field[data-astro-cid-he3spzz3] textarea[data-astro-cid-he3spzz3]{border-radius:var(--radius-sm);border:1px solid var(--line-strong);width:100%;min-height:3.1rem;color:var(--ink);transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);background:#070b178c;padding:.75rem 1rem;font-size:1rem}.field[data-astro-cid-he3spzz3] textarea[data-astro-cid-he3spzz3]{resize:vertical;min-height:6rem;line-height:1.5}.field[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3]:hover,.field[data-astro-cid-he3spzz3] textarea[data-astro-cid-he3spzz3]:hover{border-color:#fffdff66}.field[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3]:focus,.field[data-astro-cid-he3spzz3] textarea[data-astro-cid-he3spzz3]:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 4px #3e63dd4d}.field[data-astro-cid-he3spzz3] input[data-astro-cid-he3spzz3][aria-invalid=true]{border-color:#ffb4a8}.field-error[data-astro-cid-he3spzz3]{color:#ffb4a8;margin-top:.4rem;font-size:.875rem}.summary[data-astro-cid-he3spzz3]{border-radius:var(--radius-sm);background:#1a327859;border:1px solid #3e63dd59;padding:1rem 1.15rem}.summary__label[data-astro-cid-he3spzz3]{color:var(--ink-2);font-size:.8125rem;font-weight:600}.summary__text[data-astro-cid-he3spzz3]{letter-spacing:-.01em;margin-top:.25rem;font-size:1.0625rem;font-weight:600}.sched__actions[data-astro-cid-he3spzz3]{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.sched__note[data-astro-cid-he3spzz3]{color:var(--ink-3);flex:16rem;font-size:.875rem;line-height:1.5}.form-status[data-astro-cid-he3spzz3]:empty{display:none}.form-status[data-astro-cid-he3spzz3].is-ok{border-radius:var(--radius-sm);background:var(--ink);color:var(--navy);padding:1rem 1.15rem;font-weight:600}.form-status[data-astro-cid-he3spzz3].is-error{color:#ffb4a8}@media (width<=720px){.sched__row[data-astro-cid-he3spzz3],.sched__when[data-astro-cid-he3spzz3],.fields[data-astro-cid-he3spzz3]{grid-template-columns:1fr}.sched__actions[data-astro-cid-he3spzz3] .btn[data-astro-cid-he3spzz3]{width:100%}.links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]{grid-template-columns:5.5rem minmax(0,1fr) auto}}.intro[data-astro-cid-fmp4ekgg]{z-index:200;pointer-events:none;display:none;position:fixed;inset:0}.intro-run{--intro:2.65s}.intro-run .intro[data-astro-cid-fmp4ekgg]{animation:.3s linear 4.8s forwards intro-fail;display:block}.intro__bg[data-astro-cid-fmp4ekgg]{background:radial-gradient(50% 45% at 50% 55%, #1a32788c, transparent 70%), var(--midnight);position:absolute;inset:0}.intro__stage[data-astro-cid-fmp4ekgg]{place-content:center;justify-items:center;gap:1.1rem;display:grid;position:absolute;inset:0}.intro[data-astro-cid-fmp4ekgg] .intro__mark{color:var(--ink);animation:mark-in 1.2s var(--ease-out) .2s both}.intro__stage[data-astro-cid-fmp4ekgg]:before{content:"";filter:blur(8px);width:340px;height:340px;animation:halo 2.4s var(--ease-io) .3s both;background:radial-gradient(closest-side,#3e63dd73,#1a327833 55%,#0000 100%);border-radius:50%;margin:-190px 0 0 -170px;position:absolute;top:50%;left:50%}@keyframes halo{0%{opacity:0;transform:scale(.55)}55%{opacity:1;transform:scale(1.1)}to{opacity:.6;transform:scale(1)}}.intro__word[data-astro-cid-fmp4ekgg]{letter-spacing:.5em;animation:word-in 1s var(--ease-out) .8s both;margin-right:-.5em;font-size:1.5rem;font-weight:600}.intro-run .nav .logo__mark{opacity:0;animation:1ms linear 4.8s forwards mark-show}.intro-run.intro-done .nav .logo__mark{opacity:1;animation:none}.intro-run .nav__links,.intro-run .nav__end,.intro-run .logo__word,.intro-run .logo__sep,.intro-run .logo__sub{animation:nav-in .8s var(--ease-out) 3.1s both}@keyframes mark-in{0%{opacity:0;clip-path:inset(100% 0 0);transform:translateY(14px)scale(.86)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes word-in{0%{opacity:0;letter-spacing:.9em;margin-right:-.9em}to{opacity:1;letter-spacing:.5em;margin-right:-.5em}}@keyframes mark-show{to{opacity:1}}@keyframes nav-in{0%{opacity:0;transform:translateY(-8px)}}@keyframes intro-fail{to{opacity:0;visibility:hidden}}
