@font-face{font-family:PP Eiko;src:url(/fonts/PPEiko-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:PP Eiko;src:url(/fonts/PPEiko-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/fonts/PPNeueMontreal-Book.woff2)format("woff2");font-weight:350;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/fonts/PPNeueMontreal-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/fonts/PPNeueMontreal-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Swanky and Moo Moo;src:url(/fonts/SwankyAndMooMoo-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--c-black:#1e1e1e;--c-dark-grey:#848484;--c-white:#fff;--c-yellow:#ffd24b;--c-grey:#dadce0;--c-light-grey:#e9e9e9;--c-grey-bg:#f5f5f5;--c-blue-grey:#bfc5d2;--c-menu-green:#d1ffdb;--c-menu-blue:#def0ff;--c-word-red:#e5484d;--c-word-blue:#3e63dd;--c-word-yellow:#f5b800;--ink:var(--c-black);--ink-muted:var(--c-dark-grey);--paper:var(--c-white);--on-dark:#fff9;--accent:var(--c-yellow);--line:var(--c-grey);--fill-mute:var(--c-light-grey);--fill-soft:var(--c-grey-bg);--stroke-cool:var(--c-blue-grey);--font-display:"PP Eiko", Georgia, "Times New Roman", serif;--font-text:"PP Neue Montreal", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-note:"Swanky and Moo Moo", "Bradley Hand", cursive;--w-light:300;--w-book:350;--w-regular:400;--w-medium:500;--fs-hero:clamp(40px, 25.14px + 3.81vw, 80px);--fs-display-1:clamp(32px, 21.6px + 2.667vw, 60px);--fs-display-2:clamp(28px, 23.54px + 1.143vw, 40px);--fs-display-3:clamp(24px, 19.54px + 1.143vw, 36px);--fs-display-4:clamp(22px, 18.29px + .952vw, 32px);--fs-display-sub:clamp(18px, 15.77px + .571vw, 24px);--fs-card-title:clamp(18px, 17.26px + .19vw, 20px);--fs-body-lg:clamp(18px, 15.77px + .571vw, 24px);--fs-section-label:clamp(18px, 15.77px + .571vw, 24px);--fs-body:clamp(16px, 14.51px + .381vw, 20px);--fs-nav:clamp(16px, 15.26px + .19vw, 18px);--fs-body-sm:clamp(14px, 13.26px + .19vw, 16px);--fs-note:clamp(14px, 13.26px + .19vw, 16px);--fs-label:clamp(12px, 11.63px + .095vw, 13px);--lh-hero:1.18;--lh-display-1:1.08;--lh-display-2:1.12;--lh-display-3:1.4;--lh-display-4:1.2;--lh-display-sub:1.25;--lh-card-title:1.3;--lh-body:1.5;--lh-body-lg:1.45;--lh-tight:1.2;--lh-label:1.3;--lh-note:1.35;--ls-hero:-.01em;--ls-display-1:-.005em;--ls-normal:0;--ls-book:.01em;--ls-label:.14em;--content-max:1356px;--page-margin:clamp(20px, 3vw, 42px);--grid-cols:12;--grid-gutter:20px;--space-3xs:4px;--space-2xs:8px;--space-xs:12px;--space-sm:16px;--space-md:24px;--space-lg:32px;--space-xl:48px;--space-2xl:64px;--space-3xl:80px;--space-4xl:120px;--space-5xl:160px;--section-y:clamp(64px, 8vw, 120px);--radius-none:0;--radius-sm:2px;--radius-pill:999px;--hairline:1px;--nav-h:95px;--menu-w:352px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.2s;--dur-base:.4s;--dur-slow:.7s;--z-base:0;--z-sticky:100;--z-menu:200;--z-overlay:300}@media (width<=960px){:root{--grid-cols:4;--grid-gutter:16px;--page-margin:20px;--nav-h:70px;--menu-w:min(332px, calc(100vw - 44px))}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:1ms;--dur-base:1ms;--dur-slow:1ms}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:auto;scrollbar-gutter:stable}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth iframe{pointer-events:none}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{margin:0;padding:0;list-style:none}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:0;padding:0}a{color:inherit;text-decoration:none}body{background:var(--paper);color:var(--ink);font-family:var(--font-text);font-weight:var(--w-regular);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}.device-frame{min-width:0}.device-frame--phone,.device-frame--browser{flex-direction:column;display:flex;overflow:hidden}.device-frame--black{--device-frame:#111}.device-frame--white{--device-frame:#fff}.device-frame--gray{--device-frame:#a6a6a6}.device-frame__cap{z-index:1;background:var(--device-frame);flex:0 0 56px;height:56px;position:relative}.device-frame__cap--top{box-shadow:0 1px 0 var(--device-frame);border-radius:44px 44px 0 0}.device-frame__cap--bottom{box-shadow:0 -1px 0 var(--device-frame);border-radius:0 0 44px 44px}.device-frame :is(.art,.media,video){border-radius:0}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.t-hero{font-family:var(--font-display);font-weight:var(--w-light);font-size:var(--fs-hero);line-height:var(--lh-hero);letter-spacing:var(--ls-hero)}.t-display-1{font-family:var(--font-display);font-weight:var(--w-regular);font-size:var(--fs-display-1);line-height:var(--lh-display-1);letter-spacing:var(--ls-display-1)}.t-display-2{font-family:var(--font-display);font-weight:var(--w-regular);font-size:var(--fs-display-2);line-height:var(--lh-display-2)}.t-display-3{font-family:var(--font-display);font-weight:var(--w-regular);font-size:var(--fs-display-3);line-height:var(--lh-display-3)}.t-display-4{font-family:var(--font-display);font-weight:var(--w-regular);font-size:var(--fs-display-4);line-height:var(--lh-display-4)}.t-display-sub{font-family:var(--font-display);font-weight:var(--w-light);font-size:var(--fs-display-sub);line-height:var(--lh-display-sub)}.t-card-title{font-family:var(--font-display);font-weight:var(--w-regular);font-size:var(--fs-card-title);line-height:var(--lh-card-title)}.t-body-lg{font-family:var(--font-text);font-weight:var(--w-book);font-size:var(--fs-body-lg);line-height:var(--lh-body-lg)}.t-body{font-family:var(--font-text);font-weight:var(--w-regular);font-size:var(--fs-body);line-height:var(--lh-body)}.t-body-book{font-family:var(--font-text);font-weight:var(--w-book);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-book)}.t-section-label{font-family:var(--font-text);font-weight:var(--w-regular);font-size:var(--fs-section-label);line-height:var(--lh-display-sub)}.t-body-sm{font-family:var(--font-text);font-weight:var(--w-regular);font-size:var(--fs-body-sm);line-height:var(--lh-body)}.t-nav{font-family:var(--font-text);font-weight:var(--w-regular);font-size:var(--fs-nav);line-height:var(--lh-tight)}.t-label{font-family:var(--font-text);font-weight:var(--w-regular);font-size:var(--fs-label);line-height:var(--lh-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-muted)}.t-note{font-family:var(--font-note);font-weight:var(--w-regular);font-size:var(--fs-note);line-height:var(--lh-note)}.u-muted{color:var(--ink-muted)}.case-split{display:grid}@media (width>=961px){.case-split{grid-template-columns:minmax(0, 1fr) minmax(0, calc((100% - var(--space-2xl)) / 2));gap:var(--space-3xl)}.case-split__left{width:560px;max-width:100%}}@media (width<=960px){.evidence-grid--trio{column-gap:0!important;row-gap:var(--space-xl)!important;grid-template-columns:1fr!important}.evidence-grid--trio .evidence-media--surface{width:min(78%,24rem)!important;margin-inline:auto!important}.device-frame{container-type:inline-size}.device-frame__cap{height:min(var(--frame-cap-height,56px), 55.78cqw)!important;flex-basis:min(var(--frame-cap-height,56px), 55.78cqw)!important}.device-frame__cap--top{border-radius:min(var(--frame-cap-radius,44px), 43.82cqw) min(var(--frame-cap-radius,44px), 43.82cqw) 0 0!important}.device-frame__cap--bottom{border-radius:0 0 min(var(--frame-cap-radius,44px), 43.82cqw) min(var(--frame-cap-radius,44px), 43.82cqw)!important}.evidence+.cs.cs{padding-top:0}}.js [data-reveal]{--reveal-dur:1.4s;--reveal-step:.2s;--ease-reveal:cubic-bezier(.22, 1, .36, 1);opacity:0;clip-path:inset(100% -4% -30%);transition:opacity calc(var(--reveal-dur) * .5) linear, clip-path var(--reveal-dur) var(--ease-reveal);transition-delay:calc(var(--reveal-i,0) * var(--reveal-step))}.js [data-reveal].is-in{opacity:1;clip-path:inset(-4% -4% -30%)}.js [data-reveal-zoom]{clip-path:none;opacity:.5;transform-origin:50%;transition:opacity var(--reveal-dur) var(--ease-reveal), transform var(--reveal-dur) var(--ease-reveal);transition-delay:calc(var(--reveal-i,0) * var(--reveal-step));transform:scale(.9)}.js [data-reveal-zoom].is-in{opacity:1;clip-path:none;transform:none}.js [data-reveal]:not([data-reveal-zoom]) :is(img){transition:transform calc(var(--reveal-dur) * 1.2) var(--ease-reveal);transition-delay:calc(var(--reveal-i,0) * var(--reveal-step));transform:scale(1.08)}.js [data-reveal]:not([data-reveal-zoom]).is-in :is(img){transform:none}@media (prefers-reduced-motion:reduce){.js [data-reveal],.js [data-reveal-zoom],.js [data-reveal] :is(img){opacity:1;clip-path:none;transition:none;transform:none}}.footer__col a,.menu__inline a,.menu__block--projects a,.hero__socials a{transition:background-size .6s var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px}.footer__col a:hover,.footer__col a:focus-visible,.menu__inline a:hover,.menu__inline a:focus-visible,.menu__block--projects a:hover,.menu__block--projects a:focus-visible,.hero__socials a:hover,.hero__socials a:focus-visible{background-size:100% 1px}@media (prefers-reduced-motion:reduce){.footer__col a,.menu__inline a,.menu__block--projects a,.hero__socials a{transition:none}}.u-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lab-zoom{--pad:clamp(16px, 4vw, 64px);z-index:var(--z-overlay);padding:var(--pad);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base);background:#141414e6;place-items:center;display:grid;position:fixed;inset:0}.lab-zoom[data-open]{opacity:1;visibility:visible;transition:opacity var(--dur-base) var(--ease-out)}.lab-zoom__stage{display:contents}.lab-zoom__media{max-width:calc(100dvw - 2 * var(--pad));max-height:calc(100dvh - 2 * var(--pad));object-fit:contain;width:auto;height:auto;transition:transform var(--dur-base) var(--ease-out);display:block;transform:scale(.96);box-shadow:0 24px 70px #00000073}.lab-zoom[data-open] .lab-zoom__media{transform:none}.lab-zoom__close{cursor:pointer;background:0 0;border:0;width:30px;height:30px;padding:0;position:absolute;top:clamp(14px,3vw,34px);right:clamp(14px,3vw,34px)}.lab-zoom__close svg{width:100%;height:100%;stroke:var(--paper);stroke-width:1.5px;fill:none;display:block}@media (prefers-reduced-motion:reduce){.lab-zoom,.lab-zoom__media{transition:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn[data-astro-cid-imw5n6iy]{color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.btn__label[data-astro-cid-imw5n6iy]:before{content:"[ "}.btn__label[data-astro-cid-imw5n6iy]:after{content:" ]"}.btn--outline[data-astro-cid-imw5n6iy]{padding:var(--space-xs) var(--space-md);border:var(--hairline) solid var(--line);border-radius:var(--radius-pill)}.btn--outline[data-astro-cid-imw5n6iy]:hover{background:var(--fill-soft);border-color:var(--ink-muted)}
