video[data-video-light-mp4="/videos/canpol/light/hero.mp4"]{--case-video-poster-light:url(/videos/canpol/light/hero.webp);--case-video-poster-dark:url(/videos/canpol/dark/hero.webp)}video[data-video-light-mp4="/videos/canpol/light/two-devices.mp4"]{--case-video-poster-light:url(/videos/canpol/light/two-devices.webp);--case-video-poster-dark:url(/videos/canpol/dark/two-devices.webp)}video[data-video-light-mp4="/videos/canpol/light/connection.mp4"]{--case-video-poster-light:url(/videos/canpol/light/connection.webp);--case-video-poster-dark:url(/videos/canpol/dark/connection.webp)}video[data-video-light-mp4="/videos/canpol/light/session.mp4"]{--case-video-poster-light:url(/videos/canpol/light/session.webp);--case-video-poster-dark:url(/videos/canpol/dark/session.webp)}video[data-video-light-mp4="/videos/kcalmar/light/hero.mp4"]{--case-video-poster-light:url(/videos/kcalmar/light/hero.webp);--case-video-poster-dark:url(/videos/kcalmar/dark/hero.webp)}video[data-video-light-mp4="/videos/kcalmar/light/meal-edit.mp4"]{--case-video-poster-light:url(/videos/kcalmar/light/meal-edit.webp);--case-video-poster-dark:url(/videos/kcalmar/dark/meal-edit.webp)}video[data-video-light-mp4="/videos/kcalmar/light/patient-mobile-day.mp4"]{--case-video-poster-light:url(/videos/kcalmar/light/patient-mobile-day.webp);--case-video-poster-dark:url(/videos/kcalmar/dark/patient-mobile-day.webp)}video[data-video-light-mp4="/videos/kcalmar/light/patient-web-dish.mp4"]{--case-video-poster-light:url(/videos/kcalmar/light/patient-web-dish.webp);--case-video-poster-dark:url(/videos/kcalmar/dark/patient-web-dish.webp)}video[data-video-light-mp4="/videos/kcalmar/light/patient-mobile-shopping.mp4"]{--case-video-poster-light:url(/videos/kcalmar/light/patient-mobile-shopping.webp);--case-video-poster-dark:url(/videos/kcalmar/dark/patient-mobile-shopping.webp)}.case-comparison[data-image-comparison]{--clip:50%}.case-comparison[data-image-comparison] .case-comparison__right{clip-path:inset(0 0 0 var(--clip));inset:0}.case-comparison[data-image-comparison] .case-comparison__right .case-comparison__image--right{width:100%;inset:0}.case-comparison[data-image-comparison] .case-comparison__divider{pointer-events:none;inset-inline-start:var(--clip)}.case-comparison__divider span{border:1px solid var(--border);background:var(--background);width:44px;height:44px;color:var(--muted-foreground);border-radius:50%;place-items:center;font-size:24px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.case-comparison__range{z-index:1;inset-inline:0;appearance:none;cursor:ew-resize;touch-action:pan-y;background:0 0;border:0;width:100%;height:44px;margin:0;position:absolute;top:50%;transform:translateY(-50%)}.case-comparison__range::-webkit-slider-runnable-track{background:0 0;height:44px}.case-comparison__range::-webkit-slider-thumb{appearance:none;background:0 0;border:0;width:44px;height:44px}.case-comparison__range::-moz-range-track{background:0 0;height:44px}.case-comparison__range::-moz-range-thumb{background:0 0;border:0;width:44px;height:44px}.case-comparison__range:focus-visible{outline:2px solid var(--ring);outline-offset:-3px}.case-media__caption-link[data-astro-cid-upxrdtxl]{min-height:var(--control-target-min);margin-top:var(--spacing-1);justify-content:center;align-items:center;display:flex}.case-media[data-astro-cid-upxrdtxl] .case-media__image--dark[data-astro-cid-upxrdtxl],:root[data-theme=dark] .case-media__image--light[data-astro-cid-upxrdtxl]{display:none}:root[data-theme=dark] .case-media__image--dark[data-astro-cid-upxrdtxl]{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme]) .case-media__image--light[data-astro-cid-upxrdtxl]{display:none}:root:not([data-theme]) .case-media__image--dark[data-astro-cid-upxrdtxl]{display:block}}.nda-media__canvas[data-astro-cid-6bna3cpn]{border:1px solid var(--border);border-radius:var(--radius-xl,20px);background:var(--muted);color:var(--muted-foreground);position:relative;overflow:hidden}.nda-media__canvas[data-astro-cid-6bna3cpn] svg[data-astro-cid-6bna3cpn]{width:100%;height:auto;display:block}.nda-media__label[data-astro-cid-6bna3cpn]{text-align:center;font:400 14px/1.5 var(--font-mono);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.case-study{width:min(calc(100% - 2 * var(--layout-page-gutter)), var(--case-width-media));gap:var(--case-gap-page);padding-block:var(--case-padding-start) var(--case-padding-end);color:var(--color-text);flex-direction:column;margin-inline:auto;display:flex;position:relative}.case-prose{width:min(100%, var(--case-width-prose));margin-inline:auto}.case-opening{gap:var(--case-gap-opening);flex-direction:column;display:flex}.case-opening h1{max-width:none;color:var(--color-text);font-family:var(--font-sans);margin:0;font-weight:500}.case-intro,.case-facts dd,.case-copy p,.case-media figcaption{color:var(--color-text-muted);font-family:var(--font-mono);font-weight:400}.case-intro{margin:0}.case-media figcaption,.case-navigation__next>p{font-size:.875rem;line-height:1.25rem}.case-intro,.case-facts dd,.case-copy p{font-size:1rem;line-height:1.5rem}.case-facts{gap:var(--case-gap-facts);flex-direction:column;margin:0;display:flex}.case-fact{gap:var(--case-gap-fact);flex-direction:column;display:flex}.case-facts dt{color:var(--color-text);font-family:var(--font-sans);font-size:1.125rem;font-weight:500;line-height:1.5rem}.case-facts dd{margin:0}.case-section{gap:var(--case-gap-section);scroll-margin-top:var(--space-24);flex-direction:column;display:flex}.case-copy{gap:var(--case-gap-copy);flex-direction:column;display:flex}.case-copy h2{color:var(--color-text);font-family:var(--font-sans);letter-spacing:-.018em;text-wrap:balance;margin:0;font-size:1.5rem;font-weight:500;line-height:2rem}.case-copy p{text-wrap:pretty;margin:0}.case-copy strong{font-weight:600}.case-section__media{gap:var(--case-gap-section);width:100%;display:grid}.case-media{width:100%;max-width:var(--case-width-media);gap:var(--case-gap-media);flex-direction:column;margin:0 auto;display:flex}.case-media img,.case-media video{border-radius:var(--case-radius-media);width:100%;height:auto;display:block}.case-media video{background-color:var(--background)}.case-media video[data-video-light-poster]{background-image:var(--case-video-poster-light);background-position:50%;background-repeat:no-repeat;background-size:contain}.case-media__controls{min-height:var(--control-target-min);align-items:center;display:flex}.case-media__video-control{min-width:var(--control-target-min);min-height:var(--control-target-min);padding-inline:var(--space-12);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--surface);color:var(--color-text-muted);cursor:pointer;font-family:var(--font-sans);justify-content:center;align-items:center;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}.case-media__video-control[hidden]{display:none}.case-media__video-control:hover,.case-media__video-control:focus-visible{color:var(--color-text)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .case-media video[data-video-dark-poster]{background-image:var(--case-video-poster-dark)}}.case-media figcaption{width:min(100%, var(--case-width-prose));margin:0 auto}.case-comparison{border-radius:var(--case-radius-media);width:100%;position:relative;overflow:hidden}.case-comparison__right{position:absolute;inset:0 0 0 50%;overflow:hidden}.case-comparison__right .case-comparison__image--right{border-radius:0;width:200%;max-width:none;height:auto;position:absolute;inset-block-start:0;inset-inline-start:-100%}.case-comparison__divider{background:var(--color-background);width:2px;position:absolute;inset-block:0;inset-inline-start:calc(50% - 1px)}.case-link{width:fit-content;min-height:var(--control-target-min);color:var(--color-text-muted);font-family:var(--font-sans);align-items:center;font-size:.875rem;font-weight:500;line-height:1.25rem;text-decoration:none;display:inline-flex}.case-link:hover{color:var(--color-text);text-decoration:underline}.case-navigation__next>p{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;line-height:1.25rem}.case-navigation{gap:var(--space-24);width:100%;padding-top:var(--case-navigation-padding);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.case-navigation__links{min-height:var(--control-target-min);justify-content:space-between;align-items:center;gap:var(--space-16);display:flex}.case-navigation__next{gap:var(--space-12);flex-direction:column;display:flex}.case-navigation__next>a{min-height:var(--control-target-min);color:var(--color-text);font-family:var(--font-sans);text-wrap:balance;align-items:center;font-size:1.5rem;font-weight:500;line-height:2rem;text-decoration:none;display:inline-flex}.case-navigation__next>a:hover{text-decoration:underline}@media (width<=42.25rem){.case-study{gap:var(--case-gap-page-mobile);padding-block:var(--case-padding-start-mobile) var(--case-padding-end)}.case-copy h2,.case-navigation__next>a{font-size:1.375rem;line-height:1.875rem}}.case-intro,.case-media figcaption{text-wrap:pretty}.case-media img[width="3840"][height="2460"]{aspect-ratio:3840/2460}:root[data-theme=dark] .case-media video[data-video-dark-poster]{background-image:var(--case-video-poster-dark)}:root[data-theme] .case-media video[data-case-video]:not([poster]){background-image:none}html[data-theme-transition=peel] .case-media video[poster]{object-position:-9999px}.case-media:has(>video[data-case-video]){grid-template-columns:minmax(0,1fr);display:grid}.case-media:has(>video[data-case-video]):before{z-index:0;border:1px solid var(--border-media);border-radius:calc(var(--case-radius-media) + 6px);background:var(--surface);content:"";pointer-events:none;grid-area:1/1}.case-media:has(>video[data-case-video])>video[data-case-video]{z-index:1;border-radius:var(--case-radius-media);grid-area:1/1;width:calc(100% - 1rem);margin:.5rem;position:relative}.case-media:has(>video[data-case-video])>.case-media__entry-poster{z-index:0;border-radius:var(--case-radius-media);pointer-events:none;grid-area:1/1;width:calc(100% - 1rem);margin:.5rem;overflow:hidden}.case-media:has(>video[data-case-video]:not([data-video-ready]):not([poster]))>video[data-case-video]{z-index:1;background-color:#0000}.case-media__entry-poster-image{border-radius:var(--case-radius-media);width:100%;height:auto}.case-media__entry-poster-image--dark,:root[data-theme=dark] .case-media__entry-poster-image--light{display:none}:root[data-theme=dark] .case-media__entry-poster-image--dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme]) .case-media__entry-poster-image--light{display:none}:root:not([data-theme]) .case-media__entry-poster-image--dark{display:block}}.case-media:has(>video[data-case-video][poster])>.case-media__entry-poster{display:none}.case-media:has(>video[data-case-video]) .case-media__controls{z-index:2;pointer-events:none;grid-area:1/1;place-self:end;min-height:0;margin:.875rem}.case-media:has(>video[data-case-video]) figcaption{grid-area:2/1}.case-media__video-control{width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;color:var(--muted-foreground);box-shadow:none;cursor:pointer;pointer-events:auto;background:0 0;border:0;border-radius:0;padding:0;font-size:0;line-height:0;position:relative}.case-media__video-control:before,.case-media__video-control:after{content:"";transition:transform .15s cubic-bezier(.16,1,.3,1),background-color .15s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.case-media__video-control:before{border:1px solid var(--border-media);background:var(--background);width:1.75rem;height:1.75rem;box-shadow:none;border-radius:999px}.case-media__video-control:after{background:currentColor;width:1rem;height:1rem;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.case-media__video-control[data-video-control-state=play]:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 2.3v11.4L13 8z' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 2.3v11.4L13 8z' fill='black'/%3E%3C/svg%3E")}.case-media__video-control[data-video-control-state=pause]:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 2.5h3v11h-3zm6 0h3v11h-3z' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 2.5h3v11h-3zm6 0h3v11h-3z' fill='black'/%3E%3C/svg%3E")}.case-media__video-control[data-video-control-state=replay]:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.1 4.2A5.3 5.3 0 1 1 2.7 8h1.8a3.5 3.5 0 1 0 1-2.5L7 7H2V2l2.1 2.2Z' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.1 4.2A5.3 5.3 0 1 1 2.7 8h1.8a3.5 3.5 0 1 0 1-2.5L7 7H2V2l2.1 2.2Z' fill='black'/%3E%3C/svg%3E")}.case-media__video-control:focus-visible{outline:2px solid var(--ring);outline-offset:1px}@media (hover:hover) and (pointer:fine){.case-media__video-control:hover:before{background:var(--surface)}.case-media__video-control:hover:before,.case-media__video-control:hover:after{transform:translate(-50%,-50%)scale(1.06)}}.case-media__video-control:active:before,.case-media__video-control:active:after{transform:translate(-50%,-50%)scale(.94)}@media (forced-colors:active){.case-media__video-control:after{forced-color-adjust:none;background:buttontext}}@media (prefers-reduced-motion:reduce){.case-media__video-control:before,.case-media__video-control:after{transition:none}.case-media__video-control:hover:before,.case-media__video-control:hover:after,.case-media__video-control:active:before,.case-media__video-control:active:after{transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:no-preference){html[data-nav-smooth]{scroll-behavior:smooth}}.case-study-shell{--case-index-top:calc(var(--case-index-header-height) + var(--layout-section-space) - (var(--control-target-min) - var(--case-index-back-leading)) / 2);--case-index-back-leading:1.25rem;--case-index-header-height:calc(4rem + 1px);width:min(calc(100% - 2 * var(--layout-page-gutter)), var(--case-width-media));margin-inline:auto;position:relative}.case-study-shell>.case-study{width:100%}.case-index-wrap{color:var(--color-text);font-family:var(--font-sans);font-size:.875rem;line-height:1.25rem}.case-index__back{min-height:var(--control-target-min);color:var(--color-text-muted);align-items:center;text-decoration:none;display:inline-flex}.case-index__back:hover,.case-index__back:focus-visible,.case-index a:hover,.case-index a:focus-visible{color:var(--color-text);text-decoration:underline}.case-index__back-label{line-height:var(--case-index-back-leading,1.25rem);display:block}.case-index__back:focus-visible,.case-index a:focus-visible,.case-index summary:focus-visible,.case-index__trigger:focus-visible{outline:3px solid var(--selection-foreground);outline-offset:2px}.case-index__trigger{display:none}.case-index__sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.case-index summary{min-height:var(--control-target-min);color:var(--color-text-muted);cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;font-size:.75rem;line-height:var(--control-target-min);text-transform:uppercase;margin:0}.case-index__panel{padding-block:var(--space-12)}.case-index ol{padding:var(--space-8) 0 0;margin:0;list-style:none}.case-index li,.case-index nav,.case-index a{min-width:0}.case-index [data-case-index-link]{min-height:var(--control-target-min);color:var(--color-text-muted);align-items:center;text-decoration:none;display:flex}.case-index [aria-current=location]{color:var(--color-text);font-weight:500}@media (width<=89.99rem),(hover:none),(pointer:coarse){.case-study-shell{padding-top:var(--case-padding-start)}.case-study-shell>.case-study{padding-top:var(--space-24)}.case-index-wrap{width:min(100%, var(--case-width-prose));padding-block:var(--space-16);border-block:1px solid var(--color-border);margin-inline:auto}.case-index__back{margin-bottom:var(--space-8)}.case-index__label{overflow-wrap:anywhere}}@media (width<=42.5rem){.case-study-shell{padding-top:var(--case-padding-start-mobile)}}@media (width>=90rem) and (hover:hover) and (pointer:fine){.case-study-shell>.case-study{padding-top:calc(var(--case-index-top) + (var(--control-target-min) - var(--case-index-back-leading)) / 2 - var(--case-index-header-height))}.case-index-wrap[data-enhanced][data-custom-desktop]{z-index:20;top:var(--case-index-top);width:12.5rem;position:fixed;left:1.5rem}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__back{width:max-content;height:2.75rem;min-height:2.75rem;font-size:.8125rem}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__surface{pointer-events:none;visibility:hidden;width:12.5rem;height:13.75rem;margin-top:.25rem;transition:visibility 0s linear .16s;position:relative}.case-index-wrap[data-enhanced][data-custom-desktop][data-nav-visible] .case-index__surface{pointer-events:auto;visibility:visible;transition-delay:0s}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__trigger{z-index:2;width:2.75rem;height:5rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;padding:0;display:block;position:absolute;top:0;left:0}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__tracks{pointer-events:none;display:block;position:absolute;inset:0}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__track{opacity:0;width:.75rem;height:1.5px;translate:0 .375rem;transform:translateY(calc(var(--toc-index) * .625rem));transform-origin:0;background:currentColor;transition:transform .3s cubic-bezier(.16,1,.3,1),width .2s cubic-bezier(.77,0,.175,1),opacity .16s cubic-bezier(.23,1,.32,1),translate .16s cubic-bezier(.23,1,.32,1);position:absolute;top:.25rem;left:0}.case-index-wrap[data-enhanced][data-custom-desktop][data-nav-visible]:not([data-open]) .case-index__track{opacity:.45;transition:transform .3s cubic-bezier(.16, 1, .3, 1), width .2s cubic-bezier(.77, 0, .175, 1), opacity .36s cubic-bezier(.33, 1, .68, 1) var(--toc-cascade-delay), translate .36s cubic-bezier(.33, 1, .68, 1) var(--toc-cascade-delay);translate:0}.case-index-wrap[data-enhanced][data-custom-desktop][data-nav-visible]:not([data-open]) .case-index__track[data-adjacent]{opacity:.65;width:1rem}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__marker{background:var(--color-text);clip-path:inset(1px 0);opacity:0;width:1.375rem;height:.25rem;transition:transform .2s cubic-bezier(.77,0,.175,1),clip-path .2s cubic-bezier(.16,1,.3,1),opacity .16s cubic-bezier(.23,1,.32,1),translate .16s cubic-bezier(.23,1,.32,1);position:absolute;top:.1875rem;left:0;transform:translateY(0)}.case-index-wrap[data-enhanced][data-custom-desktop][data-nav-visible] .case-index__marker{opacity:1;transition:transform .2s cubic-bezier(.77, 0, .175, 1), clip-path .2s cubic-bezier(.16, 1, .3, 1), opacity .36s cubic-bezier(.33, 1, .68, 1) var(--toc-cascade-delay,0s), translate .36s cubic-bezier(.33, 1, .68, 1) var(--toc-cascade-delay,0s);translate:0}.case-index-wrap[data-enhanced][data-custom-desktop][data-nav-visible][data-nav-reversing] .case-index__track,.case-index-wrap[data-enhanced][data-custom-desktop][data-nav-visible][data-nav-reversing] .case-index__marker{transition-delay:0s}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index{display:block}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index>summary{display:none}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__panel{z-index:1;pointer-events:none;visibility:hidden;width:12.5rem;padding:0;transition:visibility 0s linear .2s;position:absolute;top:0;left:0}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index ol{gap:.25rem;padding:0;display:grid}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index li{height:1.5rem}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index [data-case-index-link]{white-space:nowrap;width:12.5rem;height:1.5rem;min-height:1.5rem;padding-left:1.5rem;font-size:.8125rem;line-height:1rem}.case-index-wrap[data-enhanced][data-custom-desktop] .case-index__label{opacity:0;text-overflow:clip;filter:blur(4px);max-width:10.75rem;transition:opacity .2s ease-out,transform .2s ease-out,filter .2s ease-out,translate .2s cubic-bezier(.77,0,.175,1);display:block;overflow:hidden;transform:translate(-.25rem)}.case-index-wrap[data-enhanced][data-custom-desktop]:not([data-nav-visible]) .case-index__label{transition:opacity .16s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1),filter .16s cubic-bezier(.23,1,.32,1),translate .16s cubic-bezier(.23,1,.32,1)}.case-index-wrap[data-enhanced][data-custom-desktop][data-open] .case-index__panel{pointer-events:auto;visibility:visible;transition-delay:0s}.case-index-wrap[data-enhanced][data-custom-desktop][data-open] .case-index__trigger{width:1.5rem;height:13.75rem}.case-index-wrap[data-enhanced][data-custom-desktop][data-open] .case-index__track{opacity:0;translate:0;transform:translateY(calc(.4375rem + var(--toc-index) * 1.75rem));transition-delay:0s}.case-index-wrap[data-enhanced][data-custom-desktop][data-open] .case-index__marker{clip-path:inset(0 1.125rem 0 0)}.case-index-wrap[data-enhanced][data-custom-desktop][data-open] .case-index__label{opacity:1;filter:blur();transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),filter .4s cubic-bezier(.16,1,.3,1),translate .2s cubic-bezier(.77,0,.175,1);transform:translate(0)}.case-index-wrap[data-enhanced][data-custom-desktop][data-open] [data-case-index-link][aria-current=location] .case-index__label{translate:.25rem}.case-index-wrap[data-enhanced][data-custom-desktop][data-instant] *,.case-index-wrap[data-enhanced][data-custom-desktop][data-instant] :before,.case-index-wrap[data-enhanced][data-custom-desktop][data-instant] :after{transition-duration:0s!important;transition-delay:0s!important}}@media (prefers-reduced-motion:reduce){.case-index-wrap *,.case-index-wrap :before,.case-index-wrap :after{transition-duration:0s!important;transition-delay:0s!important}.case-index__label{filter:none!important}}.case-end-comparison{width:100%;max-width:var(--case-width-media);margin:0 auto}.case-end-comparison__overlay{z-index:2;aspect-ratio:16/9;border-radius:var(--case-radius-media);background:var(--background);grid-area:1/1;width:calc(100% - 1rem);margin:.5rem;position:relative;overflow:hidden}.case-end-comparison[data-pair-visible=true] video{opacity:0}.case-end-comparison .case-media .case-media__controls{z-index:3}.case-end-comparison__layer{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.case-end-comparison__dark-side{clip-path:inset(0 0 0 var(--clip,50%));background:var(--background);position:absolute;inset:0;overflow:hidden}.case-end-comparison__divider{inset-block:0;left:var(--clip,50%);background:var(--background);border-inline:1px solid var(--muted-foreground);pointer-events:none;width:2px;position:absolute}.case-end-comparison__divider span{border:1px solid var(--border);background:var(--background);width:44px;height:44px;color:var(--muted-foreground);border-radius:50%;place-items:center;font-size:24px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.case-end-comparison__range{z-index:1;inset-inline:0;-webkit-appearance:none;appearance:none;width:100%;height:44px;box-shadow:none;cursor:ew-resize;touch-action:pan-y;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;margin:0;position:absolute;top:50%;transform:translateY(-50%)}.case-end-comparison__range::-webkit-slider-runnable-track{-webkit-appearance:none;appearance:none;height:44px;box-shadow:none;background:0 0;border:0}.case-end-comparison__range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:44px;height:44px;box-shadow:none;background:0 0;border:0;border-radius:0}.case-end-comparison__range::-moz-range-track{background:0 0;height:44px}.case-end-comparison__range::-moz-range-thumb{background:0 0;border:0;width:44px;height:44px}.case-end-comparison__range:focus-visible{outline:2px solid var(--ring);outline-offset:-3px}.case-end-comparison__legend{pointer-events:none;justify-content:space-between;gap:16px;font-size:.75rem;display:flex;position:absolute;inset:12px 12px auto}.case-end-comparison__legend span{background:var(--background);color:var(--muted-foreground);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.case-end-comparison .case-media{position:relative}.case-end-comparison [data-a-status]{z-index:3;background:var(--background);max-width:calc(100% - 2rem);color:var(--muted-foreground);pointer-events:none;border-radius:6px;margin:0;padding:6px 8px;font-size:.75rem;line-height:1.5;position:absolute;top:1rem;left:1rem}.case-end-comparison[data-pair-ready=true] [data-a-status]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;overflow:hidden}.case-end-comparison__status{color:var(--muted-foreground);font-size:.875rem;line-height:1.5}.case-end-comparison .still-noscript{gap:16px;display:grid}.case-end-comparison .still-noscript figure{background:var(--background);margin:0}.case-end-comparison .still-noscript img{width:100%;height:auto;display:block}.case-end-comparison [hidden]{display:none!important}.github-calendar{--github-neutral:#f2f2f2;--github-level-1:oklch(90% .03 264.87);--github-level-2:oklch(80% .07 264.87);--github-level-3:oklch(66% .13 264.87);--github-level-4:oklch(52% .18 264.87);min-width:0;padding-block:var(--spacing-8)}#playground:has(>.github-calendar){min-width:0}:root[data-theme=dark] .github-calendar{--github-neutral:#131313;--github-level-1:oklch(21.9% .043 264.87);--github-level-2:oklch(28.7% .073 264.87);--github-level-3:oklch(36.8% .114 264.87);--github-level-4:oklch(46.3% .159 264.87)}.github-calendar__header{justify-content:space-between;align-items:end;gap:var(--spacing-4);flex-wrap:wrap;display:flex}.github-calendar__header h3{margin-top:var(--spacing-2);font-size:clamp(1.4375rem,3vw,1.875rem)}.github-calendar--compact .github-calendar__header{justify-content:start;gap:var(--spacing-1);display:grid}.github-calendar--compact .github-calendar__header h3{margin-top:0}.github-calendar__subtitle{color:var(--muted-foreground)}.github-calendar p{font-size:.875rem;line-height:1.5714}.github-calendar__eyebrow{color:var(--muted-foreground);font:400 .75rem/1.25rem var(--font-mono)}.github-calendar__total{font-variant-numeric:tabular-nums}.github-calendar__scroll{padding-block:var(--spacing-4);overflow-x:auto}.github-calendar__svg{width:100%;min-width:720px;height:auto;display:block}.github-calendar__svg rect{fill:var(--github-day-color);stroke:var(--border);stroke-width:.5px}.github-calendar__svg [data-level="0"],.github-calendar__legend [data-level="0"]{--github-day-color:var(--github-neutral)}.github-calendar__svg [data-level="1"],.github-calendar__legend [data-level="1"]{--github-day-color:var(--github-level-1)}.github-calendar__svg [data-level="2"],.github-calendar__legend [data-level="2"]{--github-day-color:var(--github-level-2)}.github-calendar__svg [data-level="3"],.github-calendar__legend [data-level="3"]{--github-day-color:var(--github-level-3)}.github-calendar__svg [data-level="4"],.github-calendar__legend [data-level="4"]{--github-day-color:var(--github-level-4)}.github-calendar__svg [data-level=unknown]{--github-day-color:transparent;stroke-dasharray:2 2}.github-calendar__svg rect:focus:not(:focus-visible){outline:none}.github-calendar__svg rect:focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.github-calendar__legend{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.github-calendar__legend span{border-bottom:5px solid var(--github-day-color);padding:2px 5px;font-size:.75rem}.github-calendar__legend--compact{justify-content:flex-end;gap:var(--spacing-2);color:var(--muted-foreground);font:400 .8125rem/1.25rem var(--font-body);flex-wrap:nowrap}.github-calendar__legend--compact>span{font-size:inherit;border:0;padding:0}.github-calendar__legend-scale{gap:var(--spacing-1);display:flex}.github-calendar__legend-scale i{border:1px solid var(--border);background:var(--github-day-color);border-radius:3px;width:.75rem;height:.75rem;display:block}.github-calendar--compact .github-calendar__profiles{margin-top:var(--spacing-2)}.github-calendar__caveat{padding:var(--spacing-3);border-left:2px solid var(--selection-foreground)}.github-calendar__source,.github-calendar__caveat{font-size:.8125rem!important;line-height:1.6154!important}.github-calendar__profiles{align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.github-calendar__profiles a,.github-calendar__daily summary{min-height:var(--control-target-min);color:var(--foreground);text-underline-offset:4px;align-items:center;display:inline-flex}.github-calendar__daily{margin-top:var(--spacing-4)}.github-calendar__daily summary{cursor:pointer}.github-calendar__table{max-height:420px;overflow:auto}.github-calendar table{border-collapse:collapse;text-align:left;width:100%;font:400 .8125rem/1.6923 var(--font-mono)}.github-calendar :is(td,th){padding:var(--spacing-2);border-bottom:1px solid var(--border)}.github-day-tooltip{z-index:50;border:1px solid var(--border);background:var(--foreground);max-width:min(300px,100vw - 24px);color:var(--background);font:500 .75rem/1.125rem var(--font-sans);overflow-wrap:anywhere;pointer-events:auto;border-radius:8px;padding:9px 12px;position:fixed;box-shadow:0 4px 16px #00000021}.github-day-tooltip[hidden],.github-day-picker[hidden],.github-calendar__help[hidden]{display:none}.github-calendar__help{font-size:.75rem!important}.github-calendar__announcement{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.github-day-picker{align-items:center;gap:var(--spacing-3);margin-block:var(--spacing-3);flex-wrap:wrap;display:flex}.github-day-picker label{gap:var(--spacing-2);display:grid}.github-day-picker input{min-height:var(--control-target-min);padding:var(--spacing-2);border:1px solid var(--border);border-radius:var(--control-radius);background:var(--background);color:var(--foreground);font:inherit}.github-day-picker output{font:400 .8125rem/1.25rem var(--font-sans)}@media (width<=480px){.github-calendar p{font-size:.8125rem}}.playground-page{width:min(calc(100% - var(--layout-page-gutter) * 2), var(--layout-content-max));padding-block:var(--layout-section-space);flex-direction:column;gap:clamp(3.5rem,8vw,6rem);margin-inline:auto;display:flex}.playground-opening,.playground-projects{width:min(100%, var(--layout-prose-max));margin-inline:auto}.playground-opening{gap:var(--spacing-4);flex-direction:column;display:flex}.playground-opening h1{margin:0}.playground-opening p{text-wrap:pretty;max-width:55ch}.playground-github{width:min(100%, var(--layout-content-max));min-width:0}.playground-github .github-calendar{padding-block:0}.playground-github :is(.github-calendar__header,.github-calendar__profiles){width:min(100%, var(--layout-prose-max));margin-inline:auto}.playground-projects{gap:var(--spacing-4);flex-direction:column;display:flex}.playground-projects h2{font-size:var(--font-size-base);line-height:1.5}.project-list{gap:var(--spacing-2);flex-direction:column;display:flex}.project-row{min-height:var(--control-target-min);padding:var(--spacing-3);justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);touch-action:manipulation;border-radius:.375rem;transition:background-color .15s;display:flex}.project-row:hover{text-decoration:none}.project-copy{gap:var(--spacing-1);flex-direction:column;min-width:0;display:flex}.project-copy strong{color:var(--foreground);font:400 var(--font-size-base)/1.5 var(--font-heading)}.project-copy>span{color:var(--muted-foreground);font:400 var(--font-size-sm)/1.5 var(--font-body);text-wrap:pretty}.project-destination{min-height:1.5rem;color:var(--muted-foreground);font:400 var(--font-size-xs)/1.5rem var(--font-body);white-space:nowrap;flex:none}@media (hover:hover) and (pointer:fine){.project-row:hover{background-color:var(--surface)}}@media (prefers-reduced-motion:reduce){.project-row{transition-duration:0s}}@media (width<=480px){.playground-page{gap:3.5rem}.project-list{gap:var(--spacing-4)}.project-row{padding-block:var(--spacing-3)}}@media (width<=360px){.project-row{gap:var(--spacing-2);flex-direction:column}}.photography{--photo-bg:var(--background);--photo-ink:var(--foreground);--photo-muted:var(--muted-foreground);--photo-line:var(--border);--photo-control:var(--surface);width:min(calc(100% - var(--layout-page-gutter) * 2), var(--layout-content-max));padding-block:var(--layout-section-space) 5rem;color:var(--photo-ink);font-family:var(--font-heading);margin-inline:auto;overflow-x:clip}.photography a,.photography button{color:inherit;touch-action:manipulation}.photography button{cursor:pointer}.photography button:disabled{cursor:default;opacity:.3}.photography [hidden]{display:none!important}.photo-intro{width:min(100%, var(--layout-prose-max));margin:0 auto 3rem}.photo-intro h1{color:var(--photo-ink);margin:0 0 1.25rem}.photo-lead{max-width:28.75rem;color:var(--photo-muted);font-size:1rem;line-height:1.5}.collection-switch{width:min(100%, var(--layout-prose-max));flex-wrap:wrap;align-items:center;gap:.25rem;margin-inline:auto;display:flex}.collection-switch-top{margin:-1rem auto 1.5rem}.collection-switch a{min-height:var(--control-target-min);color:var(--photo-muted);border-radius:999px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.75rem;text-decoration:none;transition:color .16s ease-out,background-color .16s ease-out,transform .12s ease-out;display:inline-flex}.collection-switch a:before{content:"";opacity:0;background:currentColor;border-radius:50%;width:.375rem;height:.375rem}.collection-switch a[aria-current=page]{background:var(--photo-control);color:var(--photo-ink)}.collection-switch a[aria-current=page]:before{opacity:1}.collection-switch a:active{transform:scale(.96)}.photo-tools{color:var(--photo-muted);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.75rem;display:flex}.photo-count{font-variant-numeric:tabular-nums}.layout-switch{background:var(--photo-control);border-radius:.625rem;gap:.125rem;padding:.1875rem;display:flex}.layout-switch button{min-height:var(--control-target-min);color:var(--photo-muted);background:0 0;border:0;border-radius:.4375rem;align-items:center;gap:.4375rem;padding:.625rem .75rem;display:flex}.layout-switch button[aria-pressed=true]{background:var(--photo-bg);color:var(--photo-ink)}.layout-switch svg{fill:currentColor;width:1.0625rem;height:1.0625rem}.layout-switch span{font-size:.75rem}.photo-collection{--photo-gap:.5rem;gap:var(--photo-gap);flex-direction:column;display:flex}.photo-group{gap:var(--photo-gap);grid-template-rows:repeat(5,minmax(0,1fr));grid-template-columns:repeat(5,minmax(0,1fr));height:clamp(15.625rem,48vw,31.875rem);display:grid}.photo-tile{background:var(--photo-control);isolation:isolate;transform-origin:50%;border-radius:.4375rem;min-width:0;min-height:0;transition:filter .16s;display:block;position:relative;overflow:hidden}.photo-tile:hover,.photo-tile:focus-visible{text-decoration:none}.photography[data-pointer] .photo-tile:focus{outline:none}.photo-tile img{object-fit:cover;width:100%;height:100%;display:block}.photo-tile:nth-child(5n+1){grid-area:1/1/4/4}.photo-tile:nth-child(5n+2){grid-area:1/4/4/6}.photo-tile:nth-child(5n+3){grid-area:4/1/6/2}.photo-tile:nth-child(5n+4){grid-area:4/2/6/4}.photo-tile:nth-child(5n+5){grid-area:4/4/6/6}[data-layout=feature] .photo-group{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));height:clamp(14.375rem,38vw,26.25rem)}[data-layout=feature] .photo-tile:nth-child(5n+1){grid-area:1/1/3/3}[data-layout=feature] .photo-tile:nth-child(5n+2){grid-area:1/3/2/4}[data-layout=feature] .photo-tile:nth-child(5n+3){grid-area:1/4/2/5}[data-layout=feature] .photo-tile:nth-child(5n+4){grid-area:2/3/3/4}[data-layout=feature] .photo-tile:nth-child(5n+5){grid-area:2/4/3/5}[data-layout=strip] .photo-group{scroll-snap-type:x proximity;scrollbar-width:none;height:15.625rem;display:flex;overflow:auto hidden}[data-layout=strip] .photo-group::-webkit-scrollbar{display:none}[data-layout=strip] [data-focus-active] .photo-group{overflow-x:hidden}[data-layout=strip] .photo-tile{scroll-snap-align:center;flex:1 0 18%;min-width:8.4375rem}.photo-dialog{color:#fff;background:0 0;border:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.photo-dialog::backdrop{background:0 0}.photo-dim{opacity:0;background:#00000087;transition:opacity .26s ease-out;position:absolute;inset:0}.photo-dialog[data-visible] .photo-dim{opacity:1}.photo-focus{pointer-events:none;transform-origin:0 0;background:0 0;border-radius:.5rem;position:absolute;overflow:hidden}.photo-focus img{object-fit:cover;width:100%;height:100%;display:block}.photo-control{z-index:2;width:var(--control-target-min);height:var(--control-target-min);color:#fff;opacity:0;background:#161616a6;border:1px solid #ffffff1f;border-radius:50%;place-items:center;padding:.625rem;transition:opacity .16s ease-out,background-color .16s;display:grid;position:absolute}.photo-dialog[data-visible] .photo-control,.photo-dialog[data-visible] .photo-caption{opacity:1}.photo-dialog[data-visible] .photo-control:disabled{opacity:.3}.photo-control svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:1.375rem;height:1.375rem}.photo-close{top:1.25rem;right:1.5rem}.photo-prev{top:calc(50% - 1.375rem);left:1.5rem}.photo-next{top:calc(50% - 1.375rem);right:1.5rem}.photo-caption{color:#fff;text-align:center;opacity:0;font-size:.75rem;transition:opacity .16s ease-out;position:absolute;bottom:1.5rem;left:4.5rem;right:4.5rem}.photo-caption p{color:#fff;min-height:1.0625rem;margin:.375rem 0}.photo-caption [data-photo-number]{color:#ccc;margin-right:1rem}.photo-caption [data-photo-caption]{color:#fff}.photo-status{font-size:.6875rem;color:#ddd!important}.photo-caption button{color:#fff;background:0 0;border:1px solid #888;border-radius:.3125rem;min-height:2.25rem;padding:.375rem .75rem}.photo-dialog[data-loaded=true] .photo-status{clip-path:inset(50%)}.photo-collection[data-focus-active] .photo-tile{transition:transform .42s cubic-bezier(.23,1,.32,1)}.photo-collection[data-returning] .photo-tile{transition-duration:.3s}.photography:not([data-enhanced]) .layout-switch,.photography:not([data-enhanced]) img[data-deferred-thumbnail]{display:none}@media (hover:hover) and (pointer:fine){.collection-switch a:hover{background:var(--photo-control);color:var(--photo-ink);text-decoration:none}.photo-tile:hover{filter:brightness(1.045)}.photo-control:hover{background:#161616d9}}@media (width<=640px){.photography{width:calc(100% - var(--layout-page-gutter) * 2);padding-block:var(--layout-section-space) 3rem}.photo-intro{margin-bottom:1.75rem}.collection-switch-top{margin:-.5rem auto 1.125rem}.collection-switch{gap:.125rem}.collection-switch a{padding-inline:.75rem}.photo-tools{flex-direction:column;align-items:flex-start;gap:.5rem}.layout-switch{align-self:flex-end}.layout-switch button{padding-inline:.5625rem}.layout-switch span{font-size:.6875rem}.photo-collection{--photo-gap:.3125rem}.photo-group{height:18.75rem}[data-layout=feature] .photo-group{height:15rem}[data-layout=strip] .photo-group{height:13.125rem}[data-layout=strip] .photo-tile{min-width:9.375rem}.photo-close{top:.75rem;right:.75rem}.photo-prev{top:auto;bottom:1rem;left:.5rem}.photo-next{top:auto;bottom:1rem;right:.5rem}.photo-caption{bottom:.875rem;left:3.625rem;right:3.625rem}.photo-caption p{margin:.1875rem 0}.photo-caption [data-photo-number]{margin:0 0 .125rem;display:block}.photo-status{font-size:.625rem}.photo-focus{border-radius:.375rem}}@media (prefers-reduced-motion:reduce){.photography,.photography *,.photography :before,.photography :after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}@media (forced-colors:active){.photo-control{border:1px solid buttontext}}.about-page[data-astro-cid-zlx7s737]{width:min(calc(100% - var(--layout-page-gutter) * 2), var(--layout-prose-max));padding-top:var(--layout-section-space);gap:var(--spacing-8);flex-direction:column;margin-inline:auto;display:flex}.about-copy[data-astro-cid-zlx7s737]{gap:var(--spacing-4);flex-direction:column;display:flex}.about-copy[data-astro-cid-zlx7s737] p[data-astro-cid-zlx7s737]{text-wrap:pretty;line-height:24px}.about-copy[data-astro-cid-zlx7s737] a[data-astro-cid-zlx7s737]{text-decoration:none}
