.ball[data-astro-cid-53txyhv7]{width:var(--ball-size);height:var(--ball-size);transform-origin:50% 100%;position:absolute}.ball-body[data-astro-cid-53txyhv7]{transform-origin:50% 100%;position:absolute;inset:0}.ball-lid[data-astro-cid-53txyhv7],.ball-base[data-astro-cid-53txyhv7]{border:var(--ball-line) solid var(--color-ink);height:50%;position:absolute;inset-inline:0}.ball-lid[data-astro-cid-53txyhv7]{background:var(--color-accent);transform-origin:0 100%;border-radius:50% 50% 0 0/100% 100% 0 0;top:0}.ball-base[data-astro-cid-53txyhv7]{background:var(--color-card);border-top:0;border-radius:0 0 50% 50%/0 0 100% 100%;bottom:0}.ball-knob[data-astro-cid-53txyhv7]{width:var(--ball-knob);height:var(--ball-knob);margin:calc(var(--ball-knob) / -2);border:var(--ball-line) solid var(--color-ink);background:var(--color-card);border-radius:50%;position:absolute;top:50%;left:50%}.ball-burst[data-astro-cid-53txyhv7]{border:var(--ball-line) solid var(--color-accent);opacity:0;border-radius:50%;position:absolute;inset:-12.5%}.footer[data-astro-cid-jo6i4kqk]{padding-block:var(--space-6) var(--space-12);font-family:var(--font-mono);font-size:var(--text-small);color:var(--color-muted)}.ruled[data-astro-cid-jo6i4kqk]{border-top:var(--hairline) solid var(--color-line);padding-block-start:var(--space-5)}ul[data-astro-cid-jo6i4kqk]{margin:0;padding:0;list-style:none}.columns[data-astro-cid-jo6i4kqk]{column-gap:var(--space-12);grid-template-columns:max-content minmax(0,max-content);display:grid}.name[data-astro-cid-jo6i4kqk]{color:var(--color-ink);margin:0}.name[data-astro-cid-jo6i4kqk],a[data-astro-cid-jo6i4kqk]{padding-block:var(--space-2)}a[data-astro-cid-jo6i4kqk]{overflow-wrap:anywhere;text-decoration:none;display:block}a[data-astro-cid-jo6i4kqk]:hover{text-decoration:underline;text-decoration-thickness:var(--hairline)}.built[data-astro-cid-jo6i4kqk]{margin-block-start:var(--space-4)}.legal[data-astro-cid-jo6i4kqk],.edited[data-astro-cid-jo6i4kqk]{margin:var(--space-2) 0 0}@media (width>=64rem){.ruled[data-astro-cid-jo6i4kqk]{padding-block-start:var(--space-6)}nav[data-astro-cid-jo6i4kqk]{align-items:baseline;column-gap:var(--space-6);padding-inline:var(--space-2);margin-inline:calc(-1 * var(--space-2));flex-wrap:wrap;display:flex;overflow-x:clip}.columns[data-astro-cid-jo6i4kqk],.columns[data-astro-cid-jo6i4kqk]>div[data-astro-cid-jo6i4kqk]{display:contents}ul[data-astro-cid-jo6i4kqk]{align-items:baseline;column-gap:var(--space-6);flex-wrap:wrap;display:flex}li[data-astro-cid-jo6i4kqk]{align-items:baseline;display:flex}li[data-astro-cid-jo6i4kqk]:before{content:"·";content:"·" / "";inline-size:var(--space-6);text-align:center;flex:none;margin-inline-start:calc(-1 * var(--space-6))}.name[data-astro-cid-jo6i4kqk],a[data-astro-cid-jo6i4kqk]{padding-block:var(--space-1)}.built[data-astro-cid-jo6i4kqk]{margin-block-start:0}.legal[data-astro-cid-jo6i4kqk]{margin-block-start:var(--space-4)}}.masthead[data-astro-cid-v3lsk6py]{align-items:center;gap:var(--space-5);padding-block:var(--space-4);display:flex}.wordmark[data-astro-cid-v3lsk6py]{font-size:var(--text-wordmark);line-height:var(--leading-wordmark);white-space:nowrap;text-decoration:none}.wordmark[data-astro-cid-v3lsk6py] .stop[data-armed]{touch-action:manipulation;position:relative}.wordmark[data-astro-cid-v3lsk6py] .stop[data-armed]:after{content:"";width:var(--space-6);height:var(--space-6);margin:calc(var(--space-6) / -2);position:absolute;top:50%;left:50%}.wordmark[data-astro-cid-v3lsk6py] .stop[data-out]{color:#0000}.wordmark[data-astro-cid-v3lsk6py] .stop .ball{margin-block-start:calc(var(--ball-size) * -1);margin-inline-start:calc(var(--ball-size) / -2);top:74%;left:50%}.caption[data-astro-cid-v3lsk6py]{z-index:1;top:calc(var(--y) + var(--space-8));left:max(var(--gutter), calc(var(--x) - var(--space-8)));padding:var(--space-2) var(--space-3);border:var(--hairline) solid var(--color-line);border-radius:var(--radius-md);background:var(--color-card);box-shadow:var(--shadow);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-small);white-space:nowrap;margin:0;position:absolute}.caption[data-astro-cid-v3lsk6py]:before{content:"";top:calc(var(--space-2) / -2);left:calc(min(var(--x) - var(--gutter), var(--space-8)) - var(--space-2) / 2 - var(--hairline));width:var(--space-2);height:var(--space-2);border-block-start:var(--hairline) solid var(--color-line);border-inline-start:var(--hairline) solid var(--color-line);background:var(--color-card);position:absolute;transform:rotate(45deg)}.nav[data-astro-cid-v3lsk6py]{gap:var(--space-4);font-weight:var(--medium-weight);margin-inline-start:auto;display:flex}.nav[data-astro-cid-v3lsk6py] a[data-astro-cid-v3lsk6py]{text-decoration:none}.nav[data-astro-cid-v3lsk6py] a[data-astro-cid-v3lsk6py]:hover{color:var(--color-accent-text)}.pill[data-astro-cid-v3lsk6py]{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:var(--hairline) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-card);color:var(--color-ink-soft);font-family:var(--font-mono);font-size:var(--text-mono-sm);overflow-wrap:anywhere;text-decoration:none;display:inline-flex}.pill[data-astro-cid-v3lsk6py]:hover{color:var(--color-accent-text)}.strip[data-astro-cid-v3lsk6py]{align-items:baseline;gap:var(--space-3);display:flex}.switch[data-astro-cid-v3lsk6py]{padding:var(--space-1) var(--space-2);border:var(--hairline) solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-card);color:var(--color-ink-soft);font-family:var(--font-mono);font-size:var(--text-mono-sm);flex:none;text-decoration:none;position:relative}@media (hover:hover){.switch[data-astro-cid-v3lsk6py]:hover{color:var(--color-accent-text)}}.switch[data-astro-cid-v3lsk6py][aria-pressed=true],:root[data-scheme=dark] .scheme[data-astro-cid-v3lsk6py]{border-color:var(--color-panel);background:var(--color-panel);color:var(--color-panel-ink)}.scheme[data-astro-cid-v3lsk6py]{margin:calc(var(--space-1) * -1) 0;font-weight:inherit;line-height:inherit;cursor:pointer}:root:not([data-scheme]) .scheme[data-astro-cid-v3lsk6py]{display:none}@media (pointer:coarse){.switch[data-astro-cid-v3lsk6py]:after{content:"";inset:calc(var(--space-2) * -1) 0;position:absolute}.scheme[data-astro-cid-v3lsk6py]:after{inset:calc(var(--space-3) * -1) 0 calc(var(--space-1) * -1)}}.dot[data-astro-cid-v3lsk6py]{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);background:var(--color-ok);flex:none;margin-block-start:calc((var(--leading-body) * var(--text-mono-sm) - var(--space-2)) / 2);position:relative}.dot[data-astro-cid-v3lsk6py]:after{content:"";border-radius:inherit;background:inherit;opacity:0;position:absolute;inset:0}:root[data-reduce=off] .masthead[data-astro-cid-v3lsk6py][data-inview] .dot[data-astro-cid-v3lsk6py]:after{animation:ring var(--duration-ring) var(--ease-ring) var(--runs-ring)}@media (width<=36rem){.masthead[data-astro-cid-v3lsk6py]{gap:var(--space-2) var(--space-4);flex-wrap:wrap}.masthead[data-astro-cid-v3lsk6py]:has(.pill){padding-block-end:0}.strip[data-astro-cid-v3lsk6py]{flex-basis:100%;order:1;justify-content:flex-end}.strip[data-astro-cid-v3lsk6py]:has(.pill){border-block-end:var(--hairline) solid var(--color-line)}.pill[data-astro-cid-v3lsk6py]{padding:var(--space-3) 0;background:0 0;border-width:0;border-radius:0;flex:1;align-items:baseline}.dot[data-astro-cid-v3lsk6py]{margin-block-start:0}}.preview-note[data-astro-cid-bhorzuur]{margin:0 0 var(--space-8);border-block-end:var(--hairline) solid var(--color-line);font-family:var(--font-mono);font-size:var(--text-label);color:var(--color-accent-2);padding-block-end:var(--space-3)}:root[data-motion] [data-reveal]{opacity:0}.masthead .stop{display:inline-block}:root[data-arrival=words] .masthead .stop,:root[data-arrival=blocks] .masthead .stop,:root[data-arrival=words] :is(.greeting,.sub,.actions,.spec,.spec dl>*){opacity:0}:root[data-arrival=words] .headline{visibility:hidden}:root[data-arrival=words] .hero{overflow-x:clip}.split-word{display:inline-block}:root[data-arrival=words] .split-word{opacity:0}.greeting .icon{transform-origin:70% 70%}:root[data-arrival=blocks] [data-arrive]>*{opacity:0}:root[data-motion][data-reduce=off] [data-tool]:not([data-ran]) [data-crosses]{z-index:1;transform:translateX(calc(-200% - 4 * var(--lane-inset) - 2 * var(--lane-gap)));box-shadow:var(--shadow);color:var(--color-ink);text-decoration:none;position:relative}:root[data-motion][data-reduce=off] [data-tool]:not([data-ran]) [data-crosses] .number{color:var(--color-accent-text);text-decoration:none}:root[data-motion][data-reduce=off] [data-tool]:not([data-ran]) [data-fill]{transform:translate(-100%)}:root[data-motion][data-reduce=off] [data-tool]:not([data-ran]) [data-line]{opacity:0}@keyframes ring{0%{opacity:.55;transform:scale(1)}70%,to{opacity:0;transform:scale(2.8)}}@keyframes blink{0%{opacity:0}to{opacity:1}}:root[data-reduce=off] [data-tool][data-inview] [data-cursor]{animation:blink var(--duration-cursor) var(--ease-cursor) var(--runs-cursor)}@supports (animation-timeline:view()){@media (width>=52rem){.hero{view-timeline:--hero block}:root[data-reduce=off][data-arrival=done] .hero .spec{animation:ride var(--ease-ride) both;animation-timeline:--hero;animation-range:exit}}}@keyframes ride{to{transform:translateY(calc(var(--ride) * -1))}}::view-transition-old(reel-play){animation:reel-leave var(--duration-reel-swap) var(--ease-reel-swap) both}@keyframes reel-leave{to{opacity:0;transform:scale(.6)}}:root:active-view-transition-type(scheme)::view-transition-group(*){animation:none}:root:active-view-transition-type(scheme)::view-transition-old(*){animation:fade-out var(--duration-page-in) var(--ease-fade) both;mix-blend-mode:plus-lighter}:root:active-view-transition-type(scheme)::view-transition-new(*){animation:fade-in var(--duration-page-in) var(--ease-fade) both;mix-blend-mode:plus-lighter}main[data-swap=out]{animation:fade-out var(--duration-plain-out) var(--ease-fade) both}main[data-swap=page]{animation:fade-in var(--duration-plain-in) var(--ease-fade) both}main[data-swap=panel]>.plain-version{animation:plain-in var(--duration-plain) var(--ease-plain) both}:root[data-reduce=on] main[data-swap=panel]>.plain-version{animation:fade-in var(--duration-plain-in) var(--ease-fade) both}@keyframes plain-in{0%{opacity:0;transform:translateY(var(--rise-plain))}}main[data-swap=morph]{position:relative}[data-morph]{pointer-events:none;z-index:1;height:100%;position:absolute;top:0;overflow-x:clip}[data-morph]>*{position:absolute}[data-morph] .plain-version{box-shadow:none;background:0 0}[data-morph] pre>span{transform-origin:0 0}[data-copies]{display:contents}[data-travelling]{visibility:hidden!important}[data-travelling=words] [aria-hidden=true]{visibility:visible}[data-copy=words] [aria-hidden=true],:root[data-opens-plain] main{visibility:hidden}[data-door=agents]{view-transition-name:door-agents}[data-door=design-systems]{view-transition-name:door-design-systems}[data-door=product-engineering]{view-transition-name:door-product-engineering}[data-door]{view-transition-class:door}:root[data-reduce=on] [data-door],:root[data-motion] [data-door][data-reveal]:not([data-shown]),:root[data-arrival=blocks] [data-arrive]>[data-door]{view-transition-name:none}:root:active-view-transition-type(page)::view-transition-group(.door){animation-duration:var(--duration-door);animation-timing-function:var(--ease-door)}:root:active-view-transition-type(page)::view-transition-old(.door){animation:fade-out var(--duration-door-out) var(--ease-fade) both;mix-blend-mode:plus-lighter}:root:active-view-transition-type(page)::view-transition-new(.door){animation:fade-in var(--duration-door-in) var(--ease-fade) var(--delay-door-in) both;mix-blend-mode:plus-lighter}:root:active-view-transition-type(page)::view-transition-old(root){animation:fade-out var(--duration-page-out) var(--ease-fade) both;mix-blend-mode:plus-lighter}:root:active-view-transition-type(page)::view-transition-new(root){animation:fade-in var(--duration-page-in) var(--ease-fade) both;mix-blend-mode:plus-lighter}.masthead{view-transition-name:masthead}:root:active-view-transition-type(page)::view-transition-group(masthead){animation:none}:root:active-view-transition-type(page)::view-transition-old(masthead){opacity:0;animation:none}:root:active-view-transition-type(page)::view-transition-new(masthead){opacity:1;animation:none}:root[data-grown] [data-arrive]>:not([data-door]){animation:fade-in var(--duration-door-in) var(--ease-fade) var(--duration-door-landed) both}@keyframes fade-out{to{opacity:0}}@keyframes fade-in{0%{opacity:0}}@media print{@page{size:A4;margin:var(--print-margin)}:root{--color-panel:transparent!important;--color-panel-ink:var(--color-ink)!important;--color-panel-muted:var(--color-muted)!important;--color-panel-line:var(--color-line)!important;--color-panel-ok:var(--color-ink)!important;--color-panel-value:var(--color-ink)!important;--color-accent-ink:var(--color-ink)!important}.panel{border:var(--hairline) solid var(--color-line-strong)}:root:not(:has(.cv)){font-size:var(--text-print-root)}main>article{max-width:none!important}.prose img{width:auto;max-height:var(--print-image-height)}*{view-transition-name:none!important;box-shadow:none!important}body>:not(main,footer){display:none!important}body{display:block!important}.measure{padding-inline:0!important}main{padding-block:0!important}body>footer ul{display:none!important}body>footer{break-inside:avoid;padding-block:var(--space-8) 0!important}[data-arrive]>*,[data-reveal],[data-deal] .testimonial,.hero :is(.greeting,.greeting .icon,.sub,.actions,.spec,.spec dl>*,.split-word){opacity:1!important;transform:none!important}.hero .headline{visibility:visible!important}[data-tool] :is([data-crosses],[data-fill],[data-line]){opacity:1!important;transform:var(--tool-rest,none)!important}main a[href]:not([href^=\#],[href^=mailto\:],[data-written-out],.plain-version a):after{content:" (" var(--printed-host,"") attr(href) ")";font-family:var(--font-mono);font-size:var(--text-small);color:var(--color-muted);overflow-wrap:anywhere}main a[href^=\/]:not([href^="//"]){--printed-host:var(--site-host)}h1,h2,h3,h4{break-after:avoid;break-inside:avoid}.card,.stat,.testimonial,.panel:not(.plain-version),.hello{break-inside:avoid}.reel :is(.play,.tag){display:none!important}}
