@font-face{font-family:Bagel Fat One;src:url(/fonts/bagel-fat-one-latin.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:italic;font-weight:400;src:url(/fonts/fraunces-italic-latin.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-weight:400 700;src:url(/fonts/manrope-latin.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--violet-500:#4b3cff;--violet-700:#17105b;--lime-500:#c7ff00;--pink-500:#ff6bd6;--topo-via:#6f63ff;--neutral-50:#f5f1e8;--neutral-100:#e8e1d4;--neutral-400:#a39e94;--neutral-700:#474747;--neutral-850:#232428;--neutral-900:#1a1b1e;--neutral-950:#101113;--color-bg:var(--neutral-950);--color-section:var(--violet-700);--color-surface:var(--neutral-900);--color-surface-hover:var(--neutral-850);--color-text:var(--neutral-50);--color-text-muted:var(--neutral-100);--color-text-subtle:var(--neutral-400);--color-action:var(--lime-500);--color-on-action:var(--neutral-950);--color-highlight:var(--lime-500);--color-detail:var(--pink-500);--color-block:var(--violet-500);--color-border:var(--neutral-700);--color-focus:var(--lime-500);--color-header-bg:var(--neutral-50);--color-header-text:var(--neutral-950);--color-header-accent:var(--violet-500);--color-header-muted:var(--neutral-400);--font-display:"Bagel Fat One", "Arial Rounded MT Bold", system-ui, sans-serif;--font-accent:"Fraunces", Georgia, serif;--font-body:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--text-hero:clamp(5.5rem, 12vw, 9.5rem);--text-hero-stacked:19vw;--text-h1:clamp(2.5rem, 1.6rem + 4vw, 4rem);--text-h2:clamp(1.875rem, 1.4rem + 2vw, 2.5rem);--text-h3:clamp(1.5rem, 1.3rem + 1vw, 1.75rem);--text-lead:clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--text-body:clamp(1rem, .95rem + .25vw, 1.125rem);--text-ui:1rem;--text-sm:.875rem;--text-logo:clamp(1.125rem, 1rem + .5vw, 1.375rem);--text-menu:3.25rem;--leading-none:1;--leading-display:.95;--leading-snug:1.3;--leading-body:1.6;--weight-regular:400;--weight-medium:500;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-section:clamp(4rem, 10vw, 8rem);--gutter:clamp(1rem, 4vw, 3rem);--container:1240px;--measure:52ch;--header-height:60px;--toc-width:13rem;--timeline-dot:14px;--skill-dot:10px;--stat-bar:12px;--radius-sm:8px;--radius-md:16px;--radius-lg:28px;--radius-pill:999px;--border-thin:1px;--border-strong:1.5px;--underline:2px;--focus-width:2px;--focus-offset:3px;--target-min:44px;--tag-tint:14%;--icon-sm:1.125rem;--icon-md:1.5rem;--icon-stroke:2.5;--ease-out:cubic-bezier(.22, 1, .36, 1);--duration-fast:.25s;--duration-base:.7s;--duration-reduced:.3s;--duration-press:.12s;--duration-move:var(--duration-fast);--duration-letter:.6s;--duration-hint:1.2s;--duration-bar:.9s;--stagger-letter:40ms;--stagger-block:80ms;--stagger-brick:60ms;--stagger-bar:.15s;--hover-lift:3px;--hover-nudge:4px;--press-scale:.98;--card-lift:8px;--pop-scale:.6;--poster-tilt:-2deg;--reveal-distance:24px;--letter-rise:.4em;--hero-parallax:.35;--hint-travel:12px;--hint-height:40px;--feedback-hold:2s}@media (prefers-reduced-motion:reduce){:root{--hover-lift:0px;--hover-nudge:0px;--press-scale:1;--card-lift:0px;--reveal-distance:0px;--pop-scale:1;--poster-tilt:0deg;--duration-move:0s}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + var(--space-5))}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html,body{background:var(--color-bg);color:var(--color-text);margin:0}body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}img,svg{max-width:100%;display:block}:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hl{font-family:var(--font-accent);font-style:italic;font-weight:var(--weight-regular);font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--color-highlight);font-size:1.25em;line-height:1}.container{max-width:var(--container);margin-inline:auto}.lead{max-width:var(--measure);font-size:var(--text-lead);line-height:var(--leading-snug);color:var(--color-text-muted);margin:0}.prose{gap:var(--space-4);min-width:0;display:grid}.prose :is(p,ul,ol){max-width:var(--measure);color:var(--color-text-muted);margin:0}.link-inline,.prose a{color:var(--color-action);text-decoration:underline;text-decoration-thickness:var(--border-thin);text-underline-offset:.2em}.link-inline:is(:hover,:focus-visible),.prose a:is(:hover,:focus-visible){text-decoration-thickness:var(--underline)}.trace{position:relative}.trace:after{content:"";left:0;right:0;bottom:calc(-1 * var(--space-1));height:var(--underline);background:var(--trace-color,var(--color-action));transform-origin:0;transition:transform var(--duration-move) var(--ease-out);position:absolute;transform:scaleX(0)}:hover>.trace:after,[aria-current]>.trace:after{transform:scaleX(1)}.fond-nuit,.fond-violet{--color-text:var(--neutral-50);--color-text-muted:var(--neutral-100);--color-text-subtle:var(--neutral-400);--tag-tint:14%;--color-action:var(--lime-500);--color-on-action:var(--neutral-950);--color-highlight:var(--lime-500);--color-detail:var(--pink-500);--color-focus:var(--lime-500)}.fond-nuit{--color-bg:var(--neutral-950)}.fond-violet{--color-bg:var(--violet-700);--color-text-subtle:var(--neutral-100)}.fond-vif{--tag-tint:0%;--color-bg:var(--violet-500);--color-text:var(--neutral-50);--color-text-muted:var(--neutral-50);--color-text-subtle:var(--neutral-50);--color-action:var(--lime-500);--color-on-action:var(--neutral-950);--color-highlight:var(--lime-500);--color-detail:var(--neutral-50);--color-focus:var(--lime-500)}.fond-lime{--tag-tint:0%;--color-bg:var(--lime-500);--color-text:var(--neutral-950);--color-text-muted:var(--neutral-950);--color-text-subtle:var(--neutral-700);--color-action:var(--neutral-950);--color-on-action:var(--lime-500);--color-highlight:var(--violet-500);--color-detail:var(--violet-500);--color-focus:var(--neutral-950)}.fond-rose{--tag-tint:0%;--color-bg:var(--pink-500);--color-text:var(--neutral-950);--color-text-muted:var(--neutral-950);--color-text-subtle:var(--neutral-950);--color-action:var(--neutral-950);--color-on-action:var(--pink-500);--color-highlight:var(--violet-700);--color-detail:var(--violet-700);--color-focus:var(--neutral-950)}.fond-creme{--tag-tint:0%;--color-bg:var(--neutral-50);--color-text:var(--neutral-950);--color-text-muted:var(--neutral-950);--color-text-subtle:var(--neutral-700);--color-action:var(--neutral-950);--color-on-action:var(--lime-500);--color-highlight:var(--violet-500);--color-detail:var(--violet-500);--color-focus:var(--neutral-950)}.fond-nuit,.fond-violet,.fond-vif,.fond-lime,.fond-rose,.fond-creme{background:var(--color-bg);color:var(--color-text)}.reveal{transition:opacity var(--duration-base) var(--ease-out), translate var(--duration-base) var(--ease-out);transition-delay:calc(var(--i,0) * var(--stagger-block))}.reveal.is-pending{opacity:0;translate:0 var(--reveal-distance)}@media (prefers-reduced-motion:reduce){.reveal{transition-duration:var(--duration-reduced);transition-delay:0s}}@keyframes intro-fallback{to{opacity:1}}.js[data-intro=pending] [data-intro-hide]{opacity:0;animation:0s 3s forwards intro-fallback}.display{font-family:var(--font-display);font-weight:var(--weight-regular);line-height:var(--leading-display);margin:0}.skill-dot{width:var(--skill-dot);height:var(--skill-dot);border-radius:var(--radius-pill);background:var(--neutral-700);flex:none}.skill-dot.on{background:var(--violet-500);box-shadow:0 0 0 var(--underline) var(--neutral-50)}.poster{transform:rotate(var(--tilt,0deg));transition:transform var(--duration-fast) var(--ease-out)}.poster:hover,.poster:focus-within{transform:translateY(calc(-1 * var(--card-lift))) rotate(0deg)}.poster.reveal{transition:transform var(--duration-fast) var(--ease-out), opacity var(--duration-base) var(--ease-out), translate var(--duration-base) var(--ease-out);transition-delay:0s, calc(var(--i,0) * var(--stagger-block)), calc(var(--i,0) * var(--stagger-block))}@media (prefers-reduced-motion:reduce){.poster.reveal{transition-duration:var(--duration-fast), var(--duration-reduced), var(--duration-reduced);transition-delay:0s}}.copy[data-v-b427e015]{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.address[data-v-b427e015]{font-size:var(--text-lead);font-weight:var(--weight-medium);-webkit-user-select:all;user-select:all;overflow-wrap:anywhere}.address.small[data-v-b427e015]{font-size:var(--text-ui)}.swap[data-v-b427e015]{display:inline-grid}.swap .icon[data-v-b427e015]{transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);grid-area:1/1}.ic-check[data-v-b427e015]{opacity:0;transform:scale(var(--pop-scale))}.done .ic-copy[data-v-b427e015]{opacity:0}.done .ic-check[data-v-b427e015]{opacity:1;transform:scale(1)}.link-inline .icon[data-v-7a5a071e]{vertical-align:-.15em;display:inline}.link-standalone[data-v-7a5a071e]{align-items:center;gap:var(--space-2);min-height:var(--target-min);color:var(--color-text);transition:color var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.link-standalone .label[data-v-7a5a071e]{position:relative}.link-standalone .label[data-v-7a5a071e]:before,.link-standalone .label[data-v-7a5a071e]:after{content:"";left:0;right:0;bottom:calc(-1 * var(--space-1));position:absolute}.link-standalone .label[data-v-7a5a071e]:before{height:var(--border-thin);background:currentColor}.link-standalone .label[data-v-7a5a071e]:after{height:var(--underline);background:var(--color-action);transform-origin:0;transition:transform var(--duration-move) var(--ease-out);transform:scaleX(0)}.link-standalone[data-v-7a5a071e]:hover,.link-standalone[data-v-7a5a071e]:focus-visible{color:var(--color-action)}.link-standalone:hover .label[data-v-7a5a071e]:after,.link-standalone:focus-visible .label[data-v-7a5a071e]:after{transform:scaleX(1)}footer[data-v-7ef02f16]{padding-inline:var(--gutter)}.foot[data-v-7ef02f16]{padding:var(--space-8) 0 var(--space-6);gap:var(--space-7);display:grid}.cols[data-v-7ef02f16]{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));display:grid}h2[data-v-7ef02f16]{margin:0 0 var(--space-2);font:var(--weight-bold) var(--text-sm) / var(--leading-snug) var(--font-body);color:var(--color-text-subtle)}ul[data-v-7ef02f16]{margin:0;padding:0;list-style:none;display:grid}small[data-v-7ef02f16]{font-size:var(--text-sm);color:var(--color-text-subtle)}.lang[data-v-6a0e10dc]{align-items:center;display:flex}a[data-v-6a0e10dc]{min-width:var(--target-min);min-height:var(--target-min);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.lang-header a[data-v-6a0e10dc]{color:var(--color-header-text);font-weight:var(--weight-medium);font-size:var(--text-ui)}.lang-header .sep[data-v-6a0e10dc]{color:var(--color-header-muted)}.lang-menu[data-v-6a0e10dc]{gap:var(--space-2);font-weight:var(--weight-bold)}.lang-menu a[data-v-6a0e10dc]{color:var(--color-text-muted)}.lang-menu a[aria-current][data-v-6a0e10dc]{color:var(--color-action)}.site-logo[data-v-02dcc7ca]{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--weight-regular);font-size:min(var(--text-logo), 5vw);line-height:var(--leading-none);white-space:nowrap;display:inline-flex}svg[data-v-02dcc7ca]{flex:none;width:1.5em;height:1.5em}.menu[data-v-cc542bb6]{pointer-events:auto;width:100%;max-width:none;height:100%;max-height:none;padding:var(--space-3) var(--gutter) var(--space-6);gap:var(--space-6);border:0;flex-direction:column;margin:0}.menu[open][data-v-cc542bb6]{display:flex}.top[data-v-cc542bb6]{min-height:var(--header-height);justify-content:space-between;align-items:center;display:flex}ul[data-v-cc542bb6]{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}ul a[data-v-cc542bb6]{min-height:var(--target-min);font-family:var(--font-display);font-size:var(--text-menu);line-height:var(--leading-display);color:var(--color-text);align-items:center;text-decoration:none;display:inline-flex}ul a[aria-current][data-v-cc542bb6]{color:var(--color-action)}.langs[data-v-cc542bb6]{margin-top:auto}.site-header[data-v-33c722b1]{z-index:20;padding-inline:var(--gutter);pointer-events:none;position:fixed;top:0;left:0;right:0}.bar[data-v-33c722b1]{--color-text:var(--color-header-text);--color-bg:var(--color-header-bg);--color-focus:var(--color-header-accent);--trace-color:var(--color-header-accent);pointer-events:auto;max-width:var(--container);align-items:center;gap:var(--space-4);min-height:var(--header-height);padding:var(--space-2) var(--gutter);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--color-header-bg);color:var(--color-header-text);transition:opacity var(--duration-base) var(--ease-out), translate var(--duration-base) var(--ease-out);margin:0 auto;display:flex}html.js[data-intro=pending] .bar[data-v-33c722b1]{translate:0 calc(-1 * var(--reveal-distance))}@media (prefers-reduced-motion:reduce){.bar[data-v-33c722b1]{transition-duration:var(--duration-reduced)}}.name[data-v-33c722b1]{min-height:var(--target-min);color:inherit;align-items:center;text-decoration:none;display:inline-flex}nav[data-v-33c722b1]{align-items:center;gap:var(--space-5);margin-left:auto;display:flex}nav a[data-v-33c722b1]{min-width:var(--target-min);min-height:var(--target-min);color:var(--color-header-text);font-weight:var(--weight-medium);font-size:var(--text-ui);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.bar .menu-button[data-v-33c722b1]{margin-left:auto;display:none}@media (width<=767px){nav[data-v-33c722b1],.langs[data-v-33c722b1]{display:none}.bar .menu-button[data-v-33c722b1]{display:inline-flex}}.skip[data-v-0c5a6868]{z-index:30;top:var(--space-3);left:max(var(--space-4), env(safe-area-inset-left,0px));min-height:var(--target-min);padding:0 var(--space-5);border-radius:var(--radius-pill);background:var(--color-action);color:var(--color-on-action);font:var(--weight-bold) var(--text-ui) / var(--leading-none) var(--font-body);transform:translateY(calc(-100% - var(--space-6)));transition:transform var(--duration-fast) var(--ease-out);align-items:center;text-decoration:none;display:inline-flex;position:fixed}.skip[data-v-0c5a6868]:focus{transform:none}@media (prefers-reduced-motion:reduce){.skip[data-v-0c5a6868]{opacity:0;transition:opacity var(--duration-reduced) var(--ease-out)}.skip[data-v-0c5a6868]:focus{opacity:1}}
