@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}*,:before,:after{box-sizing:border-box}*{margin:0}html{background-color:var(--color-bg);scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{min-height:100svh;color:var(--color-fg);font-family:var(--font-sans,system-ui, sans-serif);font-size:var(--step-0);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"case" 1;line-height:1.6}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}:where(h1,h2,h3,h4){letter-spacing:-.02em;text-wrap:balance;line-height:1.1}p{text-wrap:pretty}ul[role=list],ol[role=list]{padding:0;list-style:none}::selection{background-color:var(--color-selection)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}.u-container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{top:var(--space-s);left:var(--space-s);z-index:100;background:var(--color-fg);color:var(--color-bg);border-radius:var(--radius-sm);transition:transform var(--dur-fast) var(--ease-out);padding:.5rem 1rem;position:fixed;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.island-root,.scrim{transition:transform var(--dur-base) var(--ease-out)}html[data-chrome-hidden=true] .island-root,html[data-footer-visible=true] .island-root{transform:translateY(calc(100% + var(--island-offset) + 16px))}html[data-footer-visible=true] .scrim{opacity:0}html[data-chrome-hidden=true] .scrim{transform:translateY(100%)}html[data-sheet-open][data-footer-visible=true] .island-root{transform:none}@media (prefers-reduced-motion:no-preference){html.theme-transition,html.theme-transition *,html.theme-transition :before,html.theme-transition :after{transition:background-color var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard), fill var(--dur-base) var(--ease-standard)!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.island-root,.scrim{transition-duration:var(--dur-fast)!important}}.card-pill{z-index:2;border-radius:var(--radius-full);color:#fff;max-width:calc(50% - 16px);font-family:var(--font-sans);letter-spacing:-.01em;text-align:left;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;opacity:0;transform-origin:0 100%;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-out);background:#00000057;padding:7px 12px;font-size:13px;font-weight:500;line-height:1;position:absolute;bottom:10px;left:10px;overflow:hidden;transform:translateY(6px)scale(.96);box-shadow:inset 0 0 0 .5px #ffffff1a}.card-pill--kind{transform-origin:100% 100%;max-width:calc(50% - 16px);left:auto;right:10px}[data-card]:hover .card-pill,[data-card]:focus-visible .card-pill{opacity:1;transform:none}@media (hover:none){.card-pill{opacity:1;transform:none}}@keyframes pg-focus-in{0%{opacity:0;filter:blur(8px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:none}}@keyframes pg-focus-in-x{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.page-enter>*{animation:pg-focus-in .22s var(--ease-out) both}.page-enter>:first-child{animation-delay:0s}.page-enter>:nth-child(2){animation-delay:45ms}.page-enter>:nth-child(3){animation-delay:90ms}.page-enter>:nth-child(4){animation-delay:.135s}.page-enter>:nth-child(n+5){animation-delay:.18s}.page-enter>.work{animation:none}.u-reveal{animation:pg-focus-in .42s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}.page-enter>:has(.u-reveal){animation:none}.carousel__label{animation:pg-focus-in .22s var(--ease-out) both;animation-delay:var(--row-delay,0s)}.carousel__slide{--col:3;animation:pg-focus-in-x .24s var(--ease-out) both;animation-delay:calc(var(--row-delay,0s) + 40ms + var(--col) * 40ms)}.carousel__slide:first-child{--col:0}.carousel__slide:nth-child(2){--col:1}.carousel__slide:nth-child(3){--col:2}}::view-transition-group(root),::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}.island-root{view-transition-name:nav-island}::view-transition-group(nav-island){z-index:60;animation:none}::view-transition-old(nav-island){opacity:0;mix-blend-mode:normal;animation:none}::view-transition-new(nav-island){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:reduce){::view-transition-old(*),::view-transition-new(*){animation:none!important}}.page-lead h1,.prose h1,.case-study h1{font-family:var(--font-display);font-weight:500}.page-lead{padding-block:0 var(--space-2xl)}.page-lead h1{font-size:var(--step-4);margin-bottom:var(--space-s)}.page-lead p{max-width:48ch;color:var(--color-muted);font-size:var(--step-1)}.prose{padding-block:0 var(--space-xl);max-width:var(--container-narrow)}.prose h1{font-size:var(--step-4);margin-bottom:var(--space-m)}.prose h2{font-size:var(--step-2);margin-block:var(--space-l) var(--space-s)}.prose p{margin-bottom:var(--space-s)}.prose a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.post-list{gap:var(--space-l);margin-top:var(--space-l);flex-direction:column;display:flex}.post-list a{justify-content:space-between;align-items:baseline;gap:var(--space-s);font-size:var(--step-1);font-weight:500;display:flex}.post-list a:hover{color:var(--color-accent)}.post-list time{color:var(--color-faint);font-size:var(--step--1);font-variant-numeric:tabular-nums;white-space:nowrap}.post-list li>p{margin-top:var(--space-3xs);color:var(--color-muted)}.case-study{padding-block:var(--space-xl)}.case-study__eyebrow{color:var(--color-muted);font-size:var(--step--1);letter-spacing:.02em;text-transform:uppercase}.case-study h1{font-size:var(--step-5);margin-block:var(--space-2xs) var(--space-s)}.case-study__lede{font-size:var(--step-1);color:var(--color-muted);max-width:52ch}.case-study__note{margin-top:var(--space-l);color:var(--color-faint)}.case-study__back{margin-top:var(--space-l);color:var(--color-accent);display:inline-block}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.site-header[data-astro-cid-wzfd4wrd]{padding-block:21px var(--header-pad-bottom);justify-content:center;display:flex}.logo[data-astro-cid-wzfd4wrd]{color:var(--color-fg);border-radius:var(--radius-lg);transition:transform var(--dur-fast) var(--ease-out);display:inline-flex}.logo[data-astro-cid-wzfd4wrd]:hover{transform:translateY(-1px)}html[data-loader-running] .logo[data-astro-cid-wzfd4wrd]{visibility:hidden}.logo[data-astro-cid-wzfd4wrd]:active{transform:translateY(0)scale(.98)}.logo__mark[data-astro-cid-wzfd4wrd]{display:block}html[data-sheet-open] .scrim[data-astro-cid-kup4nsqq]{opacity:0}.scrim[data-astro-cid-kup4nsqq]{transition:opacity var(--dur-fast) var(--ease-out);inset-inline:0;height:calc(var(--island-offset) + var(--island-height) + 24px);z-index:var(--z-scrim);pointer-events:none;background:linear-gradient(to top, color-mix(in oklab, var(--color-scrim), transparent 78%) 0%, transparent 80%);position:fixed;bottom:0}.scrim__blur[data-astro-cid-kup4nsqq]{position:absolute;inset:0}.scrim__blur--1[data-astro-cid-kup4nsqq]{backdrop-filter:blur(1px)}.scrim__blur--2[data-astro-cid-kup4nsqq]{backdrop-filter:blur(3px);-webkit-mask-image:linear-gradient(#0000 25%,#000 55% 100%);mask-image:linear-gradient(#0000 25%,#000 55% 100%)}.scrim__blur--3[data-astro-cid-kup4nsqq]{backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(#0000 50%,#000 78% 100%);mask-image:linear-gradient(#0000 50%,#000 78% 100%)}.scrim__blur--4[data-astro-cid-kup4nsqq]{backdrop-filter:blur(12px);-webkit-mask-image:linear-gradient(#0000 75%,#000 100%);mask-image:linear-gradient(#0000 75%,#000 100%)}@supports not (backdrop-filter:blur(1px)){.scrim[data-astro-cid-kup4nsqq]{background:linear-gradient(to top, var(--color-scrim) 0%, color-mix(in oklab, var(--color-scrim), transparent 65%) 45%, transparent 100%)}}@media (prefers-reduced-transparency:reduce){.scrim__blur[data-astro-cid-kup4nsqq]{backdrop-filter:none}.scrim[data-astro-cid-kup4nsqq]{background:linear-gradient(to top, var(--color-scrim) 0%, color-mix(in oklab, var(--color-scrim), transparent 65%) 45%, transparent 100%)}}.island-root{inset-inline:0;bottom:var(--island-offset);z-index:var(--z-nav);pointer-events:none;justify-content:center;display:flex;position:fixed}@keyframes island-rise{0%{opacity:0;transform:translateY(110px)}to{opacity:1;transform:none}}.island{--island-button:44px;--island-inset:4px;--island-radius:calc((var(--island-button) + 2 * var(--island-inset)) / 2);--island-panel-padding:8px;pointer-events:auto;color:var(--island-fg);font-family:var(--font-sans);animation:.62s cubic-bezier(.2,1.22,.32,1) .12s both island-rise;display:flex;position:relative}.island>:not(.island__bg){z-index:1;position:relative}.island__bg{z-index:0;border-radius:var(--island-radius);background:var(--island-bg);box-shadow:inset 0 1px 1px var(--island-sheen), inset 0 -1px 2px var(--island-depth), 0 1px 2px oklch(0% 0 0/.12), var(--shadow-island);position:absolute;inset:0}.island svg{flex-shrink:0;width:20px;height:20px}.island-glyph{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.island-bar{padding:var(--island-inset);flex-direction:column;align-items:stretch;display:inline-flex}.island-bar__row{align-items:center;display:inline-flex}.island-slider{align-items:center;padding:10px 12px 6px;display:flex}.island-slider__control{flex:1;align-items:center;display:flex;position:relative}.island-slider__ticks{inset-inline:7px;pointer-events:none;justify-content:space-between;display:flex;position:absolute;top:50%;translate:0 -50%}.island-slider__ticks span{border-radius:var(--radius-full);background:color-mix(in srgb, var(--island-fg) 24%, transparent);width:3px;height:3px;transition:background-color var(--dur-fast) var(--ease-out)}.island-slider__ticks span[data-on=true]{background:color-mix(in srgb, var(--island-bg) 55%, transparent)}.island-slider input[type=range]{--pg-fill:50%;-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;height:16px}.island-slider input[type=range]:focus-visible{outline:2px solid var(--island-fg);outline-offset:4px;border-radius:var(--radius-full)}.island-slider input[type=range]::-webkit-slider-runnable-track{border-radius:var(--radius-full);background:linear-gradient(to right, var(--island-fg) 0 var(--pg-fill), color-mix(in srgb, var(--island-fg) 18%, transparent) var(--pg-fill) 100%);height:4px}.island-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);background:var(--island-fg);width:14px;height:14px;box-shadow:0 0 0 3px var(--island-bg), 0 1px 3px oklch(0% 0 0/.3);transition:transform var(--dur-fast) var(--ease-out);margin-top:-5px}@media (hover:hover) and (pointer:fine){.island-slider input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.18)}}.island-slider input[type=range]:active::-webkit-slider-thumb{transform:scale(1.18)}.island-slider input[type=range]::-moz-range-track{border-radius:var(--radius-full);background:color-mix(in srgb, var(--island-fg) 18%, transparent);height:4px}.island-slider input[type=range]::-moz-range-progress{border-radius:var(--radius-full);background:var(--island-fg);height:4px}.island-slider input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);background:var(--island-fg);width:14px;height:14px;box-shadow:0 0 0 3px var(--island-bg), 0 1px 3px oklch(0% 0 0/.3);border:none}.island-track{cursor:pointer;height:var(--island-button);align-items:flex-end;gap:3px;padding:0 10px 12px;display:flex;position:relative}.island-track__tick{--tick-scale:.62;border-radius:var(--radius-full);background:color-mix(in srgb, var(--island-fg) 26%, transparent);pointer-events:none;width:3px;height:21px;transform:scaleY(var(--tick-scale));transform-origin:bottom;transition:background-color .14s ease, transform .18s var(--ease-out);flex:none;position:relative}.island-track__tick[data-lead=true]{--tick-scale:1}.island-track__tick[data-on=true]{background:var(--island-fg)}.island-track__tick:focus-visible{outline-offset:2px;outline:2px solid}.island-track__tick[data-aimed=true]{--tick-scale:.85;background:var(--island-fg)}.island-track__tick[data-aimed=true][data-lead=true]{--tick-scale:1.3}.island-track__tip{border-radius:var(--radius-sm);background:var(--island-solid);color:var(--island-fg);font-family:var(--font-sans);letter-spacing:-.01em;white-space:nowrap;opacity:0;pointer-events:none;translate:calc(var(--tip-x,0px) - 50%) 4px;box-shadow:var(--shadow-md);transition:opacity var(--dur-fast) var(--ease-out), translate .19s var(--ease-out);padding:6px 10px;font-size:13px;font-weight:500;position:absolute;bottom:calc(100% + 10px);left:0}.island-track__tip[data-show=true]{opacity:1;translate:calc(var(--tip-x,0px) - 50%) 0}.island-view{display:inline-flex;position:relative}.island-view__inner{align-items:center;display:inline-flex}.island-icon{width:var(--island-button);height:var(--island-button);border-radius:var(--radius-full);color:var(--island-muted);transition:color var(--dur-fast) var(--ease-out), scale .18s cubic-bezier(.22, 1, .36, 1);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;scale:1}.island-icon[data-active=true]{color:var(--island-fg)}.island-peek{flex:none}.island-back{height:var(--island-button);border-radius:var(--radius-full);color:var(--island-muted);font-family:var(--font-sans);letter-spacing:-.01em;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out), scale .18s cubic-bezier(.22, 1, .36, 1);flex:none;align-items:center;padding-inline:14px;font-size:15px;font-weight:500;line-height:1;display:inline-flex;scale:1}.island-back:focus-visible,.island-icon:focus-visible,.island-row:focus-visible{outline-offset:-3px;outline:2px solid}.island-tip{border-radius:var(--radius-sm);background:var(--island-solid);color:var(--island-fg);font-family:var(--font-sans);letter-spacing:-.01em;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--shadow-md);transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);padding:6px 10px;font-size:13px;font-weight:500;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px)}.island-icon:focus-visible .island-tip{opacity:1;transform:translate(-50%)}@media (hover:hover) and (pointer:fine){.island-back:hover,.island-icon:hover,.island-row:hover{color:var(--island-fg)}.island-icon:hover .island-tip{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:no-preference){.island-back:active,.island-icon:active{transition-duration:.1s;transition-timing-function:cubic-bezier(.4,0,.2,1);scale:.95}.island-row:active{scale:.96}}.island-panel{width:min(268px,100vw - 32px);padding:var(--island-panel-padding);flex-direction:column;display:flex}.island-list{flex-direction:column;gap:4px;margin:10px 0 0;display:flex}.island-row{border-radius:calc(var(--island-radius) - var(--island-panel-padding));width:100%;min-height:40px;color:var(--island-muted);letter-spacing:-.01em;text-align:left;transition:color var(--dur-fast) var(--ease-out), scale .18s cubic-bezier(.22, 1, .36, 1);align-items:center;gap:8px;padding:10px 12px;font-size:15px;font-weight:500;line-height:20px;display:flex;scale:1}.island-row[data-active=true]{color:var(--island-fg)}.island-row__icon{flex:none;display:flex}.island-row__label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.island-theme{border-radius:var(--radius-full);background:color-mix(in srgb, var(--island-fg) 9%, transparent);grid-template-columns:1fr 1fr;gap:2px;padding:2px;display:grid}.island-theme__opt{border-radius:var(--radius-full);min-height:26px;color:var(--island-muted);font-family:var(--font-sans);letter-spacing:-.01em;cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;place-items:center;padding:0 8px;font-size:13px;font-weight:500;line-height:18px;display:grid;position:relative}.island-theme__opt[data-on=true]{color:var(--island-bg)}@media (hover:hover) and (pointer:fine){.island-theme__opt[data-on=false]:hover{color:var(--island-fg)}}.island-theme__opt:focus-visible{outline:2px solid var(--island-fg);outline-offset:2px}.island-theme__pill{border-radius:var(--radius-full);background:var(--island-fg);position:absolute;inset:0}.island-theme__face{white-space:nowrap;align-items:center;gap:6px;display:inline-flex;position:relative}@media (width<=720px){.island-theme__opt{min-height:34px;font-size:14px}}@media (prefers-reduced-motion:reduce){.island{animation:none}}@media (hover:none){.island{--island-button:48px;--island-panel-padding:12px}.island-panel{width:min(296px,100vw - 32px)}.island-row{min-height:44px;padding-block:12px}}@media (width<=720px){.island-slider{display:none}}#main[data-astro-cid-ju4pidww]{padding-bottom:clamp(7rem,14vh,11rem)}
