.dither-backdrop{z-index:0;opacity:var(--dither-opacity);pointer-events:none;transition:opacity .36s var(--ease-out);position:fixed;inset:0;overflow:hidden}.dither-backdrop:not([data-variant=idle]){opacity:var(--dither-active-opacity)}.dither-backdrop[data-variant=context7]{--dither-active-opacity:.82}.profile[data-quiet-dither=true] .dither-backdrop{--quiet-field-mask:linear-gradient(to right, black 0%, black 10%, #000000d1 18%, #00000075 30%, #0006 50%, #00000075 70%, #000000d1 82%, black 90%, black 100%);-webkit-mask-image:var(--quiet-field-mask);mask-image:var(--quiet-field-mask);-webkit-mask-image:var(--quiet-field-mask)}.dither-field{background:0 0;position:absolute;inset:0;overflow:hidden}.dither-field:before{z-index:0;content:"";-webkit-mask-image:radial-gradient(ellipse at var(--dither-x,58%) var(--dither-y,18%), black 0%, transparent 68%);mask-image:radial-gradient(ellipse at var(--dither-x,58%) var(--dither-y,18%), black 0%, transparent 68%);opacity:0;background-color:#0000;transition:background-color .42s,opacity .42s;position:absolute;inset:0}.dither-field[data-variant=context7]:before{--dither-x:72%;--dither-y:26%;background-color:var(--accent-context7);opacity:var(--accent-context7-opacity)}.dither-field[data-variant=hugeicons]:before{--dither-x:18%;--dither-y:46%;background-color:var(--accent-hugeicons);opacity:var(--accent-hugeicons-opacity)}.dither-field[data-variant=distributed]:before{--dither-x:76%;--dither-y:64%;background-color:var(--accent-distributed);opacity:var(--accent-distributed-opacity)}.dither-field[data-variant=dkt]:before{--dither-x:32%;--dither-y:70%;background-color:var(--accent-dkt);-webkit-mask-image:radial-gradient(ellipse at var(--dither-x) var(--dither-y), black 0%, transparent 88%);mask-image:radial-gradient(ellipse at var(--dither-x) var(--dither-y), black 0%, transparent 88%);opacity:var(--accent-dkt-opacity)}.dither-field:not(.dither-field--fallback):before{opacity:0}.dither-field--fallback:before{background-image:radial-gradient(circle, var(--dither-idle-color,rgb(var(--ink-rgb) / 44%)) 0 .75px, transparent 1px);opacity:.42;background-position:50%;background-size:6px 6px}.dither-field--fallback[data-variant=idle]:before{opacity:0}.dither-field__shader-transition,.dither-field__shader-transition canvas{width:100%!important;height:100%!important}.dither-field__shader-transition{z-index:1;opacity:0;animation:dither-field-enter .7s var(--ease-out) forwards;position:absolute;inset:0}@keyframes dither-field-enter{to{opacity:1}}@media (width<=700px){.dither-backdrop{opacity:.42}.dither-backdrop:not([data-variant=idle]){opacity:.58}.profile[data-quiet-dither=true] .dither-backdrop{--quiet-field-mask:linear-gradient(to right, #000000a3 0%, #00000070 14%, #0006 50%, #00000070 86%, #000000a3 100%)}}@media (prefers-reduced-motion:reduce){.dither-backdrop,.dither-field:before{transition-duration:.01ms!important;transition-delay:0s!important}.dither-field__shader-transition{animation-duration:.01ms}}:root{--paper-rgb:246 246 243;--ink-rgb:23 24 22;--paper:rgb(var(--paper-rgb));--ink:rgb(var(--ink-rgb));--ink-muted:rgb(var(--ink-rgb) / 59%);--ink-faint:rgb(var(--ink-rgb) / 12%);--image-outline:#0000001a;--icon-tile-surface:#fff;--icon-tile-border:#0000001a;--icon-tile-shadow:0 1px 2px #00000012;--avatar-shadow:0 1px 2px #0000000f, 0 4px 12px #00000014;--control-surface:#fff;--control-surface-hover:#f5f5f2;--control-ink:#555851;--control-ink-hover:#171816;--control-divider:#00000017;--tooltip-surface:#171816;--tooltip-ink:#f6f6f3;--tooltip-shadow:0 5px 16px #00000024;--accent-context7:#059669;--accent-hugeicons:#6fae45;--accent-distributed:#4267bd;--accent-dkt:#92724c;--accent-context7-opacity:.16;--accent-hugeicons-opacity:.2;--accent-distributed-opacity:.2;--accent-dkt-opacity:.18;--control-shadow:0 0 0 1px #0000000f, 0 1px 2px #00000012, 0 6px 18px #00000014;--dither-opacity:.62;--dither-active-opacity:.72;--ease-out:cubic-bezier(.23, 1, .32, 1);color:var(--ink);background:var(--paper);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{background:var(--paper)}body{min-height:100vh;margin:0;overflow-x:clip}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}canvas{display:block}.profile{background:var(--paper);isolation:isolate;min-height:100svh;position:relative;overflow-x:clip}.profile__shell{z-index:2;width:min(100%,42rem);padding-block:clamp(4rem, 11vw, 7.5rem) calc(4rem + env(safe-area-inset-bottom));padding-inline:max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));margin:0 auto;position:relative}.profile[data-text-backdrop=section-haze] :is(.profile__header,.profile-section,.profile-footer){isolation:isolate;position:relative}.profile[data-text-backdrop=section-haze] :is(.profile__header,.profile-section,.profile-footer):before{z-index:-1;background:radial-gradient(ellipse at center, rgb(var(--paper-rgb) / 68%) 0%, rgb(var(--paper-rgb) / 36%) 48%, transparent 78%);content:"";filter:blur(8px);pointer-events:none;position:absolute;inset:-1.5rem -2.25rem}.profile[data-text-backdrop=section-even] :is(.profile__header,.profile-section,.profile-footer){isolation:isolate;position:relative}.profile[data-text-backdrop=section-even] :is(.profile__header,.profile-section,.profile-footer):before{z-index:-1;--even-mask:radial-gradient(ellipse var(--even-width,100%) var(--even-height,72%) at center, rgb(0 0 0/var(--even-alpha-0,36%)) 0%, rgb(0 0 0/var(--even-alpha-1,32%)) var(--even-stop-1,10%), rgb(0 0 0/var(--even-alpha-2,23%)) var(--even-stop-2,41%), rgb(0 0 0/var(--even-alpha-3,12%)) var(--even-stop-3,63%), rgb(0 0 0/var(--even-alpha-4,4%)) var(--even-stop-4,81%), transparent 100%);background:rgb(var(--paper-rgb) / 24%);-webkit-mask-image:var(--even-mask);mask-image:var(--even-mask);content:"";opacity:1;pointer-events:none;-webkit-mask-image:var(--even-mask);transition:opacity .18s;position:absolute;inset:-3.5rem -5rem}.profile[data-text-backdrop=section-even]:not([data-dither-variant=idle]) :is(.profile__header,.profile-section,.profile-footer):before{opacity:0}.profile__header h1,.profile__header p,.profile-section h2,.profile-section p{margin:0}.profile__header{align-items:center;gap:.75rem;display:inline-flex}.profile__identity{display:grid}.profile__avatar{outline:1px solid var(--image-outline);outline-offset:-1px;width:2.75rem;height:2.75rem;box-shadow:var(--avatar-shadow);object-fit:cover;border-radius:.55rem}.profile__header h1{letter-spacing:-.018em;text-wrap:balance;font-size:1rem;font-weight:600;line-height:1.35}.profile__header p{color:var(--ink-muted);font-size:1rem;line-height:1.4}.profile-section{margin-top:clamp(5rem,13vw,7.25rem)}.profile-section h2{letter-spacing:-.014em;margin-bottom:1.55rem;font-size:1rem;font-weight:600;line-height:1.35}.profile-section__body{gap:1rem;display:grid}.profile-section p,.project-entry__description,.social-sentence{color:var(--ink-muted);letter-spacing:-.012em;text-wrap:pretty;font-size:1rem;font-weight:400;line-height:1.58}.profile-section p a{color:var(--ink);-webkit-text-decoration-color:var(--ink-faint);text-decoration-color:var(--ink-faint);text-underline-offset:.18em;text-decoration-thickness:1px;transition:text-decoration-color .16s}.context7-stars{display:inline-block;position:relative}.context7-stars__count{font-variant-numeric:tabular-nums}.context7-stars__icon{z-index:1;opacity:0;pointer-events:none;filter:blur(4px);transform-origin:0;transition:opacity .18s cubic-bezier(.2,0,0,1),filter .2s cubic-bezier(.2,0,0,1),transform .22s cubic-bezier(.2,0,0,1);position:absolute;top:50%;left:calc(100% + .45rem);transform:translate(-.3rem,-50%)scale(.25)}.context7-stars:focus-visible .context7-stars__icon{opacity:1;filter:blur();transition-duration:0s;transform:translateY(-50%)scale(1)}.inline-favicon-link{display:inline-block;position:relative}.link-icon-tile{border:1px solid var(--icon-tile-border);background:var(--icon-tile-surface);width:1.5rem;height:1.5rem;box-shadow:var(--icon-tile-shadow);color:var(--ink);border-radius:.45rem;justify-content:center;align-items:center;display:inline-flex}.inline-favicon-link__icon{opacity:0;pointer-events:none;filter:blur(4px);transform-origin:bottom;transition:opacity .15s ease, filter .18s ease, transform .2s var(--ease-out);position:absolute;bottom:calc(100% + .3rem);left:50%;transform:translate(-50%,.3rem)scale(.25)}.inline-favicon-link__image{object-fit:contain;background:var(--favicon-image-bg,transparent);border-radius:.25rem;width:1rem;height:1rem;display:block}.inline-favicon-link:focus-visible .inline-favicon-link__icon{opacity:1;filter:blur();transition-duration:0s;transform:translate(-50%)scale(1)}.project-list{border-top:1px solid var(--ink-faint)}.project-entry{border-bottom:1px solid var(--ink-faint);min-height:8.5rem;color:var(--ink);grid-template-columns:minmax(10.5rem,.82fr) 1.45fr;align-items:center;gap:1.35rem;padding:1.35rem 0;text-decoration:none;display:grid;position:relative}.project-entry__title,.project-entry__description{z-index:1;position:relative}.project-entry__title{letter-spacing:-.02em;font-size:1rem;font-weight:400;line-height:1.4}.profile-footer{margin-top:clamp(5.5rem,13vw,7.25rem);padding-bottom:2rem}.social-sentence{margin:0}.social-sentence__link{color:var(--ink);-webkit-text-decoration-color:var(--ink-faint);text-decoration-color:var(--ink-faint);text-underline-offset:.18em;padding-bottom:1.65rem;text-decoration-thickness:1px;transition:text-decoration-color .16s;display:inline-block;position:relative}.social-sentence__link[data-icon-position=top]{padding-top:1.65rem;padding-bottom:0}.social-sentence__icon{z-index:1;opacity:0;pointer-events:none;filter:blur(4px);transform-origin:top;transition:opacity .18s cubic-bezier(.2,0,0,1),filter .2s cubic-bezier(.2,0,0,1),transform .22s cubic-bezier(.2,0,0,1);position:absolute;top:calc(100% - 1.5rem);left:50%;transform:translate(-50%,-.25rem)scale(.25)}.social-sentence__link[data-icon-position=top] .social-sentence__icon{transform-origin:bottom;top:0;transform:translate(-50%,.25rem)scale(.25)}.social-sentence__link:focus-visible .social-sentence__icon{opacity:1;filter:blur();transition-duration:0s;transform:translate(-50%)scale(1)}.social-sentence__link[data-icon-position=top]:focus-visible .social-sentence__icon{transform:translate(-50%)scale(1)}.page-controls{z-index:3;top:max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-top));right:max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-right));background:var(--control-surface);box-shadow:var(--control-shadow);color:var(--control-ink);border-radius:.75rem;align-items:center;gap:.1rem;padding:.2rem;transition:background-color .18s,box-shadow .18s,color .18s;display:flex;position:fixed}.page-controls__divider{background:var(--control-divider);width:1px;height:1rem}.page-control{appearance:none;width:2.5rem;height:2.5rem;color:inherit;cursor:pointer;transition:background-color .16s ease, color .16s ease, transform .15s var(--ease-out);background:0 0;border:0;border-radius:.55rem;justify-content:center;align-items:center;padding:0;display:inline-flex}.page-control:active:not(:disabled){transform:scale(.96)}.page-control:disabled{cursor:default;opacity:.5}.page-control__glyph{width:1rem;height:1rem;display:block;position:relative}.page-control__icon{transition:opacity .18s cubic-bezier(.2,0,0,1),filter .2s cubic-bezier(.2,0,0,1),transform .22s cubic-bezier(.2,0,0,1);position:absolute;inset:0}.page-control__icon[data-active=false]{opacity:0;filter:blur(4px);transform:scale(.25)}.page-control__icon[data-active=true]{opacity:1;filter:blur();transform:scale(1)}.tooltip-positioner{z-index:10}.tooltip-content{background:var(--tooltip-surface);max-width:15rem;box-shadow:var(--tooltip-shadow);color:var(--tooltip-ink);letter-spacing:-.006em;transform-origin:var(--transform-origin);transition:opacity .12s ease, filter .15s ease, transform .17s var(--ease-out);border-radius:.45rem;padding:.42rem .55rem;font-size:.72rem;font-weight:500;line-height:1.2}.tooltip-content[data-starting-style],.tooltip-content[data-ending-style]{opacity:0;filter:blur(2px);transform:scale(.96)}.tooltip-arrow{width:.75rem;height:.375rem;display:block;position:relative;overflow:clip}.tooltip-arrow[data-side=top]{bottom:-.375rem;rotate:180deg}.tooltip-arrow[data-side=bottom]{top:-.375rem}.tooltip-arrow[data-side=left]{right:-.5625rem;rotate:90deg}.tooltip-arrow[data-side=right]{left:-.5625rem;rotate:-90deg}.tooltip-arrow:before{background:var(--tooltip-surface);content:"";width:.53033rem;height:.53033rem;position:absolute;bottom:0;left:50%;transform:translate(-50%,50%)rotate(45deg)}.project-entry:focus-visible,.profile-section a:focus-visible,.social-sentence__link:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:0}.page-control:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:.55rem}@media (hover:hover) and (pointer:fine){.profile-section p a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.inline-favicon-link:hover .inline-favicon-link__icon{opacity:1;filter:blur();transform:translate(-50%)scale(1)}.context7-stars:hover .context7-stars__icon{opacity:1;filter:blur();transform:translateY(-50%)scale(1)}.social-sentence__link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.social-sentence__link:hover .social-sentence__icon{opacity:1;filter:blur();transform:translate(-50%)scale(1)}.social-sentence__link[data-icon-position=top]:hover .social-sentence__icon{transform:translate(-50%)scale(1)}.page-control:hover:not(:disabled){background:var(--control-surface-hover);color:var(--control-ink-hover)}}:root[data-theme=dark]{--paper-rgb:16 20 17;--ink-rgb:237 241 232;--ink-muted:rgb(var(--ink-rgb) / 68%);--ink-faint:rgb(var(--ink-rgb) / 15%);--image-outline:#ffffff1a;--icon-tile-surface:#1c231d;--icon-tile-border:#ffffff1a;--icon-tile-shadow:0 1px 2px #00000052;--avatar-shadow:0 1px 2px #0006, 0 6px 18px #00000075;--control-surface:#1c231d;--control-surface-hover:#273029;--control-ink:#aab4aa;--control-ink-hover:#f0f4ec;--control-divider:#ffffff1f;--tooltip-surface:#e3e9df;--tooltip-ink:#101411;--tooltip-shadow:0 8px 24px #0000006b;--accent-context7:#20b88a;--accent-hugeicons:#8acb5a;--accent-distributed:#6482c7;--accent-dkt:#b9956c;--accent-context7-opacity:.2;--accent-hugeicons-opacity:.24;--accent-distributed-opacity:.26;--accent-dkt-opacity:.24;--control-shadow:0 0 0 1px #ffffff17;--dither-opacity:.56;--dither-active-opacity:.7;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (width<=700px){.profile__shell{padding-top:max(4.75rem, calc(env(safe-area-inset-top) + 4.25rem))}.profile-section{margin-top:5.25rem}.project-entry{grid-template-columns:1fr;align-content:center;gap:.35rem 1rem;min-height:9rem}.project-entry__description{grid-column:1/-1;padding-right:1rem}}@media (prefers-reduced-motion:reduce){.context7-stars__icon,.inline-favicon-link__icon,.profile-section p a,.social-sentence__link,.social-sentence__icon,.page-controls,.page-control,.page-control__icon,.tooltip-content{transition-duration:.01ms!important;transition-delay:0s!important}}
