.hero[data-astro-cid-ge2uvauf]{--aurora-period:32s;--aurora-period-alt:46s;--aurora-travel:45%;isolation:isolate;min-height:calc(100svh - 4rem);padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1.25rem,4vw,2rem);position:relative;overflow:hidden}.hero__aurora[data-astro-cid-ge2uvauf]{z-index:-1;position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(#0000 0% 56%,#00000040 67%,#000 80%,#0009 100%)}.hero__bands[data-astro-cid-ge2uvauf]{filter:blur(34px);opacity:.62;animation:aurora-drift var(--aurora-period) ease-in-out infinite alternate;will-change:transform;background:linear-gradient(90deg,#0000 0%,#1e60d0d9 10%,#0000 19%,#8ec5fff5 30%,#0000 40%,#2e82e8e0 52%,#0000 62%,#c4e4ffd1 73%,#0000 83%,#3a76cdb3 93%);position:absolute;inset:-20% -30% -20% 10%}.hero__bands--alt[data-astro-cid-ge2uvauf]{filter:blur(46px);opacity:.5;animation:aurora-drift-alt var(--aurora-period-alt) ease-in-out infinite alternate;background:linear-gradient(90deg,#0000 4%,#60b0ffc7 17%,#0000 30%,#1a4ab0e0 45%,#0000 58%,#aad8ffb8 70%,#0000 84%);inset:-25% -20% -25% 22%}@keyframes aurora-drift{0%{transform:translate3d(calc(var(--aurora-travel) * -1), 0, 0) scaleX(.96)}to{transform:translate3d(var(--aurora-travel), 0, 0) scaleX(1.16)}}@keyframes aurora-drift-alt{0%{transform:translate3d(var(--aurora-travel), 0, 0) scaleX(1.12)}to{transform:translate3d(calc(var(--aurora-travel) * -1.2), 0, 0) scaleX(.92)}}.hero__grain[data-astro-cid-ge2uvauf]{opacity:.3;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.42'/%3E%3C/svg%3E");position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.hero__bands[data-astro-cid-ge2uvauf]{animation:none!important;transform:none!important}}.hero__grid[data-astro-cid-ge2uvauf]{align-items:center;gap:clamp(2rem,5vw,3.5rem);display:grid}.hero__copy[data-astro-cid-ge2uvauf]{min-width:0}.hero__title[data-astro-cid-ge2uvauf]{letter-spacing:-.04em;margin-top:.9rem;font-size:clamp(2.6rem,1.5rem + 5.4vw,4.9rem);line-height:.98}.hero__greeting[data-astro-cid-ge2uvauf]{color:var(--fg-muted);display:block}.hero__swap[data-astro-cid-ge2uvauf]{display:grid}.hero__word[data-astro-cid-ge2uvauf]{grid-area:1/1}.hero__word--name[data-astro-cid-ge2uvauf]{animation:hero-name-out .9s var(--ease) 1.9s both}.hero__word--role[data-astro-cid-ge2uvauf]{animation:hero-role-in .9s var(--ease) 1.9s both}@keyframes hero-name-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.1em)}}@keyframes hero-role-in{0%{opacity:0;transform:translateY(.1em)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero__word[data-astro-cid-ge2uvauf]{animation:none!important}.hero__word--name[data-astro-cid-ge2uvauf]{opacity:1;transform:none}.hero__word--role[data-astro-cid-ge2uvauf]{display:none}}.hero__lead[data-astro-cid-ge2uvauf]{max-width:34ch;margin-top:1.5rem}.hero__actions[data-astro-cid-ge2uvauf]{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.hero__rule[data-astro-cid-ge2uvauf]{margin-top:clamp(2.25rem,5vw,3rem)}.hero__facts[data-astro-cid-ge2uvauf]{gap:1.25rem 2.5rem;margin:1.5rem 0 0;display:grid}.hero__fact-value[data-astro-cid-ge2uvauf]{color:var(--fg-muted);max-width:30ch;margin:.35rem 0 0;font-size:.9375rem}.hero__portrait[data-astro-cid-ge2uvauf]{justify-self:center;width:min(84vw,30rem)}.hero__portrait[data-astro-cid-ge2uvauf] img[data-astro-cid-ge2uvauf]{width:100%;height:auto}@media (width<=61.99rem){.hero[data-astro-cid-ge2uvauf]{min-height:auto}.hero__grid[data-astro-cid-ge2uvauf]{gap:clamp(1rem,4vw,2rem)}.hero__actions[data-astro-cid-ge2uvauf]{display:none}.hero__portrait[data-astro-cid-ge2uvauf]{margin-top:-.75rem}}@media (width>=34rem){.hero__facts[data-astro-cid-ge2uvauf]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=62rem){.hero[data-astro-cid-ge2uvauf]{padding-bottom:0}.hero__aurora[data-astro-cid-ge2uvauf]{-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,#0000 40%,#00000073 56%,#000 74%),linear-gradient(#000 0% 62%,#0000004d 90%,#0000001f 100%);mask-composite:intersect}.hero__grid[data-astro-cid-ge2uvauf]{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:end;gap:clamp(1.5rem,3vw,3rem);min-height:calc(100svh - 4rem - clamp(2.5rem,6vw,4.5rem))}.hero__copy[data-astro-cid-ge2uvauf]{padding-bottom:clamp(3rem,7vw,5rem)}.hero__lead[data-astro-cid-ge2uvauf]{margin-top:clamp(2rem,3vw,2.75rem)}.hero__actions[data-astro-cid-ge2uvauf]{margin-top:clamp(2.5rem,4vw,3.5rem)}.hero__portrait[data-astro-cid-ge2uvauf]{width:100%;margin-right:calc(var(--gutter) * -1.6);margin-left:calc(var(--gutter) * -1)}}.strip[data-astro-cid-yuko5xd2]{border-block:1px solid var(--line-soft);padding-block:clamp(1.5rem,4vw,2.25rem)}.strip__viewport[data-astro-cid-yuko5xd2]{overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.strip__track[data-astro-cid-yuko5xd2]{width:max-content;animation:60s linear infinite strip-scroll;display:flex}.strip__track[data-astro-cid-yuko5xd2]:hover,.strip__track[data-astro-cid-yuko5xd2]:focus-within{animation-play-state:paused}.strip__list[data-astro-cid-yuko5xd2]{align-items:center;gap:clamp(2.25rem,6.5vw,7rem);margin:0;padding:0 clamp(1.125rem,3.25vw,3.5rem);list-style:none;display:flex}.strip__item[data-astro-cid-yuko5xd2]{color:var(--fg-faint);white-space:nowrap;transition:color .2s var(--ease);align-items:center;gap:.6rem;display:inline-flex}.strip__item[data-astro-cid-yuko5xd2]:hover{color:var(--accent)}.strip__item[data-astro-cid-yuko5xd2] svg[data-astro-cid-yuko5xd2]{fill:currentColor;flex:none;width:22px;height:22px}.strip__label[data-astro-cid-yuko5xd2]{font-family:var(--font-mono);letter-spacing:.04em;font-size:.8125rem}@keyframes strip-scroll{0%{transform:translate(0,0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.strip__track[data-astro-cid-yuko5xd2]{width:100%;animation:none!important}.strip__viewport[data-astro-cid-yuko5xd2]{mask-image:none}.strip__list[data-astro-cid-yuko5xd2]{padding-inline:var(--gutter);flex-wrap:wrap;flex:100%;justify-content:center;gap:1rem clamp(1.5rem,4vw,2.75rem)}.strip__list[data-astro-cid-yuko5xd2][aria-hidden=true]{display:none}}.about[data-astro-cid-oxgmilyn]{padding-top:0;padding-bottom:0}.about[data-astro-cid-oxgmilyn]>.shell[data-astro-cid-oxgmilyn]{padding-top:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(3rem,5vw,4.5rem)}.about__motto[data-astro-cid-oxgmilyn]{max-width:40ch;color:var(--fg-muted);text-align:center;gap:.85rem;margin-inline:auto;font-size:clamp(1.1rem,1rem + .5vw,1.35rem);line-height:1.4;display:grid}.about__link[data-astro-cid-oxgmilyn]{color:inherit;font-style:italic;text-decoration:none}.about__link[data-astro-cid-oxgmilyn]:hover,.about__link[data-astro-cid-oxgmilyn]:focus-visible{color:inherit;text-decoration-color:var(--accent-line);text-decoration-line:underline}.card[data-astro-cid-y2vllrex]{background:var(--ink-900);border:1px solid var(--line);cursor:pointer;transition:border-color .2s var(--ease), background-color .2s var(--ease);border-radius:0;flex-direction:column;gap:.9rem;padding:clamp(1.4rem,3vw,2rem);display:flex;position:relative}.card__main[data-astro-cid-y2vllrex]{flex-direction:column;gap:1.25rem;display:flex}.card__copy[data-astro-cid-y2vllrex]{flex-direction:column;min-width:0;display:flex}.card[data-astro-cid-y2vllrex]:hover{border-color:var(--accent-line);background:var(--ink-900)}.card__title[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:after{content:"";position:absolute;inset:0}.card__title[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:focus-visible:after{outline:2px solid var(--accent);outline-offset:3px}.card__title[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:focus-visible{outline:none}.card__head[data-astro-cid-y2vllrex]{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 1rem;display:flex}.card__title[data-astro-cid-y2vllrex]{font-size:clamp(1.35rem,1.15rem + .55vw,1.7rem)}.card__title[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]{color:var(--fg);text-decoration:none}.card[data-astro-cid-y2vllrex]:hover .card__title[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]{color:var(--accent-strong)}.card__summary[data-astro-cid-y2vllrex]{color:var(--fg-muted);max-width:58ch;margin-top:.55rem}.card__preview[data-astro-cid-y2vllrex]{aspect-ratio:auto;background:var(--ink-900);border:1px solid var(--line);border-radius:0;order:2;margin:0;position:relative;overflow:hidden}.card__preview-link[data-astro-cid-y2vllrex]{z-index:1;color:inherit;display:block;position:relative}.card__preview-link[data-astro-cid-y2vllrex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.card__preview-link[data-astro-cid-y2vllrex]:focus-visible .card__preview[data-astro-cid-y2vllrex]{border-color:var(--accent)}.card__preview[data-astro-cid-y2vllrex]:after{content:"";background:var(--accent);mix-blend-mode:color;opacity:.2;transition:opacity 1.2s var(--ease);pointer-events:none;position:absolute;inset:0}.card__preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex]{filter:grayscale()contrast(.95);width:100%;height:auto;transition:filter 1.2s var(--ease), transform .3s var(--ease)}.card[data-astro-cid-y2vllrex]:hover .card__preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex],.card[data-astro-cid-y2vllrex]:focus-within .card__preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex]{filter:none}.card[data-astro-cid-y2vllrex]:hover .card__preview[data-astro-cid-y2vllrex]:after,.card[data-astro-cid-y2vllrex]:focus-within .card__preview[data-astro-cid-y2vllrex]:after{opacity:0}.card__stack[data-astro-cid-y2vllrex]{flex-wrap:wrap;gap:.65rem .9rem;margin:1.35rem 0 0;padding:0;list-style:none;display:flex}.card__stack[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]{font-family:var(--font-mono);color:var(--fg-faint);font-size:.7rem}@media (width>=38rem){.card__main--with-preview[data-astro-cid-y2vllrex]{grid-template-columns:minmax(0,1fr) minmax(9rem,42%);align-items:start;gap:clamp(1.25rem,3vw,2rem);display:grid}.card__main--with-preview[data-astro-cid-y2vllrex] .card__copy[data-astro-cid-y2vllrex]{height:100%}.card__main--with-preview[data-astro-cid-y2vllrex] .card__stack[data-astro-cid-y2vllrex]{margin-top:auto;padding-top:1.35rem}.card__main--with-preview[data-astro-cid-y2vllrex] .card__preview[data-astro-cid-y2vllrex]{order:0}}@media (width<=37.99rem){.card--revealed[data-astro-cid-y2vllrex] .card__preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex]{filter:none}.card--revealed[data-astro-cid-y2vllrex] .card__preview[data-astro-cid-y2vllrex]:after{opacity:0}}@media (prefers-reduced-motion:reduce){.card__preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex],.card__preview[data-astro-cid-y2vllrex]:after{transition-duration:.01ms}}.projects[data-astro-cid-ftq3vvlr]{padding-top:clamp(2.5rem,5vw,4.5rem)}.projects__head[data-astro-cid-ftq3vvlr]{text-align:center;max-width:46rem;margin-inline:auto}.projects[data-astro-cid-ftq3vvlr] .section-title[data-astro-cid-ftq3vvlr]{margin-top:0;font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem)}.projects__list[data-astro-cid-ftq3vvlr]{gap:clamp(1rem,2.5vw,1.5rem);margin:clamp(2.25rem,5vw,3.25rem) 0 0;padding:0;list-style:none;display:grid}.projects__list--more[data-astro-cid-ftq3vvlr]{margin-top:clamp(1rem,2.5vw,1.5rem)}.projects__list--more[data-astro-cid-ftq3vvlr][hidden]{display:none}html[data-projects-expanded=true] .projects__list--more[data-astro-cid-ftq3vvlr][hidden]{display:grid}.projects__list[data-astro-cid-ftq3vvlr]>li[data-astro-cid-ftq3vvlr]{display:flex}.projects__list[data-astro-cid-ftq3vvlr]>li[data-astro-cid-ftq3vvlr]>*{width:100%}.projects__more[data-astro-cid-ftq3vvlr]{color:var(--fg-muted);font:inherit;cursor:pointer;transition:color .2s var(--ease);background:0 0;border:0;justify-content:center;align-items:center;gap:.45rem;margin:2rem auto 0;padding:0;font-size:1rem;display:flex}.projects__more[data-astro-cid-ftq3vvlr]:hover{color:var(--accent)}.projects__more[data-astro-cid-ftq3vvlr][hidden],html[data-projects-expanded=true] .projects__more[data-astro-cid-ftq3vvlr]{display:none}.contact[data-astro-cid-he3spzz3]{padding-block:clamp(2.5rem,6vw,5rem)}.contact__content[data-astro-cid-he3spzz3]{justify-items:center;display:grid}.contact__title[data-astro-cid-he3spzz3]{text-align:center;margin-top:0;font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem)}.form[data-astro-cid-he3spzz3]{gap:1.1rem;width:min(100%,34rem);margin-top:clamp(1.25rem,3vw,2rem);display:grid}.contact__direct[data-astro-cid-he3spzz3]{min-width:0;color:var(--fg-faint);text-align:right;white-space:nowrap;flex:auto;margin:0;font-size:.9375rem}.field[data-astro-cid-he3spzz3]{gap:.45rem;display:grid}.field__label[data-astro-cid-he3spzz3]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);font-size:.75rem}.field__error[data-astro-cid-he3spzz3]{color:var(--danger);margin:0;font-size:.8125rem}.form__privacy[data-astro-cid-he3spzz3]{color:var(--fg-faint);justify-self:start;font-size:.8125rem}.field__input[data-astro-cid-he3spzz3]{background:var(--ink-900);border:1px solid var(--line);width:100%;color:var(--fg);font:inherit;transition:border-color .18s var(--ease), background-color .18s var(--ease);border-radius:0;padding:.8rem .95rem;font-size:.9375rem}.field__input[data-astro-cid-he3spzz3]::placeholder{color:var(--fg-faint)}.field__input[data-astro-cid-he3spzz3]:hover{border-color:var(--line);background:var(--ink-900)}.field__input[data-astro-cid-he3spzz3]:focus-visible{border-color:var(--accent);outline:2px solid var(--accent-line);outline-offset:1px}.field__input--area[data-astro-cid-he3spzz3]{resize:vertical;min-height:8rem;line-height:1.6}.honeypot[data-astro-cid-he3spzz3]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form__foot[data-astro-cid-he3spzz3]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;display:flex}.status[data-astro-cid-he3spzz3]{border:1px solid var(--line);color:var(--fg-muted);border-radius:0;margin:0;padding:.8rem 1rem;font-size:.9375rem}.status[data-astro-cid-he3spzz3][data-tone=success]{border-color:var(--accent-line);background:var(--accent-wash);color:var(--fg)}.status[data-astro-cid-he3spzz3][data-tone=error]{color:var(--danger);border-color:#ffb4a859}@media (width<=35rem){.contact__direct[data-astro-cid-he3spzz3]{text-align:left;white-space:normal;flex-basis:100%}}
