@layer reset;@layer tokens{:root{--colour-cream-canvas:#f6f2ec;--colour-white:#fff;--colour-ink:#060e1c;--colour-ink-muted:#536b92;--colour-accent:#b01e24;--colour-accent-hover:#961a1f;--colour-product:#2e52b8;--colour-navy:#1a3a6e;--colour-forest:#1a4030;--colour-gold:#c4a035;--colour-brand-tan:#cea579;--colour-app-icon-bg:#343938;--colour-chip-branding:#6b3fa0;--colour-chip-research:#2f6b45;--colour-chip-visual:#985051;--colour-chip-product:#0f7a4d;--colour-chip-uxui:#1e4fd6;--colour-chip-graphic:#7a4f2e;--colour-chip-accessibility:#1a3a6e;--colour-chip-systems:#256160;--colour-chip-development:#9a4a0e;--colour-chip-motion:#8b1820;--colour-chip-wip:#7a5410;--colour-social-dribbble:#ea4c89;--colour-social-github:#2da44e;--colour-social-instagram:#e4405f;--colour-social-linkedin:#0a66c2;--colour-social-behance:#1769ff;--colour-surface:var(--colour-cream-canvas);--colour-on-surface:var(--colour-ink);--colour-on-surface-muted:var(--colour-ink-muted);--colour-inverse:var(--colour-ink);--colour-on-inverse:var(--colour-cream-canvas);--colour-on-inverse-muted:#b8b2a8;--colour-on-accent:var(--colour-cream-canvas);--colour-on-media:var(--colour-cream-canvas);--colour-input:color-mix(in srgb, var(--colour-white) 70%, transparent);--colour-outline:#b8b2a8;--colour-outline-strong:#8a857c;--colour-outline-white:var(--colour-white);--colour-focus:var(--colour-navy);--colour-link:var(--colour-forest);--colour-link-hover:var(--colour-bento-cta-strong);--colour-link-active:var(--colour-bento-cta-strong);--colour-scrim:color-mix(in srgb, var(--colour-ink) 48%, transparent);--colour-shadow:var(--colour-ink);--colour-bento-accent:var(--colour-navy);--colour-bento-accent-glass:#1a3a6edb;--colour-bento-cta:#ebcea3;--colour-bento-cta-72:#ebcea3b8;--colour-bento-cta-strong:#c6964e;--colour-bento-cta-strong-78:#c6964ec7;--colour-bento-darken:#0000003d;--colour-bento-darken-muted:var(--colour-bento-darken);--colour-bento-glass:#2c2c2c99;--colour-bento-glass-muted:var(--colour-bento-glass);--colour-bento-glass-stroke:#f6f2ec55;--colour-bento-on-ink-72:#f6f2ecb8;--colour-bento-on-ink-78:#f6f2ecc7;--colour-bento-scrim:#274576;--colour-bento-scrim-0:#27457600;--colour-bento-scrim-22:#27457638;--colour-bento-scrim-33:#27457654;--colour-bento-scrim-50:#27457680;--colour-bento-scrim-70:#274576b2;--colour-bento-scrim-100:#274576;--colour-bento-see-more-start:#353535;--colour-bento-see-more-end:#61533f;--colour-bento-see-more-end-78:#61533fc7;--colour-bento-title-start:#e4b56e;--colour-bento-title-end:#e5ccbb;--colour-bento-white-0:#fff0;--colour-bento-white-10:#ffffff1a;--colour-bento-white-16:#ffffff29;--font-rounded:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-body:var(--font-rounded);--font-display:var(--font-rounded);--font-label:var(--font-rounded);--text-88:5.5rem;--leading-88:6rem;--text-32:2rem;--leading-32:2.5rem;--text-28:1.75rem;--leading-28:2.25rem;--text-24:1.5rem;--leading-24:2rem;--text-22:1.375rem;--leading-22:1.75rem;--text-18:1.125rem;--leading-18:1.75rem;--text-16:1rem;--leading-16:1.5rem;--text-14:.875rem;--leading-14:1.25rem;--text-12:.75rem;--leading-12:1rem;--tracking-label:0;--tracking-display:-.5px;--space-0:0;--space-4:.25rem;--space-8:.5rem;--space-12:.75rem;--space-16:1rem;--space-20:1.25rem;--space-24:1.5rem;--space-28:1.75rem;--space-32:2rem;--space-36:2.25rem;--space-40:2.5rem;--space-44:2.75rem;--space-48:3rem;--space-52:3.25rem;--space-56:3.5rem;--space-60:3.75rem;--space-64:4rem;--space-68:4.25rem;--space-72:4.5rem;--space-76:4.75rem;--space-80:5rem;--space-84:5.25rem;--space-88:5.5rem;--space-92:5.75rem;--space-96:6rem;--space-100:6.25rem;--space-104:6.5rem;--space-108:6.75rem;--space-112:7rem;--space-172:10.75rem;--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-2xl:3.25rem;--radius-bento:2.125rem;--radius-portrait:2.6875rem;--radius-pill:624.938rem;--viewport-web:90rem;--viewport-tablet:52.125rem;--viewport-mobile:25.125rem;--page-max:var(--viewport-web);--content-max:82.5rem;--measure:36rem;--measure-wide:62.5rem;--gutter:clamp(var(--space-16), 4vw, var(--space-60));--section-gap:clamp(var(--space-48), 8vw, var(--space-88));--section-gap-tight:clamp(var(--space-32), 5vw, var(--space-48));--home-gap:var(--space-64);--focus-ring:2px solid var(--colour-focus);--focus-offset:3px;--touch-min:2.75rem;--motion-fast:.16s;--motion-base:.22s;--motion-slow:.48s;--motion-enter:.56s;--motion-layout:.42s;--motion-lightbox:.72s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.25, .64, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--ease-layout:cubic-bezier(.33, 1, .68, 1);--shadow-rgb:6, 14, 28;--shadow-sm:0 0 0 1px rgba(var(--shadow-rgb), .04), 0 1px 2px rgba(var(--shadow-rgb), .04), 0 2px 6px -2px rgba(var(--shadow-rgb), .06);--shadow-md:0 0 0 1px rgba(var(--shadow-rgb), .05), 0 1px 3px rgba(var(--shadow-rgb), .05), 0 6px 16px -4px rgba(var(--shadow-rgb), .1);--shadow-lg:0 0 0 1px rgba(var(--shadow-rgb), .06), 0 2px 4px rgba(var(--shadow-rgb), .04), 0 12px 28px -6px rgba(var(--shadow-rgb), .14);--shadow-xl:0 0 0 1px rgba(var(--shadow-rgb), .06), 0 4px 8px -2px rgba(var(--shadow-rgb), .08), 0 16px 32px -8px rgba(var(--shadow-rgb), .16);--shadow-2xl:0 0 0 1px rgba(var(--shadow-rgb), .07), 0 8px 16px -4px rgba(var(--shadow-rgb), .1), 0 24px 48px -12px rgba(var(--shadow-rgb), .2);--shadow-inverse:0 0 0 1px #ffffff14, 0 4px 8px rgba(var(--shadow-rgb), .2), 0 16px 40px -8px rgba(var(--shadow-rgb), .35);--shadow-btn:0 0 0 1px rgba(var(--shadow-rgb), .12), 0 1px 2px rgba(var(--shadow-rgb), .14), 0 2px 8px -1px rgba(var(--shadow-rgb), .2);--shadow-btn-blue:0 0 0 1px #2e52b83d, 0 1px 2px #2e52b82e, 0 2px 8px -1px #2e52b83d;--shadow-btn-plate:5px 5px 0 var(--colour-brand-tan);--shadow-card:var(--shadow-md);--shadow-card-soft:var(--shadow-sm);--shadow-media-sm:var(--shadow-xl);--shadow-media:var(--shadow-2xl)}[data-theme=dark]{color-scheme:dark;--colour-surface:#0e203d;--colour-on-surface:var(--colour-cream-canvas);--colour-on-surface-muted:#b8b2a8;--colour-input:color-mix(in srgb, var(--colour-ink) 80%, var(--colour-white) 20%)}}@layer base{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}ul[role=list],ol[role=list]{padding:0;list-style:none}img,svg,video{max-width:100%;height:auto;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}html{color-scheme:light only;scroll-behavior:smooth;background:radial-gradient(ellipse 120% 70% at 50% -15%, color-mix(in srgb, var(--colour-brand-tan) 10%, transparent), transparent 55%), var(--colour-surface)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100vh;font-family:var(--font-body);font-size:var(--text-16);line-height:var(--leading-16);color:var(--colour-on-surface);background:radial-gradient(ellipse 120% 70% at 50% -15%, color-mix(in srgb, var(--colour-brand-tan) 10%, transparent), transparent 55%), var(--colour-surface);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}::selection{background:color-mix(in srgb, var(--colour-accent) 25%, transparent)}h1,.display-88{font-family:var(--font-display);font-weight:700;font-size:clamp(3.25rem, 2rem + 7vw, var(--text-88));line-height:calc(var(--leading-88) / var(--text-88));letter-spacing:var(--tracking-display);text-wrap:balance;color:var(--colour-on-surface);text-transform:uppercase}h2,.heading-1{font-family:var(--font-display);font-weight:700;font-size:var(--text-32);line-height:var(--leading-32);text-wrap:balance;color:var(--colour-on-surface)}.heading-2{font-family:var(--font-display);font-weight:700;font-size:var(--text-28);line-height:var(--leading-28);text-wrap:balance;color:var(--colour-on-surface)}.heading-3{font-family:var(--font-display);font-weight:600;font-size:var(--text-24);line-height:var(--leading-24);color:var(--colour-on-surface)}.heading-4{font-family:var(--font-display);font-weight:600;font-size:var(--text-22);line-height:var(--leading-22);color:var(--colour-on-surface)}h3{font-family:var(--font-display);font-weight:700;font-size:var(--text-28);line-height:var(--leading-28);color:var(--colour-on-surface)}.case-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-32);line-height:var(--leading-32);text-wrap:balance;color:var(--colour-on-surface);text-transform:none;letter-spacing:normal}p{max-width:var(--measure-wide);font-size:var(--text-16);line-height:var(--leading-16)}.body-lg{font-size:var(--text-18);line-height:var(--leading-18)}.body-sm{font-size:var(--text-14);line-height:var(--leading-14)}a{color:var(--colour-link);text-underline-offset:.15em}@media (hover:hover) and (pointer:fine){a:not(.btn):not(.social-link):not(.chip):not(.work-card):not(.bento-card):not(.site-logo):not(.lightbox-media):not(.photo-tile__hit):hover{color:var(--colour-link-hover)}}a:not(.btn):not(.social-link):not(.chip):not(.work-card):not(.bento-card):not(.site-logo):not(.lightbox-media):not(.photo-tile__hit):active{color:var(--colour-link-active)}.eyebrow{font-family:var(--font-label);font-size:var(--text-12);line-height:var(--leading-12);letter-spacing:var(--tracking-label);color:var(--colour-on-surface-muted);margin-block-end:.375rem;font-weight:600;display:block}}@layer layouts{.site-shell{flex-direction:column;min-height:100vh;display:flex}.site-main{flex:1;width:100%}.container{width:min(100% - var(--gutter) * 2, var(--content-max));margin-inline:auto}.container--wide{width:min(100% - var(--gutter) * 2, var(--page-max));margin-inline:auto}.section{padding-block:var(--section-gap)}.section--tight{padding-block:var(--section-gap-tight)}.stack{gap:var(--stack-gap,var(--space-24));flex-direction:column;display:flex}.stack--sm{--stack-gap:var(--space-20)}.stack--lg{--stack-gap:var(--space-32)}@media (width>=52rem){.stack--lg{--stack-gap:var(--space-40)}}.cluster{align-items:center;gap:var(--cluster-gap,var(--space-16));flex-wrap:wrap;display:flex}.cluster--sm{--cluster-gap:var(--space-12)}.grid-2{gap:var(--space-40);display:grid}@media (width>=48rem){.grid-2{grid-template-columns:1fr 1fr;align-items:start}}.hero-home{padding-block:var(--home-gap) 0}.hero-home__name{flex-direction:column;gap:0;margin-block-end:var(--space-24);line-height:1;display:flex}.hero-home__tagline{max-width:47.5rem}.hero-home .stack--lg{--stack-gap:var(--space-20)}@media (width>=52rem){.hero-home .stack--lg{--stack-gap:var(--space-24)}}@media (width>=64rem){:root{--home-gap:var(--space-172)}.hero-home .stack--lg{--stack-gap:var(--space-44)}}.project-card{gap:var(--space-32);align-items:center;display:grid}.featured-studies.stack--lg{--stack-gap:var(--home-gap)}.featured-studies__feature{gap:var(--space-32);flex-direction:column;display:flex}@media (width>=52rem){.featured-studies__feature{gap:var(--space-40)}}.featured-studies__intro{--stack-gap:var(--space-8)}.featured-studies__intro h2,.featured-studies__intro p{margin:0}.featured-studies .project-card{padding-block:0}.featured-studies .project-card .stack{gap:var(--space-20)}.hero-home+.section{padding-block:var(--home-gap) 0}.hero-home~#about.section{padding-block:var(--home-gap)}@media (width>=52rem){.featured-studies .project-card .stack{gap:var(--space-16)}}@media (width>=64rem){.featured-studies .project-card .stack{gap:var(--space-44)}.featured-studies .project-card .card-header+.chip-list{margin-block-start:calc(var(--space-16) - var(--space-44))}}.project-card__shots{gap:var(--space-32);order:-1;grid-template-columns:1fr;justify-content:center;align-items:end;padding-block-end:var(--space-36);display:grid;overflow:visible}.project-card__shots .phone-frame:nth-child(n+2){display:none}.project-card__shots .phone-frame{max-width:13.75rem;margin-inline:auto}@media (width>=52rem){.project-card{gap:var(--space-32)}.project-card__shots{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card__shots .phone-frame:nth-child(n+2){display:block}}@media (width>=64rem){.project-card{gap:var(--space-88);grid-template-columns:minmax(0,23.8125rem) 1fr}.project-card__shots{order:0;justify-content:end;padding-inline-end:var(--space-36);overflow:visible}.project-card__shots .phone-frame{max-width:14.3125rem}}.about{gap:var(--space-32);place-items:center;display:grid}@media (width>=52rem){.about{gap:var(--space-40);grid-template-columns:minmax(0,16.625rem) 1fr;justify-items:stretch}}@media (width>=64rem){.about{gap:var(--space-84)}}.about__portrait-wrap{width:100%;max-width:13.75rem;margin-inline:auto;position:relative}@media (width>=52rem){.about__portrait-wrap{max-width:none}}.about__portrait{aspect-ratio:220/294;border-radius:var(--radius-xl);object-fit:cover;width:100%;max-width:13.75rem;box-shadow:var(--shadow-media-sm);-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block}@media (width>=52rem){.about__portrait{aspect-ratio:266/355;border-radius:var(--radius-portrait);max-width:none;box-shadow:var(--shadow-media)}.about__portrait--alt{aspect-ratio:668/900}}.case-study{gap:var(--space-64);flex-direction:column;padding-block-end:var(--space-64);display:flex}.case-study>.case-hero,.case-study>.section{padding-block-end:0}.case-study>.section{padding-block-start:0}.case-study>.case-hero{padding-block-start:var(--space-32)}.case-study .section .stack,.case-study .case-intro .stack,.case-study .decision-row .stack{--stack-gap:var(--space-12)}.case-study-nav .cluster--spread{align-items:stretch;gap:var(--space-16);grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;display:grid}.case-study-nav .cluster--spread .btn{width:100%;min-width:0;padding-inline:var(--space-12);white-space:normal;text-wrap:balance}@media (width>=48rem){.case-study-nav .cluster--spread{justify-content:space-between;gap:var(--space-32);flex-wrap:nowrap;display:flex}.case-study-nav .cluster--spread .btn{white-space:nowrap;text-wrap:nowrap;width:auto}}@media (width>=52rem){.case-study{gap:var(--space-40)}}@media (width>=64rem){.case-study{gap:var(--space-108);padding-block-end:var(--space-108)}.case-study .chip-list{gap:var(--space-12)}.case-study .section .stack,.case-study .case-intro .stack,.case-study .decision-row .stack{--stack-gap:var(--space-16)}}.case-hero{padding-block-start:var(--space-32)}.case-hero__inner,.case-hero__copy{gap:var(--space-20);flex-direction:column;display:flex}.case-hero__title{gap:var(--space-12);flex-direction:column;display:flex}.case-brand{margin:0}.case-brand img{width:min(10.875rem,55vw);height:auto;display:block}.case-hero__phones{justify-content:center;gap:var(--space-24);padding-block-end:var(--space-32);padding-inline:var(--space-32);flex-wrap:wrap;display:flex;overflow:visible}.case-hero__phones .phone-frame{flex:none;width:min(100%,21.125rem);margin-inline:0}.case-hero__phones .phone-frame:nth-child(n+2){display:none}@media (width<=51.99rem){.case-study>.case-hero{padding-block-start:var(--space-64)}.case-hero__copy{display:contents}.case-hero__title{gap:var(--space-12);order:1}.case-hero__title .case-title{font-size:var(--text-32);line-height:var(--leading-32)}.case-hero__title .heading-4{font-size:1.0625rem;line-height:1.5rem}.case-hero__inner>.case-meta,.case-hero__copy>.case-meta{order:2}.case-hero__inner>.chip-list,.case-hero__copy>.chip-list{order:3}.case-hero__phones,.case-hero--tv .tv-shot--hero{order:4}.case-hero__inner>.case-brand,.case-hero__copy>.case-brand{order:5}.case-brand--text{font-size:var(--text-18);line-height:var(--leading-18)}.case-hero__phones{gap:var(--space-8);width:100%;padding-block-end:var(--space-8);padding-inline:0}.case-hero__phones .phone-frame{width:min(100%,13.75rem)}.case-meta{gap:var(--space-16)}.decision-row{grid-template-columns:1fr;align-items:start}.decision-row .stack{order:1}.decision-row__media{gap:var(--space-12);order:2;width:100%;padding-block-start:var(--space-8)}.decision-row--reverse .stack{order:1}.decision-row--reverse .decision-row__media{order:2}.outcomes-grid{gap:var(--space-16)}}@media (width>=52rem) and (width<=63.99rem){.case-hero__copy{display:contents}.case-hero__inner>.case-brand,.case-hero__copy>.case-brand{order:1}.case-hero__title{order:2}.case-hero__inner>.case-meta,.case-hero__copy>.case-meta{order:3}.case-hero__inner>.chip-list,.case-hero__copy>.chip-list{order:4}.case-hero__phones,.case-hero--tv .tv-shot--hero{order:5}}@media (width>=52rem){.case-study>.case-hero,.case-hero{padding-block-start:var(--space-40)}.case-hero__inner{gap:var(--space-24)}.case-hero__copy{gap:var(--space-32)}.case-hero__title{gap:var(--space-20)}.case-hero__phones{gap:var(--space-16)}.case-hero__phones .phone-frame{width:min(100%,17rem)}.case-hero__phones .phone-frame:nth-child(-n+2){display:block}}@media (width>=64rem){.case-hero__inner{gap:var(--space-48)}.case-hero__phones{gap:var(--space-32)}.case-hero__phones .phone-frame{width:13.75rem}.case-hero__phones .phone-frame:nth-child(n){display:block}}.case-intro{gap:var(--space-64);display:grid}@media (width>=52rem){.case-intro{gap:var(--space-40);grid-template-columns:1fr 1fr;align-items:start}}@media (width>=64rem){.case-intro{gap:var(--space-64)}}.case-meta{gap:var(--space-24);grid-template-columns:1fr 1fr;display:grid}@media (width>=52rem){.case-meta{gap:var(--space-40);grid-template-columns:repeat(4,minmax(0,1fr))}}.case-meta dd{font-size:var(--text-16);line-height:var(--leading-16);color:var(--case-muted,var(--colour-on-surface))}.decision-row{gap:var(--space-12);align-items:center;padding-block:0;display:grid}@media (width>=52rem){.decision-row{gap:var(--space-32);grid-template-columns:1fr 1fr}.decision-row--reverse .decision-row__media{order:2}.decision-row__media .phone-frame{max-width:12.5rem;margin-inline:0}}@media (width>=64rem){.decision-row{gap:var(--space-112)}}.decision-row__media{gap:var(--space-16);grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;display:grid}@media (width>=52rem){.decision-row__media{gap:var(--space-20)}}.numbers-grid{gap:var(--space-16);margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.numbers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.numbers-grid{gap:var(--space-20);grid-template-columns:repeat(4,minmax(0,1fr))}}.outcomes-grid{gap:var(--space-20);display:grid}@media (width>=48rem){.outcomes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.case-study[class*=case-study--]{--case-tint:var(--case-accent-secondary,var(--case-accent));--case-wash:color-mix(in srgb, var(--case-tint) 12%, var(--colour-cream-canvas));--case-accent-soft:color-mix(in srgb, var(--case-tint) 22%, var(--colour-cream-canvas));--case-accent-soft-strong:color-mix(in srgb, var(--case-tint) 20%, var(--colour-cream-canvas));--case-panel:color-mix(in srgb, var(--case-tint) 16%, var(--colour-white));--case-panel-strong:color-mix(in srgb, var(--case-tint) 26%, var(--colour-cream-canvas));--case-card:color-mix(in srgb, var(--case-tint) 14%, var(--colour-white));--case-ink:color-mix(in srgb, var(--case-accent) 42%, var(--colour-ink));--case-muted:color-mix(in srgb, var(--case-accent) 28%, var(--colour-ink-muted));background:var(--case-wash)}.case-study--seedly{--case-accent:#1a4030;--case-accent-secondary:#4f8f5f}.case-study--mystop{--case-accent:#1a3a6e;--case-accent-secondary:#2caaf1}.case-study--firstpickup{--case-accent:#1f6b61;--case-accent-secondary:#d4a574}.case-study--tvplayer{--case-accent:#3a2752;--case-accent-secondary:#c43d8a}.case-study--rare{--case-accent:#2a3e46;--case-accent-secondary:#efba8e}.case-panel,.case-panel--decision,.case-panel--reflection,.case-panel--media,.outcome-card,.number-card{border:none}.case-panel{background:var(--case-panel,var(--colour-white));border-radius:var(--radius-lg);padding:var(--space-24);box-shadow:var(--shadow-card);-webkit-backface-visibility:hidden;backface-visibility:hidden}.case-panel .eyebrow,.case-section-band .eyebrow,.case-meta .eyebrow,.decision-row .eyebrow{color:var(--case-accent,var(--colour-on-surface-muted))}.case-panel .heading-2,.case-panel h2,.case-section-band h2,.decision-row h2,.case-hero__title .case-title,.case-brand--text{color:var(--case-ink,var(--colour-on-surface));text-wrap:balance}.case-panel p,.case-section-band>.stack>p,.decision-row .stack>p,.case-hero__title .heading-4,.case-meta dd{color:var(--case-muted,var(--colour-on-surface))}.case-panel .heading-2{text-wrap:balance}.case-panel--decision{padding:var(--space-24);background:var(--case-panel,var(--colour-white))}.case-panel--reflection{background:var(--case-panel-strong,var(--case-accent-soft-strong));box-shadow:var(--shadow-card)}.case-section-band{background:var(--case-accent-soft-strong);border-radius:var(--radius-xl);padding:var(--space-32) var(--space-24);box-shadow:var(--shadow-card-soft)}.case-section-band .stack{--stack-gap:var(--space-20)}.case-panel--media{background:var(--case-card,color-mix(in srgb, var(--case-tint,var(--case-accent)) 14%, var(--colour-white)));box-shadow:var(--shadow-card)}@media (width>=52rem){.case-panel{padding:var(--space-32)}.case-panel--decision{padding:var(--space-40)}.case-section-band{padding:var(--space-40) var(--space-32)}}@media (width>=64rem){.case-panel--decision{padding:var(--space-48)}.case-section-band{padding:var(--space-48) var(--space-40)}}.contact-layout{gap:var(--space-48);align-items:start;display:grid}.contact-form{order:2}.email-card{order:1}@media (width>=52rem){.contact-layout{gap:var(--space-48);grid-template-columns:minmax(0,23.0625rem) minmax(0,1fr);align-items:stretch}.contact-form,.email-card{order:0}}@media (width>=64rem){.contact-layout{gap:var(--space-112);grid-template-columns:1fr minmax(0,37.75rem);align-items:center}}.page-header{padding-block:var(--space-32) var(--space-24)}.page-header h1,.about-page h1{line-height:1}.page-header .stack--sm,.about-page__hero .stack--sm{--stack-gap:var(--space-24)}.contact-page .page-header{padding-block:var(--space-64) var(--space-24)}.contact-page .section--tight,.about-band{padding-block:var(--space-64)}.about-band--story,.about-band--life,.about-band--skills{overflow-x:hidden}@media (width>=52rem){.about-band{padding-block:var(--space-88)}}.about-band--hero,.about-band--story{background:var(--colour-surface)}.about-band--life{background:radial-gradient(ellipse 85% 70% at 8% 18%, color-mix(in srgb, var(--colour-forest) 9%, transparent), transparent 58%), radial-gradient(ellipse 75% 65% at 96% 88%, color-mix(in srgb, var(--colour-brand-tan) 16%, transparent), transparent 52%), radial-gradient(ellipse 55% 40% at 55% 45%, color-mix(in srgb, var(--colour-gold) 6%, transparent), transparent 70%), color-mix(in srgb, var(--colour-surface) 78%, var(--colour-white));padding-block:var(--space-48)}.about-band--skills{background:var(--colour-surface)}@media (width>=52rem){.about-band--life{padding-block:var(--space-64)}}.about-life{gap:var(--space-20);min-width:0;display:grid}@media (width>=40rem){.about-life{gap:var(--space-24);grid-template-columns:repeat(2,minmax(0,1fr))}}.about-life__card{border-radius:var(--radius-xl);background:var(--colour-white);min-width:0;height:100%;box-shadow:var(--shadow-card);color:inherit;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:box-shadow var(--motion-base) var(--ease-out);flex-direction:column;margin:0;padding:0;text-decoration:none;display:flex;position:relative;overflow:hidden}a.about-life__card:focus-visible{box-shadow:var(--shadow-lg);outline:var(--focus-ring);outline-offset:var(--focus-offset)}@media (hover:hover) and (pointer:fine){a.about-life__card:hover{box-shadow:var(--shadow-lg)}a.about-life__card:hover .about-life__media img{transform:scale(1.03)}a.about-life__card:hover .about-life__cta{color:var(--colour-link-hover)}}@media (prefers-reduced-motion:reduce){.about-life__card{transition:none}a.about-life__card:hover .about-life__media img{transform:none}}.about-life__media{aspect-ratio:4/3;background:color-mix(in srgb, var(--colour-ink) 8%, var(--colour-surface));flex:none;width:100%;min-width:0;margin:0;line-height:0;position:relative;overflow:hidden}.about-life__media img{object-fit:cover;width:100%;height:100%;transition:transform var(--motion-slow,.48s) var(--ease-out);display:block}.about-life__body{gap:var(--space-8);padding:var(--space-20) var(--space-20) var(--space-24);flex-direction:column;min-width:0;display:flex}.about-life__body .eyebrow{margin:0}.about-life__title{font-family:var(--font-display);font-size:var(--text-18);line-height:var(--leading-18);color:var(--colour-on-surface);margin:0;font-weight:700}.about-life__body p:not(.eyebrow){font-size:var(--text-14);line-height:var(--leading-14);color:var(--colour-on-surface);margin:0}.about-life__cta{font-size:var(--text-14);line-height:var(--leading-14);color:var(--colour-link);margin-block-start:var(--space-4);font-weight:600}.about-page__hero{gap:var(--space-40);align-items:start;min-width:0;display:grid}@media (width>=52rem){.about-page__hero{gap:var(--space-56);grid-template-columns:minmax(0,16.5rem) minmax(0,1fr);align-items:center}}@media (width>=64rem){.about-page__hero{gap:var(--space-72);grid-template-columns:minmax(0,19rem) minmax(0,1fr)}}.about-page__photos{gap:var(--space-16);width:100%;min-width:0;max-width:100%;padding:var(--space-12) var(--space-28) var(--space-20);justify-items:center;display:grid;overflow:visible}@media (width>=52rem){.about-page__photos{justify-items:stretch;padding:0}}.about-page .about__portrait-wrap{max-width:min(100%,13.75rem)}.about-page__section-title{font-family:var(--font-display);font-size:var(--text-28);line-height:var(--leading-28);margin:0;font-weight:700}.about-page__section-lead{max-width:var(--measure);font-size:var(--text-16);line-height:var(--leading-16);color:var(--colour-on-surface-muted);margin:0}.about-page__subhead{font-family:var(--font-label);font-size:var(--text-12);line-height:var(--leading-12);letter-spacing:.04em;text-transform:uppercase;color:var(--colour-on-surface-muted);margin:0;font-weight:600}.about-page__lead{font-size:var(--text-22);line-height:var(--leading-22);color:var(--colour-on-surface);max-width:var(--measure);font-weight:600}.about-page__blocks{gap:var(--space-20);min-width:0;display:grid}@media (width>=52rem){.about-page__blocks{gap:var(--space-24);grid-template-columns:repeat(3,minmax(0,1fr))}}.about-page__block{background:var(--colour-inverse);color:var(--colour-on-inverse);border-radius:var(--radius-xl);padding:var(--space-28) var(--space-24) var(--space-24);box-shadow:var(--shadow-inverse);position:relative}.about-page__block--perspective{background:color-mix(in srgb, var(--colour-forest) 22%, color-mix(in srgb, var(--colour-inverse) 88%, #3a3a3a));box-shadow:0 0 0 1px color-mix(in srgb, var(--colour-forest) 18%, #000), 0 14px 28px -10px color-mix(in srgb, var(--colour-ink) 32%, transparent)}.about-page__block--practice{background:color-mix(in srgb, var(--colour-navy) 24%, color-mix(in srgb, var(--colour-inverse) 88%, #3a3a3a));box-shadow:0 0 0 1px color-mix(in srgb, var(--colour-navy) 18%, #000), 0 14px 28px -10px color-mix(in srgb, var(--colour-ink) 32%, transparent)}.about-page__block--partnership{background:color-mix(in srgb, var(--colour-accent) 18%, color-mix(in srgb, var(--colour-inverse) 90%, #3a3a3a));box-shadow:0 0 0 1px color-mix(in srgb, var(--colour-accent) 16%, #000), 0 14px 28px -10px color-mix(in srgb, var(--colour-ink) 32%, transparent)}.about-page__block .eyebrow{color:color-mix(in srgb, var(--colour-on-inverse) 68%, transparent);margin-block-end:var(--space-8)}.about-page__block h3{font-size:var(--text-18);line-height:var(--leading-18);margin:0 0 var(--space-12);color:var(--colour-on-inverse);font-weight:600}.about-page__block p:not(.eyebrow){max-width:none;font-size:var(--text-16);line-height:var(--leading-16);color:var(--colour-on-inverse);margin:0}.about-skills__chips .chip{min-height:var(--touch-min);padding-inline:var(--space-12)}.about-toolkit{padding-block-start:var(--space-8)}.about-toolkit__title{font-family:var(--font-display);font-size:var(--text-22);line-height:var(--leading-22);margin:0;font-weight:700}.skill-card-grid{gap:clamp(var(--space-12), 1.5vw, var(--space-16));grid-template-columns:repeat(auto-fit,minmax(min(100%,16.5rem),1fr));margin:0;padding:0;list-style:none;display:grid}.skill-card-grid>li{min-width:0;display:flex}.skill-card{width:100%;min-height:6.75rem;padding:var(--space-12);background:linear-gradient(165deg, color-mix(in srgb, var(--skill-a,#888) 38%, transparent), color-mix(in srgb, var(--skill-b,var(--skill-a,#888)) 28%, transparent) 48%, color-mix(in srgb, var(--skill-c,var(--skill-a,#888)) 36%, transparent)), color-mix(in srgb, var(--colour-inverse) 86%, var(--skill-b,var(--skill-a,#888)) 14%);border-radius:var(--radius-bento);box-shadow:0 0 0 1px color-mix(in srgb, var(--skill-glow,var(--skill-a,#888)) 14%, transparent), 0 12px 28px -8px color-mix(in srgb, var(--skill-glow,var(--skill-a,#888)) 28%, transparent);flex:auto;justify-content:stretch;align-items:stretch;display:flex;overflow:clip;container:skill-card/inline-size}.skill-card__overlay{align-items:flex-start;gap:var(--space-12);width:100%;min-width:0;padding:var(--space-8) var(--space-12);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(9px);display:flex}.skill-card__logo{flex:none;place-items:center;width:1.75rem;height:1.75rem;margin-block-start:.15rem;display:grid}.skill-card--figma .skill-card__logo{width:1.35rem;height:2rem;margin-block-start:0}.skill-card__logo img{object-fit:contain;width:100%;height:100%;display:block}.skill-card__logo--invert img{filter:brightness(0)invert()}.skill-card__copy{gap:var(--space-4);flex-direction:column;flex:auto;min-width:0;display:flex}.skill-card__label{font-family:var(--font-display);font-size:var(--text-18);line-height:var(--leading-18);color:#d9d9d9;overflow-wrap:anywhere;text-wrap:balance;font-weight:600}.skill-card__blurb{font-family:var(--font-body);font-size:var(--text-12);line-height:var(--leading-12);color:#d9d9d9b8;overflow-wrap:break-word;text-wrap:pretty;font-weight:500}@container skill-card (width<=17rem){.skill-card__overlay{gap:var(--space-8);padding:var(--space-4) var(--space-8)}.skill-card__label{font-size:var(--text-16);line-height:var(--leading-16)}}@media (width<=22.5rem){.skill-card-grid{grid-template-columns:1fr}}.skill-card--figma{--skill-a:#0acf83;--skill-b:#a259ff;--skill-c:#1abcfe;--skill-glow:#a259ff}.skill-card--ai{--skill-a:#a78bfa;--skill-b:#38bdf8;--skill-c:#34d399;--skill-glow:#a78bfa}.skill-card--cursor{--skill-a:#f54e00;--skill-b:#26251e;--skill-c:#ebeae5;--skill-glow:#f54e00}.skill-card--vscode{--skill-a:#007acc;--skill-b:#1f9cf0;--skill-c:#005a9e;--skill-glow:#007acc}.skill-card--github{--skill-a:#6e40c9;--skill-b:#24292f;--skill-c:#2da44e;--skill-glow:#6e40c9}.skill-card--illustrator{--skill-a:#ff9a00;--skill-b:#300;--skill-c:#ffc14f;--skill-glow:#ff9a00}.skill-card--xcode{--skill-a:#147efb;--skill-b:#1c1c1e;--skill-c:#64d2ff;--skill-glow:#147efb}.skill-card--cloudflare{--skill-a:#f38020;--skill-b:#faae40;--skill-c:#fff;--skill-glow:#f38020}.skill-card--tokens{--skill-a:#7c5cfc;--skill-b:#2bb3ff;--skill-c:#12c48b;--skill-glow:#7c5cfc}.skill-card--swiftui{--skill-a:#f05138;--skill-b:#fa7343;--skill-c:#f8a18c;--skill-glow:#f05138}.skill-card--ios{--skill-a:#007aff;--skill-b:#5856d6;--skill-c:#af52de;--skill-glow:#007aff}.skill-card--web{--skill-a:#e34f26;--skill-b:#1572b6;--skill-c:#639;--skill-glow:#1572b6}.skill-card--javascript{--skill-a:#f7df1e;--skill-b:#323330;--skill-c:#f0db4f;--skill-glow:#f7df1e}.skill-card--tvos{--skill-a:#5ac8fa;--skill-b:#1c1c1e;--skill-c:#af52de;--skill-glow:#5ac8fa}.skill-card--unraid{--skill-a:#f15a2c;--skill-b:#e8311c;--skill-c:#ff8a65;--skill-glow:#f15a2c}.skill-card--hardware{--skill-a:#7c9cf0;--skill-b:#a8b4c8;--skill-c:#5b6b8a;--skill-glow:#7c9cf0}.work-index .page-header{padding-block:var(--space-32) var(--space-40)}.work-index .page-header .stack{--stack-gap:var(--space-24)}.work-filters{scroll-margin-block-start:var(--space-96)}.work-index>.section{padding-block:var(--space-56) 0}.work-index{padding-block-end:var(--space-56)}.work-index>.section .stack--lg{--stack-gap:var(--space-24)}.work-index .featured-studies.stack--lg{--stack-gap:var(--space-56)}.work-index .project-card{gap:var(--space-24)}.work-index .featured-studies .project-card .stack{gap:var(--space-28)}@media (width>=64rem){.work-index{padding-block-end:var(--space-72)}.work-index>.section{padding-block:var(--space-72) 0}.work-index>.section .stack--lg{--stack-gap:var(--space-32)}.work-index .featured-studies.stack--lg{--stack-gap:var(--space-72)}.work-index .project-card{gap:var(--space-88)}.work-index .featured-studies .project-card .stack{gap:var(--space-44)}}.work-index [data-work-item][hidden],.work-index [data-work-section][hidden]{display:none!important}.work-index__empty{justify-content:center;align-items:center;gap:var(--space-12);min-height:18rem;padding-block:var(--space-64) var(--space-96);text-align:center;flex-direction:column;display:flex}.work-index__empty[hidden]{display:none}.work-index__empty-title{max-width:28rem;margin-inline:auto}.work-index__empty-copy{justify-content:center;align-items:center;column-gap:var(--space-8);row-gap:var(--space-8);max-width:min(100%,28rem);padding-inline:var(--space-4);color:var(--colour-on-surface-muted);text-wrap:balance;flex-wrap:wrap;margin-inline:auto;display:flex}.work-index__empty-copy .chip{flex-shrink:0}.work-grid-medium{gap:var(--space-20);display:grid}@media (width>=52rem){.work-grid-medium{gap:var(--space-24);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.work-grid-medium{gap:var(--space-32)}}@media (width>=52rem){.page-header{padding-block:var(--space-40) var(--space-32)}}@media (width>=64rem){.page-header{padding-block:var(--space-32) var(--space-40)}.contact-page .page-header{padding-block:var(--space-88) 0}.contact-page .section--tight{padding-block:var(--space-88)}}.case-brand--text{font-family:var(--font-rounded);font-size:var(--text-18);line-height:var(--leading-18);letter-spacing:-.02em;color:var(--colour-on-surface);margin:0;font-weight:700}@media (width>=52rem){.case-brand--text{font-size:var(--text-32);line-height:var(--leading-32)}}.case-meta--compact{max-width:28rem}.stack--measure{max-width:46.5rem}.cluster--spread{justify-content:space-between;width:100%}.container.cluster--spread{width:min(100% - var(--gutter) * 2, var(--content-max))}.case-hero--tv .tv-shot--hero{width:100%}.tv-frame{width:100%;line-height:0}.tv-frame,.web-frame,.tablet-frame,.phone-frame,.about__portrait-wrap,.about-life__media,.server-photos__item{touch-action:manipulation}.tv-compare{gap:var(--space-24);display:grid}.tv-compare__item{align-items:center;gap:var(--space-16);flex-direction:column;margin:0;display:flex}.tv-compare__item figcaption{margin:0}@media (width>=52rem){.tv-compare{gap:var(--space-40);grid-template-columns:1fr 1fr}}.tv-shots{align-items:center;gap:var(--space-48);flex-direction:column;display:flex}.tv-shot{width:100%}@media (width>=52rem){.tv-shots{gap:var(--space-88)}.tv-shot--movies{width:min(100%,55rem)}.tv-shot--show,.tv-shot--episodes{width:min(100%,67.5rem)}.tv-shot--details{width:min(100%,60rem)}}@media (width>=64rem){.tv-shots{gap:7.75rem}}.project-card--tv .project-card__shots{grid-template-columns:1fr;align-items:center;padding-block-end:0;padding-inline-end:0}.project-card--tv .tv-frame{max-width:none}.work-card{background:var(--colour-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);height:100%;color:inherit;transition:box-shadow var(--motion-base) var(--ease-out);-webkit-backface-visibility:hidden;backface-visibility:hidden;flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.work-card--soon{cursor:default}.work-card__media{isolation:isolate;background:var(--mark-bg,var(--colour-navy));flex:none;width:100%;line-height:0;position:relative;overflow:hidden}.work-card__media:has(.project-mark--seedly){--mark-bg:var(--colour-forest)}.work-card__media:has(.project-mark--salmon){--mark-bg:var(--colour-navy)}.work-card__media:has(.project-mark--soundpoint){--mark-bg:#2a2438}.work-card__media:has(.project-mark--scweather){--mark-bg:var(--colour-navy)}.work-card__media:has(.project-mark--cogoal){--mark-bg:var(--colour-product)}.work-card__media:has(.project-mark--portfolio){--mark-bg:var(--colour-brand-tan)}.work-card--medium .work-card__media{aspect-ratio:16/10}.work-card__bloom{pointer-events:none;transform-origin:50%;width:100%;height:100%;min-height:0;display:block;position:absolute;inset:0}.work-card:has(.work-card__title a:focus-visible),a.work-card:focus-visible{box-shadow:var(--shadow-lg);outline:var(--focus-ring);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion:reduce){.work-card{transition:none}}.work-card__body{padding:var(--space-24);gap:var(--space-12);flex-direction:column;display:flex}.work-card__status{font-size:var(--text-12);line-height:var(--leading-12);letter-spacing:.04em;text-transform:uppercase;color:var(--colour-on-surface-muted);margin:0;font-weight:600}.work-card--soon .work-card__status{color:var(--colour-navy)}.work-card__title{font-family:var(--font-display);font-size:var(--text-22);font-weight:700;line-height:var(--leading-22);color:var(--colour-on-surface);margin:0}.work-card__title a{color:inherit;text-decoration:none}.work-card__title a:after{content:"";z-index:1;position:absolute;inset:0}.work-card__title a:focus-visible{outline:none}@media (hover:hover) and (pointer:fine){.work-card__title a:hover{color:var(--colour-link-hover)}}.work-card__title a:active{color:var(--colour-link-active)}.work-card--medium .work-card__title{font-size:var(--text-28);line-height:var(--leading-28)}.work-card__summary{font-size:var(--text-14);line-height:var(--leading-14);color:var(--colour-on-surface);margin:0}.work-card--medium .work-card__summary{font-size:var(--text-16);line-height:var(--leading-16)}.work-card__body .chip-list{z-index:2;margin-block-start:var(--space-4);position:relative}.project-mark{width:100%;height:100%;min-height:inherit;background:var(--mark-bg,var(--colour-navy));display:block;position:relative;overflow:hidden}.project-mark:before,.project-mark:after{content:"";border-radius:var(--radius-sm);pointer-events:none;position:absolute}.project-mark--seedly{--mark-bg:var(--colour-forest)}.project-mark--seedly:before{background:color-mix(in srgb, var(--colour-surface) 88%, transparent);border-radius:var(--radius-pill);width:42%;height:42%;bottom:18%;left:12%}.project-mark--seedly:after{background:var(--colour-gold);border-radius:var(--radius-pill);opacity:.82;width:28%;height:28%;top:22%;right:16%}.project-mark--salmon{--mark-bg:var(--colour-navy)}.project-mark--salmon:before{background:linear-gradient(90deg, transparent 8%, var(--colour-accent) 8% 24%, transparent 24% 38%, var(--colour-brand-tan) 38% 62%, transparent 62% 76%, var(--colour-accent) 76% 92%, transparent 92%);opacity:.9;border-radius:0;height:18%;inset:auto 0 28%}.project-mark--salmon:after{background:color-mix(in srgb, var(--colour-surface) 16%, transparent);border:2px solid color-mix(in srgb, var(--colour-surface) 42%, transparent);border-radius:var(--radius-md);width:34%;height:34%;top:16%;right:10%}.project-mark--soundpoint{--mark-bg:#2a2438}.project-mark--soundpoint:before{border-radius:var(--radius-sm);background:repeating-linear-gradient(90deg, var(--colour-brand-tan) 0 .45rem, transparent .45rem .9rem, var(--colour-surface) .9rem 1.15rem, transparent 1.15rem 1.65rem);opacity:.88;height:40%;inset:30% 10% auto;mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.project-mark--soundpoint:after{border-radius:var(--radius-pill);border:3px solid var(--colour-product);background:0 0;width:3.5rem;height:3.5rem;top:18%;left:14%}.project-mark--scweather{--mark-bg:linear-gradient(165deg, #3d5f8c 0%, var(--colour-navy) 55%, #0e203d 100%);background:var(--mark-bg)}.project-mark--scweather:before{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--colour-surface) 92%, transparent);width:38%;height:24%;box-shadow:2.5rem 1.2rem 0 -.4rem color-mix(in srgb, var(--colour-surface) 72%, transparent), 4.8rem .4rem 0 -.8rem color-mix(in srgb, var(--colour-surface) 52%, transparent);top:28%;left:14%}.project-mark--scweather:after{aspect-ratio:1;border-radius:var(--radius-pill);background:var(--colour-gold);width:22%;box-shadow:0 0 0 .35rem color-mix(in srgb, var(--colour-gold) 28%, transparent);top:18%;right:16%}.project-mark--cogoal{--mark-bg:var(--colour-product)}.project-mark--cogoal:before{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--colour-surface) 18%, transparent);border:2px solid color-mix(in srgb, var(--colour-surface) 48%, transparent);width:46%;height:46%;top:22%;left:10%}.project-mark--cogoal:after{border-radius:var(--radius-sm);background:var(--colour-brand-tan);width:1.75rem;height:1.75rem;box-shadow:-2.2rem -1.4rem 0 var(--colour-surface), -2.2rem .8rem 0 color-mix(in srgb, var(--colour-surface) 72%, transparent);bottom:22%;right:18%}.project-mark--portfolio{--mark-bg:var(--colour-brand-tan)}.project-mark--portfolio:before{border-radius:var(--radius-md);background:var(--colour-ink);opacity:.88;width:52%;height:36%;bottom:20%;left:10%}.project-mark--portfolio:after{border-radius:var(--radius-sm);background:var(--colour-cream-canvas);width:28%;height:28%;box-shadow:var(--shadow-sm);top:18%;right:12%}.site-main:has(.error-page){flex-direction:column;display:flex}.error-page{padding-block:var(--space-48) var(--space-64);flex:1;place-items:center;min-height:22rem;display:grid}.error-page .container{text-align:center;align-items:center;gap:var(--space-32);flex-direction:column;display:flex}.error-page h1{font-size:var(--text-32);line-height:var(--leading-32);text-transform:none;letter-spacing:normal;margin:0}.error-page__copy p{color:var(--colour-on-surface-muted);margin-inline:auto}.error-page__actions,.error-page__shortcuts{justify-content:center}.error-page__stage{min-height:7.5rem;padding:var(--space-24) var(--space-40);place-items:center;display:grid;position:relative}.error-page__code{appearance:none;font-family:var(--font-display);letter-spacing:-.06em;color:var(--colour-on-surface);cursor:pointer;touch-action:manipulation;border-radius:var(--radius-sm);background:0 0;border:0;justify-content:center;align-items:center;gap:.06em;margin:0;padding:0;font-size:clamp(5rem,16vw,8.5rem);font-weight:700;line-height:.9;display:flex}.error-page__hole{border:.085em solid var(--colour-navy);border-right-color:#0000;border-radius:50%;flex-shrink:0;width:.62em;height:.62em;display:inline-block;position:relative;transform:rotate(28deg)}.error-page__hole:after{content:"";background:var(--colour-brand-tan);border-radius:.04em;width:.18em;height:.18em;position:absolute;inset-block-end:.04em;inset-inline-end:-.14em}.error-page__marks{pointer-events:none;position:absolute;inset:0}.error-page__marks i{display:block;position:absolute}.error-page__marks i:first-child{background:var(--colour-brand-tan);border-radius:.18rem;width:.85rem;height:.85rem;inset-block-start:.4rem;inset-inline-start:.2rem}.error-page__marks i:nth-child(2){background:var(--colour-navy);border-radius:50%;width:.55rem;height:.55rem;inset-block-start:1.1rem;inset-inline-end:.35rem}.error-page__marks i:nth-child(3){background:var(--colour-gold);border-radius:.22rem;width:1.1rem;height:1.1rem;inset-block-end:.15rem;inset-inline-end:.7rem}.error-page__marks i:nth-child(4){background:var(--colour-accent);border-radius:.1rem;width:.45rem;height:.45rem;inset-block-end:1.35rem;inset-inline-start:1.1rem}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.error-page__code{transition:transform var(--motion-base) var(--ease-out)}.error-page__code:hover,.error-page__code:focus-visible{transform:rotate(-2deg)}}@media (prefers-reduced-motion:no-preference){.error-page__marks i{animation:error-mark-float 2.8s var(--ease-in-out) infinite alternate}.error-page__marks i:nth-child(2){animation-duration:3.4s;animation-delay:.35s}.error-page__marks i:nth-child(3){animation-duration:3.1s;animation-delay:.7s}.error-page__marks i:nth-child(4){animation-duration:2.5s;animation-delay:.15s}}@keyframes error-mark-float{0%{transform:translateY(0)}to{transform:translateY(-.45rem)}}.server-page .eyebrow{text-transform:uppercase}.server-page h1.heading-2{text-transform:none;letter-spacing:normal}.server-page .stack--lg{--stack-gap:var(--space-48)}.server-split .stack{--stack-gap:var(--space-16)}.server-page .photo-gallery__list{gap:var(--space-16);column-count:auto;padding:var(--space-8);grid-template-columns:1fr 1fr;column-gap:normal;display:grid}.server-page .photo-gallery__cell{margin:0;padding-block-start:0}.server-page .photo-tile__media,.server-page .photo-tile--wide .photo-tile__media{aspect-ratio:4/5}@media (width>=64rem){.server-page .photo-gallery__list{gap:var(--space-20);grid-template-columns:repeat(4,minmax(0,1fr))}}.server-photos{gap:var(--space-32);max-width:64rem;margin-inline:auto;display:grid}.server-photos--wide,.server-photos--portraits{grid-template-columns:1fr}@media (width>=52rem){.server-photos--portraits{grid-template-columns:1fr 1fr}}.server-photos__item{border-radius:var(--radius-xl);background:var(--colour-ink);-webkit-mask-image:-webkit-radial-gradient(#fff 100%,#000);min-width:0;margin:0;overflow:hidden;mask-image:radial-gradient(#fff,#000)}.server-photos__item img{width:100%;height:auto;display:block}.server-split{gap:var(--space-32);display:grid}@media (width>=52rem){.server-split{gap:var(--space-64);grid-template-columns:1fr 1fr;align-items:start}}.server-specs{gap:var(--space-32) var(--space-24);grid-template-columns:1fr 1fr;margin:0;display:grid}@media (width>=64rem){.server-specs{grid-template-columns:repeat(4,minmax(0,1fr))}}.server-specs dd{font-size:var(--text-16);line-height:var(--leading-16);color:var(--colour-on-surface);margin:0}.photo-gallery-wrap{--photo-ease-bounce:cubic-bezier(.22, 1.15, .36, 1);--photo-ease-snap:cubic-bezier(.22, 1, .36, 1);--photo-ease-jelly:cubic-bezier(.34, 1.45, .64, 1);--photo-motion:var(--motion-base);--photo-motion-fast:var(--motion-fast);--photo-motion-enter:var(--motion-lightbox);--photo-glass-fill:#14141485;--photo-glass-blur:24px;min-width:0}.photo-gallery__list{padding:var(--space-8);column-count:1;column-gap:var(--space-24);margin:0;list-style:none}@media (prefers-reduced-motion:no-preference){.photo-gallery__list{transition:column-gap var(--motion-layout) var(--ease-layout)}.photo-gallery__cell{transition:margin var(--motion-layout) var(--ease-layout)}.photo-tile__media{transition:aspect-ratio var(--motion-layout) var(--ease-layout)}.photo-caption--tile,.photo-tile__expand{transition:opacity var(--photo-motion) var(--ease-out), transform .52s var(--photo-ease-jelly), background-color var(--photo-motion-fast) var(--ease-out), border-color var(--photo-motion-fast) var(--ease-out), top var(--motion-layout) var(--ease-layout), right var(--motion-layout) var(--ease-layout), left var(--motion-layout) var(--ease-layout), bottom var(--motion-layout) var(--ease-layout), max-width var(--motion-layout) var(--ease-layout), padding var(--motion-layout) var(--ease-layout)}.photo-tile__expand .photo-glass__icon{transition:transform .52s var(--photo-ease-jelly)}}@media (width>=36rem){.photo-gallery__list{column-count:2;column-gap:var(--space-24)}}@media (width>=64rem){.photo-gallery__list{column-count:3;column-gap:var(--space-28)}.photo-caption--tile{left:var(--space-16);bottom:var(--space-16);padding:var(--space-16);max-width:min(18rem, calc(100% - var(--space-32)))}.photo-tile__expand{top:var(--space-16);right:var(--space-16)}}.photo-gallery__cell{margin:0 0 var(--space-24);break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;min-width:0;padding-block-start:1px}.about-band--story:has(.photo-gallery),.about-band--story:has(.photo-gallery-wrap){overflow:visible}.case-section-band:has(.tv-shots),.case-section-band:has(.device-shots),.case-section-band:has(.lightbox-media){box-shadow:none;background:0 0;border-radius:0;position:relative;overflow:visible}.case-section-band:has(.tv-shots):before,.case-section-band:has(.device-shots):before,.case-section-band:has(.lightbox-media):before{content:"";z-index:0;border-radius:var(--radius-xl);background:var(--case-accent-soft-strong);box-shadow:var(--shadow-card-soft);pointer-events:none;position:absolute;inset:0}.case-section-band:has(.tv-shots)>*,.case-section-band:has(.device-shots)>*,.case-section-band:has(.lightbox-media)>*{z-index:1;position:relative}.photo-tile{margin:0;position:relative}.photo-tile__hit{border-radius:var(--radius-2xl);background:var(--colour-ink);color:inherit;cursor:pointer;touch-action:manipulation;transition:box-shadow var(--photo-motion) var(--ease-out);-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;position:relative;box-shadow:32px 32px 39.3px #00000029}.photo-tile__hit:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);color:inherit}.photo-tile__media{border-radius:var(--radius-2xl);aspect-ratio:5/6;-webkit-mask-image:-webkit-radial-gradient(#fff 100%,#000);display:block;overflow:hidden;mask-image:radial-gradient(#fff,#000)}.photo-tile--wide .photo-tile__media{aspect-ratio:5/4}.photo-tile__img{object-fit:cover;object-position:center 40%;vertical-align:middle;width:100%;height:100%;transition:transform var(--photo-motion-enter) var(--photo-ease-bounce), opacity calc(var(--motion-lightbox) * .35) var(--ease-out);display:block}.photo-glass{border:1px solid var(--colour-bento-glass-stroke);background:var(--photo-glass-fill);backdrop-filter:blur(var(--photo-glass-blur)) saturate(1.2);color:var(--colour-on-inverse);-webkit-backface-visibility:hidden;backface-visibility:hidden}.photo-glass__icon{transition:transform var(--photo-motion) var(--photo-ease-bounce);display:block}.photo-tile__expand,.photo-lightbox__close{transform-origin:50%;will-change:transform;border-color:#fff3;border-radius:1.375rem;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:grid;position:absolute}.photo-tile__expand{top:var(--space-24);right:var(--space-24);z-index:2;opacity:0;pointer-events:none}.photo-tile__hit:hover .photo-tile__expand,.photo-tile__hit:focus-visible .photo-tile__expand{pointer-events:auto}.photo-tile__expand .photo-glass__icon{width:1.875rem;height:1.875rem}.photo-lightbox__close .photo-glass__icon{width:1.25rem;height:1.25rem}.photo-caption{gap:var(--space-4);padding:var(--space-24);border-radius:var(--radius-xl);flex-direction:column;display:flex}.photo-caption__title{font-family:var(--font-display);font-size:var(--text-24);font-weight:600;line-height:var(--leading-24);color:var(--colour-on-inverse);margin:0}.photo-caption__sub{font-size:var(--text-14);color:var(--colour-bento-on-ink-78);margin:0;font-weight:400;line-height:1.25rem}.photo-caption--tile{left:var(--space-24);bottom:var(--space-24);z-index:2;max-width:min(21.5rem, calc(100% - var(--space-48)));opacity:0;pointer-events:none;transform-origin:50% 100%;will-change:transform;position:absolute}.photo-tile__hit:hover .photo-caption--tile,.photo-tile__hit:focus-visible .photo-caption--tile{pointer-events:auto}.photo-caption--tile .photo-caption__title,.photo-caption--tile .photo-caption__sub{display:block}@media (hover:hover) and (pointer:fine){.photo-tile__hit:hover .photo-tile__img{transform:scale(1.03)}.photo-tile__hit:hover{box-shadow:28px 36px 44px #0003}.photo-tile__hit:hover .photo-tile__expand,.photo-tile__hit:focus-visible .photo-tile__expand,.photo-tile__hit:hover .photo-caption--tile,.photo-tile__hit:focus-visible .photo-caption--tile{opacity:1}.photo-tile__expand:hover,.photo-tile__expand:focus-visible{background:#101010ad;border-color:#ffffff52;transform:scale(1.14,1.06)}.photo-tile__expand:hover .photo-glass__icon,.photo-tile__expand:focus-visible .photo-glass__icon{transform:scale(1.22)}.photo-tile__expand:active{transition-duration:.14s;transform:scale(.9,.96)}.photo-tile__expand:active .photo-glass__icon{transition-duration:.14s;transform:scale(.92)}.photo-caption--tile:hover{background:#101010ad;border-color:#ffffff52;transform:scale(1.04,1.02)}.photo-caption--tile:active{transition-duration:.14s;transform:scale(.98,.99)}.photo-lightbox__close{transition:opacity .38s var(--ease-out), transform .52s var(--photo-ease-jelly), background-color .28s var(--ease-out), border-color .28s var(--ease-out)}.photo-lightbox__close .photo-glass__icon{transition:transform .52s var(--photo-ease-jelly)}.photo-lightbox--chrome-ready .photo-lightbox__close:hover,.photo-lightbox--chrome-ready .photo-lightbox__close:focus-visible{background:#101010ad;border-color:#ffffff52;transform:scale(1.14,1.06)}.photo-lightbox--chrome-ready .photo-lightbox__close:hover .photo-glass__icon,.photo-lightbox--chrome-ready .photo-lightbox__close:focus-visible .photo-glass__icon{transform:scale(1.22)}.photo-lightbox--chrome-ready .photo-lightbox__close:active{transition-duration:.14s;transform:scale(.9,.96)}.photo-lightbox--chrome-ready .photo-lightbox__close:active .photo-glass__icon{transition-duration:.14s;transform:scale(.92)}.photo-lightbox--chrome-ready .photo-caption--lightbox:not([hidden]){transition:opacity .38s var(--ease-out), transform .52s var(--photo-ease-jelly), background-color .28s var(--ease-out), border-color .28s var(--ease-out)}.photo-lightbox--chrome-ready .photo-caption--lightbox:not([hidden]):hover{background:#101010ad;border-color:#ffffff52;transform:scale(1.04,1.02)}.photo-lightbox--chrome-ready .photo-caption--lightbox:not([hidden]):active{transition-duration:.14s;transform:scale(.98,.99)}}@media (hover:none),(pointer:coarse){.photo-tile__expand,.photo-caption--tile{opacity:1;pointer-events:auto}}.photo-tile--launch{visibility:hidden}.lightbox-media{color:inherit;cursor:pointer;touch-action:manipulation;text-decoration:none;display:block;position:relative}.lightbox-media:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);color:inherit}.lightbox-media__img{object-fit:cover;border-radius:inherit;vertical-align:middle;width:100%;height:100%;transition:transform var(--photo-motion-enter,var(--motion-lightbox)) var(--photo-ease-bounce,var(--ease-out)), opacity calc(var(--motion-lightbox) * .35) var(--ease-out);display:block}.tv-frame.lightbox-media .lightbox-media__img,.web-frame.lightbox-media .lightbox-media__img,.tablet-frame.lightbox-media .lightbox-media__img{object-fit:contain;height:auto}.lightbox-media .photo-tile__expand{top:var(--space-12);right:var(--space-12)}.phone-frame.lightbox-media .photo-tile__expand{top:max(var(--space-12), 4%);right:max(var(--space-12), 5%)}@media (width>=64rem){.lightbox-media .photo-tile__expand{top:var(--space-16);right:var(--space-16)}}.lightbox-media:hover .photo-tile__expand,.lightbox-media:focus-visible .photo-tile__expand{pointer-events:auto}@media (hover:hover) and (pointer:fine){.lightbox-media:hover .lightbox-media__img{transform:scale(1.02)}.lightbox-media:hover .photo-tile__expand,.lightbox-media:focus-visible .photo-tile__expand{opacity:1}}@media (hover:none),(pointer:coarse){.lightbox-media .photo-tile__expand{opacity:1;pointer-events:auto}}@supports not (backdrop-filter:blur(1px)){.photo-glass{background:#0e0e0ee0}}@media (prefers-reduced-transparency:reduce){.photo-glass{backdrop-filter:none;background:color-mix(in srgb, var(--colour-ink) 90%, transparent)}}.plants-page h1.heading-2{text-transform:none;letter-spacing:normal}.plants-page .stack--lg{--stack-gap:var(--space-32)}.plants-intro{gap:var(--space-8);max-width:40.25rem;padding-block:var(--space-40) var(--space-8);display:grid}.plants-intro .heading-2{font-size:var(--text-28);line-height:var(--leading-28,2.25rem);margin:0;font-weight:700}.plants-intro p{font-size:var(--text-18);line-height:var(--leading-18,1.75rem);margin:0}.photo-lightbox{width:100%;max-width:none;height:100%;max-height:none;color:var(--colour-on-inverse);box-sizing:border-box;background:0 0;border:none;margin:0;padding:0}.photo-lightbox::backdrop{opacity:1;background:0 0}.photo-lightbox__scrim{z-index:0;pointer-events:none;backdrop-filter:blur(17.3px);opacity:0;background:#303030eb;transition:opacity .52s cubic-bezier(.33,0,.2,1);position:fixed;inset:0}.photo-lightbox--scrim-on .photo-lightbox__scrim{opacity:1}.photo-lightbox--closing .photo-lightbox__scrim{opacity:0;transition-duration:.48s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.photo-lightbox__stage{--photo-lightbox-chrome:calc(var(--space-16) + 2.75rem + var(--space-16));z-index:1;min-height:100%;padding:var(--photo-lightbox-chrome) var(--space-60) var(--space-48);box-sizing:border-box;transition:padding var(--motion-layout) var(--ease-layout);place-items:center;display:grid;position:relative}.photo-lightbox__figure{align-items:flex-start;gap:var(--space-24);width:fit-content;max-width:min(76.25rem,100%);max-height:calc(100dvh - var(--photo-lightbox-chrome) - var(--space-48));flex-direction:column;margin:0;display:flex;position:relative}.photo-lightbox__frame{max-width:100%;line-height:0;position:relative}.photo-lightbox[open] .photo-lightbox__figure{animation:none}.photo-lightbox__close,.photo-caption--lightbox{opacity:0;pointer-events:none;transition:opacity .38s var(--ease-out), transform .38s var(--ease-out);transform:translateY(.45rem)}.photo-lightbox--chrome-ready .photo-lightbox__close,.photo-lightbox--chrome-ready .photo-caption--lightbox:not([hidden]){opacity:1;pointer-events:auto;transform:translate(0,0)}.photo-lightbox--closing .photo-caption--lightbox,.photo-lightbox--closing .photo-lightbox__close{opacity:0;pointer-events:none;transition-duration:.16s;transform:translateY(.35rem)}.photo-lightbox__img{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - var(--photo-lightbox-chrome) - var(--space-48) - var(--space-24) - 6.5rem);object-fit:contain;border-radius:.25rem;display:block;box-shadow:32px 32px 39.3px #00000029}.photo-caption--lightbox{z-index:2;transform-origin:0%;will-change:transform;width:max-content;max-width:min(21.5rem,100%);transition:opacity .38s var(--ease-out), transform .38s var(--ease-out), background-color var(--photo-motion) var(--ease-out), border-color var(--photo-motion) var(--ease-out);margin:0;position:static}.photo-lightbox__close{top:var(--space-16);right:var(--space-16);z-index:3;color:var(--colour-on-inverse);cursor:pointer;touch-action:manipulation;position:absolute}.photo-lightbox__close:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.photo-lightbox--swap .photo-lightbox__frame{animation:photo-figure-swap calc(var(--photo-motion) * 1.35) var(--photo-ease-snap)}@keyframes photo-figure-swap{0%{opacity:.55;transform:scale(.988)translateY(.25rem)}to{opacity:1;transform:none}}html.photo-vt{view-transition-name:none}html.photo-vt .site-header,html.photo-vt .skip-link{view-transition-name:none!important}::view-transition-group(photo-lightbox){z-index:1;animation-duration:.55s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-old(photo-lightbox),::view-transition-new(photo-lightbox){object-fit:cover;animation-timing-function:inherit;border-radius:.25rem;overflow:hidden}::view-transition-image-pair(photo-lightbox){isolation:isolate}@media (width<=39.99rem){.photo-lightbox__stage{--photo-lightbox-chrome:calc(var(--space-12) + 2.75rem + var(--space-12));padding:var(--photo-lightbox-chrome) var(--space-24) var(--space-24)}.photo-lightbox__figure{gap:var(--space-16);max-height:calc(100dvh - var(--photo-lightbox-chrome) - var(--space-24))}.photo-lightbox__img{max-height:calc(100dvh - var(--photo-lightbox-chrome) - var(--space-24) - var(--space-16) - 6.5rem)}.photo-lightbox__close{top:var(--space-12);right:var(--space-12)}}@media (prefers-reduced-motion:reduce){.photo-tile__img,.photo-tile__expand,.photo-glass__icon,.photo-caption--tile,.photo-lightbox__close,.photo-caption--lightbox,.photo-lightbox__scrim,.photo-lightbox__figure,.photo-gallery__list,.photo-gallery__cell,.photo-tile__media,.photo-lightbox__stage{transition:none!important}.photo-lightbox[open] .photo-caption--lightbox:not([hidden]),.photo-lightbox[open] .photo-lightbox__close,.photo-lightbox--swap .photo-lightbox__frame{animation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.photo-lightbox--scrim-on .photo-lightbox__scrim,.photo-lightbox[open] .photo-lightbox__scrim{opacity:1}.photo-lightbox--closing .photo-lightbox__scrim{opacity:0}.photo-caption--tile,.photo-tile__expand,.photo-lightbox--chrome-ready .photo-caption--lightbox:not([hidden]),.photo-lightbox--chrome-ready .photo-lightbox__close{opacity:1;pointer-events:auto;transform:none}}@media print{.photo-lightbox,.photo-tile__expand,.photo-caption--tile{display:none!important}.photo-tile__hit{cursor:default;box-shadow:none}}.work-bento{gap:var(--space-24);transition:gap var(--motion-layout) var(--ease-layout);flex-wrap:wrap;align-items:stretch;display:flex}.work-bento__item{min-width:0}.bento-card{--bento-accent:var(--colour-bento-accent);--bento-ink:var(--colour-on-inverse);--bento-muted:var(--colour-bento-on-ink-72);--bento-sub:var(--colour-bento-on-ink-78);--bento-scrim:color-mix(in srgb, var(--bento-accent) 78%, white);--bento-glass:color-mix(in srgb, var(--bento-accent) 62%, transparent);--bento-glass-blur:32px;--bento-glass-border:var(--colour-bento-glass-stroke);--bento-shadow:0 12px 28px -8px color-mix(in srgb, var(--bento-accent) 64%, transparent);--bento-shot-shadow:0 10px 28px -6px #0000006b;--bento-glass-w:17.4375rem;--bento-shots-inset:calc(var(--space-24) + 8.75rem + var(--space-24));--bento-shot-w:9.5rem;--bento-x:0;--bento-y:0;color:var(--bento-ink);border-radius:var(--radius-bento);background:var(--bento-accent);box-shadow:var(--bento-shadow);touch-action:manipulation;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:box-shadow var(--motion-base) var(--ease-out), flex-basis var(--motion-layout) var(--ease-layout), width var(--motion-layout) var(--ease-layout), max-width var(--motion-layout) var(--ease-layout), min-width var(--motion-layout) var(--ease-layout), height var(--motion-layout) var(--ease-layout), min-height var(--motion-layout) var(--ease-layout), padding var(--motion-layout) var(--ease-layout);flex-direction:column;justify-content:flex-end;text-decoration:none;display:flex;position:relative;overflow:visible;container-type:inline-size}.bento-card--wide{--bento-shots-inset:calc(var(--space-24) + 8.75rem + var(--space-32));flex:46.25rem;width:auto;min-width:min(100%,22.125rem);max-width:100%;height:22rem}.bento-card--medium{flex:34.25rem;width:auto;min-width:min(100%,18rem);max-width:100%;height:22rem}.bento-card--small,.bento-card--mark{--bento-glass-w:19.75rem;flex:22.125rem;width:auto;min-width:min(100%,16rem);max-width:100%;height:22rem}.bento-card--more{--bento-accent:#353535;--bento-shadow:0 12px 28px -8px #4a4628a3;width:auto;min-width:min(100%,10.125rem);max-width:100%;height:auto;min-height:8.625rem;padding:var(--space-8);background:var(--colour-bento-see-more-start);-webkit-backface-visibility:hidden;backface-visibility:hidden;flex:10.125rem;justify-content:flex-end;align-self:flex-end;gap:.625rem;overflow:hidden}.bento-card--soon{cursor:default}@media (width<=29.99rem){.bento-card--wide,.bento-card--medium,.bento-card--small,.bento-card--mark{--bento-glass-w:19.75rem;--bento-shots-inset:calc(var(--space-24) + 8.75rem + var(--space-24));flex:100%;width:100%;min-width:0;height:22rem}.bento-card--more{flex:100%;align-self:stretch;width:100%;min-width:0;min-height:12.3125rem}}@media (width>=30rem) and (width<=64.99rem){.bento-card--wide{flex-basis:100%}.bento-card--medium,.bento-card--small,.bento-card--mark,.bento-card--more{flex-basis:calc(50% - var(--space-12))}.bento-card--more{align-self:stretch;min-height:12.3125rem}}.bento-card__visual{z-index:0;border-radius:inherit;background:var(--bento-accent);-webkit-mask-image:-webkit-radial-gradient(#fff 100%,#000);position:absolute;inset:0;overflow:hidden;mask-image:radial-gradient(#fff,#000)}.bento-card--more .bento-card__visual{border-radius:inherit;background:0 0}.bento-card__ambient{background:radial-gradient(120% 90% at 12% 0%, color-mix(in srgb, var(--bento-ink) 14%, transparent), transparent 58%), radial-gradient(90% 80% at 100% 100%, color-mix(in srgb, var(--bento-accent) 70%, black), transparent 62%), linear-gradient(160deg, color-mix(in srgb, var(--bento-accent) 88%, black), var(--bento-accent));position:absolute;inset:0}.bento-card__ambient--more{background:radial-gradient(70% 65% at 72% 28%, color-mix(in srgb, var(--colour-bento-see-more-end) 55%, transparent), transparent 62%), linear-gradient(165deg, rgb(from var(--colour-bento-see-more-start) r g b / .94), rgb(from var(--colour-bento-see-more-end) r g b / .78) 55%, rgb(from var(--colour-bento-see-more-start) r g b / .88));transition:filter var(--motion-slow) var(--ease-out);background-position:72% 28%,50%;background-size:160% 160%,100% 100%;display:block}@media (prefers-reduced-motion:no-preference){.bento-card__ambient--more{animation:bento-more-wash 16s var(--ease-in-out) infinite alternate}}@keyframes bento-more-wash{0%{background-position:18% 22%,50%}to{background-position:82% 70%,50%}}.bento-card__bg{object-fit:cover;object-position:center;filter:blur(22px);width:116%;height:116%;transition:transform var(--motion-slow) var(--ease-out), filter var(--motion-base) var(--ease-out);position:absolute;inset:-8%;transform:scale(1.04)}.bento-card__mark{width:100%;height:100%;min-height:inherit;transition:transform var(--motion-slow) var(--ease-out);display:block;transform:scale(1.08)}.bento-card__darken{background:var(--colour-bento-darken-muted);pointer-events:none;position:absolute;inset:0}.bento-card--more .bento-card__darken{display:none}.bento-card__scrim{pointer-events:none;background:linear-gradient(180deg, color-mix(in srgb, var(--bento-scrim) 33%, transparent) 0%, color-mix(in srgb, var(--bento-scrim) 22%, transparent) 50%, color-mix(in srgb, var(--bento-scrim) 70%, transparent) 100%);position:absolute;inset:0}.bento-card--more .bento-card__scrim{display:none}.bento-card__underscrim{z-index:1;pointer-events:none;background:linear-gradient(180deg, color-mix(in srgb, var(--bento-scrim) 0%, transparent) 0%, color-mix(in srgb, var(--bento-scrim) 50%, transparent) 50%, var(--bento-scrim) 100%);height:7rem;position:absolute;bottom:0;left:0;right:0}.bento-card--more .bento-card__underscrim{display:none}.bento-card__stage{z-index:1;pointer-events:none;position:absolute;inset:0}.bento-card__wordmark,.bento-card__logotype{top:var(--space-24);left:var(--space-24);z-index:2;position:absolute}.bento-card__wordmark{width:8.75rem;height:auto;display:block}.bento-card__logotype{font-family:var(--font-display);letter-spacing:-.03em;color:var(--bento-ink);text-shadow:0 2px 16px #00000059;margin:0;font-size:clamp(1.25rem,6cqi,1.625rem);font-weight:700;line-height:1}.bento-card__shots{z-index:1;top:-3rem;right:var(--space-24);bottom:var(--space-24);left:var(--bento-shots-inset);justify-content:flex-end;align-items:flex-start;gap:clamp(var(--space-16), 3cqi, var(--space-28));min-width:0;display:flex;position:absolute}.bento-card__shot{flex:0 1 var(--bento-shot-w);width:var(--bento-shot-w);object-fit:cover;object-position:top center;border-radius:var(--radius-md);min-width:0;max-width:100%;height:auto;max-height:115%;box-shadow:var(--bento-shot-shadow);-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50%;transition:transform var(--motion-slow) var(--ease-out), box-shadow var(--motion-base) var(--ease-out);display:none;transform:translate(0,0)scale(1)}.bento-card__shot--1{display:block}.bento-card__shot--2{margin-top:3.5rem}.bento-card__shot--3{margin-top:0}.bento-card__overlay{z-index:3;left:var(--space-24);right:var(--space-24);bottom:var(--space-24);pointer-events:none;justify-content:center;width:auto;max-width:none;display:flex;position:absolute}.bento-card--more .bento-card__overlay{width:100%;max-width:none;display:block;position:relative;bottom:auto;left:auto;right:auto}.bento-card__more-copy{box-sizing:border-box;justify-content:flex-end;align-items:flex-start;gap:var(--space-4);width:max-content;max-width:100%;padding:var(--space-8);backdrop-filter:none;pointer-events:auto;background:0 0;border:none;flex-direction:column;display:flex}.bento-card__glass{box-sizing:border-box;pointer-events:auto;justify-content:flex-start;align-items:flex-start;gap:var(--space-4);width:max-content;max-width:min(var(--bento-glass-w), 100%);height:auto;min-height:0;padding:var(--space-20);border:1px solid var(--bento-glass-border);border-radius:var(--radius-xl);background:var(--bento-glass);backdrop-filter:blur(var(--bento-glass-blur)) saturate(1.4);-webkit-backface-visibility:hidden;backface-visibility:hidden;flex-direction:column;display:flex;overflow:hidden}@supports not (backdrop-filter:blur(1px)){.bento-card__glass{background:color-mix(in srgb, var(--bento-accent) 88%, black)}}@container (width>=30rem){.bento-card:not(.bento-card--more) .bento-card__shot--2{display:block}.bento-card:not(.bento-card--more) .bento-card__overlay{width:fit-content;max-width:min(var(--bento-glass-w), calc(100% - var(--space-48)));justify-content:flex-start;right:auto}.bento-card:not(.bento-card--more) .bento-card__glass{max-width:100%}}@container (width>=42rem){.bento-card:not(.bento-card--more) .bento-card__shot--3{display:block}.bento-card:not(.bento-card--more) .bento-card__shot--2{margin-top:4rem}.bento-card:not(.bento-card--more) .bento-card__shots{left:calc(var(--space-24) + 8.75rem + var(--space-32));gap:clamp(var(--space-24), 4cqi, var(--space-40))}}.bento-card__status{font-family:var(--font-rounded);letter-spacing:0;text-transform:uppercase;color:var(--bento-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:.6875rem;font-weight:600;line-height:.875rem;overflow:hidden}.bento-card--soon .bento-card__status{color:color-mix(in srgb, var(--bento-ink) 88%, var(--colour-gold))}.bento-card__title{font-family:var(--font-display);font-size:var(--text-24);font-weight:600;line-height:var(--leading-24);letter-spacing:0;color:var(--bento-ink);overflow-wrap:anywhere;white-space:normal;max-width:100%;margin:0}.bento-card--more .bento-card__title{white-space:normal;background:linear-gradient(90deg, var(--colour-bento-title-start), var(--colour-bento-title-end) 35%, var(--colour-bento-title-start) 65%, var(--colour-bento-title-end));color:#0000;transition:background-position var(--motion-slow) var(--ease-out);background-position:0%;background-size:220% 100%;-webkit-background-clip:text;background-clip:text}.bento-card--more .bento-card__subtitle{white-space:normal}.bento-card__subtitle{font-size:var(--text-14);color:var(--bento-sub);overflow-wrap:anywhere;white-space:normal;max-width:100%;margin:0;font-weight:400;line-height:1.25rem}.bento-card__cta{font-family:var(--font-rounded);font-size:var(--text-16);color:var(--colour-bento-cta-72);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-weight:600;line-height:1.25rem;overflow:hidden}@container (width>=22.01rem){.bento-card:not(.bento-card--more) .bento-card__title,.bento-card:not(.bento-card--more) .bento-card__subtitle{white-space:nowrap;text-overflow:ellipsis;overflow-wrap:normal;overflow:hidden}}a.bento-card:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.bento-card__visual:after{content:"";z-index:2;pointer-events:none;background:radial-gradient(22rem circle at calc(50% + (var(--bento-x,0) * 42%)) calc(42% + (var(--bento-y,0) * 36%)), color-mix(in srgb, var(--bento-ink) 18%, transparent), color-mix(in srgb, var(--bento-ink) 6%, transparent) 42%, transparent 68%);opacity:0;mix-blend-mode:soft-light;transition:opacity var(--motion-base) var(--ease-out);position:absolute;inset:0}a.bento-card:focus-visible .bento-card__visual:after{opacity:1}@media (hover:hover) and (pointer:fine){.bento-card:not(.bento-card--more):hover,a.bento-card:focus-visible{box-shadow:0 16px 32px -8px color-mix(in srgb, var(--bento-accent) 72%, transparent)}a.bento-card--more:hover,a.bento-card--more:focus-visible{box-shadow:0 16px 32px -8px #4a4628b8}.bento-card:not(.bento-card--more):hover .bento-card__bg,a.bento-card:focus-visible .bento-card__bg{filter:blur(22px)brightness(1.06);transform:scale(1.07)}.bento-card:not(.bento-card--more):hover .bento-card__mark,a.bento-card:focus-visible .bento-card__mark{transform:scale(1.12)}.bento-card:not(.bento-card--more):hover .bento-card__shot--1,a.bento-card:focus-visible .bento-card__shot--1,.bento-card:not(.bento-card--more):hover .bento-card__shot--3,a.bento-card:focus-visible .bento-card__shot--3{transform:translateY(-.7rem)scale(1.045);box-shadow:0 14px 32px -6px #0000007a}.bento-card:not(.bento-card--more):hover .bento-card__shot--2,a.bento-card:focus-visible .bento-card__shot--2{transform:translateY(.65rem)scale(1.045);box-shadow:0 14px 32px -6px #0000007a}a.bento-card--more:hover .bento-card__ambient--more,a.bento-card--more:focus-visible .bento-card__ambient--more{filter:brightness(1.1)saturate(1.08);animation-duration:9s}a.bento-card--more:hover .bento-card__title,a.bento-card--more:focus-visible .bento-card__title{background-position:100%}.bento-card:hover .bento-card__visual:after,.bento-card.is-near .bento-card__visual:after,a.bento-card:focus-visible .bento-card__visual:after{opacity:1}}@media (prefers-reduced-motion:reduce){.work-bento,.bento-card,.bento-card__bg,.bento-card__mark,.bento-card__shot,.bento-card__ambient--more,.bento-card--more .bento-card__title{transition:none;animation:none}.bento-card:not(.bento-card--more):hover .bento-card__bg,a.bento-card:focus-visible .bento-card__bg,.bento-card:not(.bento-card--more):hover .bento-card__mark,a.bento-card:focus-visible .bento-card__mark,.bento-card:not(.bento-card--more):hover .bento-card__shot--1,a.bento-card:focus-visible .bento-card__shot--1,.bento-card:not(.bento-card--more):hover .bento-card__shot--2,a.bento-card:focus-visible .bento-card__shot--2,.bento-card:not(.bento-card--more):hover .bento-card__shot--3,a.bento-card:focus-visible .bento-card__shot--3{transform:none}a.bento-card--more:hover .bento-card__title,a.bento-card--more:focus-visible .bento-card__title{background-position:0%}}@media (prefers-reduced-transparency:reduce){.bento-card__glass{-webkit-backdrop-filter:none;background:color-mix(in srgb, var(--bento-accent) 92%, black)}.bento-card--more .bento-card__title{color:var(--colour-bento-title-start);background:0 0;-webkit-background-clip:unset;background-clip:unset}.bento-card__bg{filter:brightness(.55)}}}@layer components{.site-header{z-index:50;width:100%;padding-block:var(--space-12);background:linear-gradient(to bottom, var(--colour-surface) 0%, color-mix(in srgb, var(--colour-surface) 42%, transparent) 100%);backdrop-filter:blur(10px);flex-shrink:0;position:sticky;top:0}@media (prefers-reduced-transparency:reduce){.site-header{background:var(--colour-surface);backdrop-filter:none}}@media (width>=64rem){.site-header{padding-block:var(--space-24)}}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-24);display:flex}.site-logo{color:var(--colour-inverse);touch-action:manipulation;flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex;overflow:visible}.site-logo img,.site-logo svg{aspect-ratio:92/67;width:auto;height:4.1875rem}.site-footer .site-logo{color:var(--colour-on-inverse);grid-area:logo}.site-footer .site-logo img,.site-footer .site-logo svg{aspect-ratio:64/46.65;height:2.91563rem}@media (width>=52rem){.site-footer .site-logo img,.site-footer .site-logo svg{aspect-ratio:109/80;height:5rem}}@media (width>=64rem){.site-header .site-logo img,.site-header .site-logo svg{aspect-ratio:109/80;height:5rem}}.site-logo:focus-visible{border-radius:var(--radius-sm)}.site-nav ul{gap:var(--space-24);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-nav a{font-family:var(--font-rounded);font-size:.9375rem;line-height:var(--leading-18);color:var(--colour-on-surface);padding-block:var(--space-8);min-height:var(--touch-min);touch-action:manipulation;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}@media (width>=64rem){.site-nav ul{gap:var(--space-44)}.site-nav a{font-size:var(--text-18)}}@media (hover:hover) and (pointer:fine){.site-nav a:hover{color:var(--colour-link-hover)}}.site-nav a:active{color:var(--colour-link-active)}.site-nav a:focus-visible{color:var(--colour-link-hover)}.site-nav a[aria-current=page],.site-nav a[aria-current=page]:hover,.site-nav a[aria-current=page]:active,.site-nav a[aria-current=page]:focus-visible{color:var(--colour-link-hover);font-weight:600}.btn{isolation:isolate;justify-content:center;align-items:center;gap:var(--space-12);min-height:3rem;padding:var(--space-12) var(--space-16);border-radius:var(--radius-xl);font-family:var(--font-rounded);font-size:var(--text-16);font-weight:400;line-height:var(--leading-16);white-space:nowrap;cursor:pointer;touch-action:manipulation;background:0 0;border:3px solid #0000;text-decoration:none;display:inline-flex;position:relative}.btn:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:3px solid #0000;position:absolute;inset:-3px;transform:translateZ(0)}a.btn:focus-visible{text-decoration:none}@media (hover:hover) and (pointer:fine){a.btn:hover{text-decoration:none}}.btn--fill-black{color:var(--colour-surface)}.btn--fill-black:before{background:var(--colour-inverse);border-color:var(--colour-inverse);box-shadow:var(--shadow-btn)}.btn--fill-black:focus-visible:before{background:color-mix(in srgb, var(--colour-inverse) 82%, var(--colour-white));border-color:color-mix(in srgb, var(--colour-inverse) 82%, var(--colour-white));box-shadow:var(--shadow-btn-plate)}@media (hover:hover) and (pointer:fine){.btn--fill-black:hover:before{background:color-mix(in srgb, var(--colour-inverse) 82%, var(--colour-white));border-color:color-mix(in srgb, var(--colour-inverse) 82%, var(--colour-white));box-shadow:var(--shadow-btn-plate)}}.btn--fill-blue{color:var(--colour-surface);gap:var(--space-8)}.btn--fill-blue:before{background:var(--colour-product);border-color:var(--colour-product);box-shadow:var(--shadow-btn-blue)}.btn--fill-blue:focus-visible:before{background:color-mix(in srgb, var(--colour-product) 82%, var(--colour-white));border-color:color-mix(in srgb, var(--colour-product) 82%, var(--colour-white));box-shadow:var(--shadow-btn-plate)}@media (hover:hover) and (pointer:fine){.btn--fill-blue:hover:before{background:color-mix(in srgb, var(--colour-product) 82%, var(--colour-white));border-color:color-mix(in srgb, var(--colour-product) 82%, var(--colour-white));box-shadow:var(--shadow-btn-plate)}}.btn--outline-black{color:var(--colour-on-surface)}.btn--outline-black:before{border-color:var(--colour-inverse)}.btn--outline-black:focus-visible:before{background:color-mix(in srgb, var(--colour-inverse) 8%, transparent);box-shadow:var(--shadow-btn-plate)}@media (hover:hover) and (pointer:fine){.btn--outline-black:hover:before{background:color-mix(in srgb, var(--colour-inverse) 8%, transparent);box-shadow:var(--shadow-btn-plate)}}.btn--outline-white{color:var(--colour-on-inverse)}.btn--outline-white:before{border-color:var(--colour-surface)}.btn--outline-white:focus-visible:before{background:color-mix(in srgb, var(--colour-white) 12%, transparent);box-shadow:var(--shadow-btn-plate)}@media (hover:hover) and (pointer:fine){.btn--outline-white:hover:before{background:color-mix(in srgb, var(--colour-white) 12%, transparent);box-shadow:var(--shadow-btn-plate)}}.btn__icon{flex-shrink:0;width:1.25rem;height:1.375rem;overflow:visible}.btn__icon--left{transform:scaleX(-1)}.chip{min-height:1.375rem;padding:var(--space-4) var(--space-8);border-radius:var(--radius-lg);font-family:var(--font-label);font-size:var(--text-12);line-height:var(--leading-12);white-space:nowrap;touch-action:manipulation;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1px solid;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}a.chip{cursor:pointer;text-decoration:none}.chip--branding,.chip.chip--branding{color:var(--colour-chip-branding)}.chip--research,.chip.chip--research{color:var(--colour-chip-research)}.chip--visual,.chip.chip--visual{color:var(--colour-chip-visual)}.chip--product,.chip.chip--product{color:var(--colour-chip-product)}.chip--uxui,.chip.chip--uxui{color:var(--colour-chip-uxui)}.chip--graphic,.chip.chip--graphic{color:var(--colour-chip-graphic)}.chip--accessibility,.chip.chip--accessibility{color:var(--colour-chip-accessibility)}.chip--systems,.chip.chip--systems{color:var(--colour-chip-systems)}.chip--motion,.chip.chip--motion{color:var(--colour-chip-motion)}.chip--wip,.chip.chip--wip{color:var(--colour-chip-wip)}.chip--development,.chip.chip--development{color:var(--colour-chip-development)}.chip-list{gap:var(--space-12);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.work-filters .chip{cursor:pointer;-webkit-appearance:none;appearance:none;min-height:var(--touch-min);padding-inline:var(--space-12);background:0 0;margin:0}.work-filters .chip[aria-pressed=true]{background:color-mix(in srgb, currentColor 14%, transparent);box-shadow:3px 3px 0 color-mix(in srgb, currentColor 28%, transparent), 5px 4px 0 color-mix(in srgb, var(--colour-gold) 45%, transparent)}.work-filters .chip.chip--all,.work-filters .chip.chip--all[aria-pressed=true],.work-filters .chip.chip--all[aria-pressed=false]{background:var(--colour-inverse);color:var(--colour-on-inverse);border-color:var(--colour-inverse)}.work-filters .chip.chip--all[aria-pressed=false]{opacity:.55}.work-filters .chip.chip--all[aria-pressed=true]{opacity:1;box-shadow:3px 3px 0 color-mix(in srgb, var(--colour-brand-tan) 80%, transparent), 5px 4px 0 color-mix(in srgb, var(--colour-gold) 45%, transparent)}@media (prefers-reduced-motion:no-preference){@media (hover:hover) and (pointer:fine){html.js .chip:hover,html.js .chip.is-near{background:color-mix(in srgb, currentColor 10%, transparent);box-shadow:2px 2px 0 color-mix(in srgb, currentColor 20%, transparent), 4px 3px 0 color-mix(in srgb, var(--colour-brand-tan) 38%, transparent)}}@media (hover:none){html.js .chip.is-near,html.js .chip.is-pinned{background:color-mix(in srgb, currentColor 10%, transparent);box-shadow:2px 2px 0 color-mix(in srgb, currentColor 20%, transparent), 4px 3px 0 color-mix(in srgb, var(--colour-brand-tan) 38%, transparent)}}html.js .chip.is-tapped{--chip-scale:.94}html.js .chip.is-lit,html.js .chip.is-pinned{--chip-scale:1.03;background:color-mix(in srgb, currentColor 12%, transparent);box-shadow:2px 2px 0 color-mix(in srgb, currentColor 22%, transparent), 4px 3px 0 color-mix(in srgb, var(--colour-gold) 36%, transparent)}}@media (hover:hover) and (pointer:fine){html.js .work-filters .chip.chip--all:hover{background:var(--colour-inverse);color:var(--colour-on-inverse);border-color:var(--colour-inverse);box-shadow:3px 3px 0 color-mix(in srgb, var(--colour-brand-tan) 70%, transparent), 5px 4px 0 color-mix(in srgb, var(--colour-gold) 40%, transparent)}}html.js .work-filters .chip.chip--all.is-near,html.js .work-filters .chip.chip--all.is-lit,html.js .work-filters .chip.chip--all.is-pinned{background:var(--colour-inverse);color:var(--colour-on-inverse);border-color:var(--colour-inverse);box-shadow:3px 3px 0 color-mix(in srgb, var(--colour-brand-tan) 70%, transparent), 5px 4px 0 color-mix(in srgb, var(--colour-gold) 40%, transparent)}.card-header{gap:var(--space-16);align-items:center;display:flex}.card-header--brand{align-items:flex-start;gap:var(--space-4);flex-direction:column}.card-brand{margin:0}.card-brand img{width:auto;max-width:11.5rem;height:2.25rem;display:block}.card-brand--text{font-family:var(--font-display);font-size:var(--text-28);font-weight:700;line-height:var(--leading-28);letter-spacing:-.02em;color:var(--colour-on-surface)}.card-header--brand .card-subtitle{margin-block-start:0}.card-header--brand .work-card__status{margin-block-end:var(--space-8)}.app-icon{background:var(--colour-app-icon-bg);-webkit-mask-image:-webkit-radial-gradient(#fff 100%,#000);border-radius:.885rem;flex-shrink:0;width:4rem;height:4rem;position:relative;overflow:hidden;mask-image:radial-gradient(#fff,#000)}.app-icon img{object-fit:cover;width:100%;height:100%;display:block}.card-title{font-family:var(--font-display);font-size:var(--text-28);font-weight:700;line-height:var(--leading-28);color:var(--colour-on-surface);margin:0}.card-subtitle{font-size:var(--text-16);line-height:var(--leading-16);color:var(--colour-on-surface);margin-block-start:var(--space-4)}.phone-frame{aspect-ratio:229/497;width:100%;max-width:17rem;box-shadow:var(--shadow-media);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:0 0;border-radius:5.4%/2.49%;margin-inline:auto}.phone-frame img:not(.photo-glass__icon){object-fit:cover;border-radius:inherit;-webkit-mask-image:-webkit-radial-gradient(#fff 100%,#000);background:0 0;width:100%;height:100%;display:block;mask-image:radial-gradient(#fff,#000)}.phone-frame--sm{box-shadow:var(--shadow-media-sm)}.tv-frame{border-radius:var(--radius-xl);box-shadow:var(--shadow-media);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:0 0}.tv-frame img:not(.photo-glass__icon){border-radius:inherit;-webkit-mask-image:-webkit-radial-gradient(#fff 100%,#000);background:0 0;width:100%;height:auto;display:block;mask-image:radial-gradient(#fff,#000)}.site-footer{padding-block-start:0;padding-block-end:clamp(var(--space-32), 6vw, var(--space-60))}.site-footer__card{background:var(--colour-ink);color:var(--colour-on-inverse);border-radius:var(--radius-lg);align-items:center;column-gap:var(--space-24);row-gap:var(--space-40);padding:var(--space-32) var(--space-24);box-shadow:var(--shadow-inverse);grid-template-columns:1fr auto;grid-template-areas:"logo nav""btns btns""social social";display:grid}.site-footer .site-nav{grid-area:nav;justify-self:end}.site-footer .site-nav ul{gap:1.375rem}.site-footer .site-nav a{color:var(--colour-on-inverse);font-size:var(--text-16);font-weight:400}@media (hover:hover) and (pointer:fine){.site-footer .site-nav a:hover{color:var(--colour-link-hover)}}.site-footer .site-nav a:active{color:var(--colour-link-active)}.site-footer .site-nav a:focus-visible{color:var(--colour-link-hover)}.site-footer .site-nav a[aria-current=page],.site-footer .site-nav a[aria-current=page]:hover,.site-footer .site-nav a[aria-current=page]:active,.site-footer .site-nav a[aria-current=page]:focus-visible{color:var(--colour-link-hover);font-weight:600}.site-footer__btns{justify-content:center;justify-self:center;gap:var(--space-12) var(--space-24);flex-wrap:wrap;grid-area:btns;width:100%;display:flex}.site-footer .social-links{grid-area:social;justify-content:center;justify-self:center;width:auto}@media (width>=52rem){.site-footer__card{column-gap:var(--space-24);row-gap:var(--space-32);padding:var(--space-48) var(--space-32);grid-template-columns:1fr auto;grid-template-areas:"logo nav""btns social"}.site-footer .site-nav{justify-self:end}.site-footer .site-nav ul{gap:var(--space-44)}.site-footer .site-nav a{font-size:var(--text-18)}.site-footer__btns{justify-content:flex-start;place-self:center start;gap:var(--space-16);flex-wrap:nowrap;width:auto}.site-footer .social-links{justify-self:end}}@media (width>=64rem){.site-footer__card{padding:var(--space-48) var(--space-60);grid-template-columns:auto 1fr auto;grid-template-areas:"logo nav btns""logo social btns"}.site-footer .site-nav,.site-footer .social-links{justify-self:center}.site-footer__btns{justify-content:flex-end;justify-self:end}}.social-links{gap:var(--space-24);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.social-links--lg{gap:var(--space-36)}.social-link{--social-fill:var(--colour-on-inverse);--social-icon:none;--social-size:2rem;width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-sm);color:inherit;background-color:var(--social-fill);-webkit-mask:var(--social-icon) center / auto var(--social-size) no-repeat;mask:var(--social-icon) center / auto var(--social-size) no-repeat;touch-action:manipulation;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.social-link[href*=dribbble\.com]{--social-icon:url(/assets/icons/dribbble.svg)}.social-link[href*=github\.com]{--social-icon:url(/assets/icons/github-mark.svg?v=8)}.social-link[href*=instagram\.com]{--social-icon:url(/assets/icons/instagram.svg)}.social-link[href*=linkedin\.com]{--social-icon:url(/assets/icons/linkedin.svg)}.social-link[href*=behance\.net]{--social-icon:url(/assets/icons/behance.svg?v=3);width:max(var(--touch-min), calc(var(--social-size) * 48 / 36));-webkit-mask-size:calc(var(--social-size) * 48 / 36) var(--social-size);mask-size:calc(var(--social-size) * 48 / 36) var(--social-size)}.social-link img{width:auto;height:var(--social-size);object-fit:contain;opacity:0;max-width:3rem}.social-links--lg .social-link{--social-size:2.875rem}.social-links--lg .social-link img{width:auto;height:var(--social-size);max-width:4.3125rem}@media (width<=51.99rem){.site-footer .social-links{gap:1.20188rem}.site-footer .social-link{--social-size:1.60188rem}.site-footer .social-link img{max-width:2.40313rem}}.social-link[href*=dribbble\.com]:focus-visible{--social-fill:var(--colour-social-dribbble)}.social-link[href*=github\.com]:focus-visible{--social-fill:var(--colour-social-github)}.social-link[href*=instagram\.com]:focus-visible{--social-fill:var(--colour-social-instagram);background-image:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.social-link[href*=linkedin\.com]:focus-visible{--social-fill:var(--colour-social-linkedin)}.social-link[href*=behance\.net]:focus-visible{--social-fill:var(--colour-social-behance)}@media (hover:hover) and (pointer:fine){.social-link[href*=dribbble\.com]:hover{--social-fill:var(--colour-social-dribbble)}.social-link[href*=github\.com]:hover{--social-fill:var(--colour-social-github)}.social-link[href*=instagram\.com]:hover{--social-fill:var(--colour-social-instagram);background-image:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.social-link[href*=linkedin\.com]:hover{--social-fill:var(--colour-social-linkedin)}.social-link[href*=behance\.net]:hover{--social-fill:var(--colour-social-behance)}}.form-field{gap:var(--space-8);flex-direction:column;display:flex}.form-field label{font-size:var(--text-14);line-height:var(--leading-14);font-weight:400}.form-field input,.form-field textarea{border:1.5px solid var(--colour-inverse);border-radius:var(--radius-lg);background:var(--colour-input);width:100%;color:var(--colour-on-surface);font-size:var(--text-16);line-height:var(--leading-16)}.form-field input{height:2.625rem;min-height:2.625rem;padding:0 var(--space-20)}.form-field textarea{height:7.5rem;min-height:7.5rem;padding:var(--space-16) var(--space-20);resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--colour-on-surface-muted)}.form-field input:focus,.form-field textarea:focus{border-color:var(--colour-product);box-shadow:0 0 0 3px color-mix(in srgb, var(--colour-product) 22%, transparent), var(--shadow-sm);outline:none}.form-status{padding:var(--space-12) var(--space-16);border-radius:var(--radius-md);background:color-mix(in srgb, var(--colour-product) 12%, var(--colour-surface));color:var(--colour-on-surface);margin:0;font-weight:600}.contact-form{gap:var(--space-16);flex-direction:column;display:flex}.email-card{background:var(--colour-ink);color:var(--colour-on-inverse);border-radius:var(--radius-lg);padding:var(--space-32);gap:var(--space-24);height:100%;box-shadow:var(--shadow-inverse);flex-direction:column;display:flex}@media (width>=64rem){.email-card{padding:var(--space-44);gap:var(--space-40);height:auto}}.email-card h2{font-family:var(--font-display);font-size:var(--text-24);font-weight:600;line-height:var(--leading-24);color:var(--colour-on-inverse)}.email-card p{font-size:var(--text-14);line-height:var(--leading-14);color:color-mix(in srgb, var(--colour-on-inverse) 90%, transparent);margin-block-start:var(--space-8)}.email-card a{color:var(--colour-on-inverse);font-weight:400;text-decoration:none}@media (hover:hover) and (pointer:fine){.email-card a:hover{color:var(--colour-link-hover);text-decoration:underline}}.email-card a:active{color:var(--colour-link-active)}.email-card__address{font-size:var(--text-24);font-weight:600;line-height:var(--leading-24)}.number-card{background:var(--case-card,color-mix(in srgb, var(--case-tint,var(--case-accent,var(--colour-ink))) 14%, var(--colour-white)));border-radius:var(--radius-lg);padding:var(--space-24);box-shadow:var(--shadow-card)}.number-card__value{font-family:var(--font-display);font-size:var(--text-32);font-weight:600;line-height:var(--leading-32);color:var(--case-ink,var(--colour-on-surface));letter-spacing:-.02em;margin:0}.number-card__label{font-family:var(--font-body);font-size:var(--text-16);font-weight:600;line-height:var(--leading-16);color:var(--case-ink,var(--colour-on-surface));margin-block-start:var(--space-8);margin-block-end:0}.number-card__note{font-size:var(--text-14);line-height:var(--leading-14);color:var(--case-muted,var(--colour-on-surface));max-width:none;margin-block-start:var(--space-8);margin-block-end:0}.outcome-card{background:var(--case-card,color-mix(in srgb, var(--case-tint,var(--case-accent,var(--colour-ink))) 14%, var(--colour-white)));border-radius:var(--radius-lg);padding:var(--space-24);box-shadow:var(--shadow-card)}.outcome-card h3{font-family:var(--font-body);font-size:var(--text-18);font-weight:600;line-height:var(--leading-18);color:var(--case-ink,var(--colour-on-surface));margin-block-end:var(--space-12)}.outcome-card p{font-size:var(--text-16);line-height:var(--leading-16);color:var(--case-muted,var(--colour-on-surface));max-width:none}}@layer motion{.site-header{view-transition-name:site-header}@media (prefers-reduced-motion:no-preference){.container,.stack,.cluster,.site-main,.section,.featured-studies,.project-card,.case-hero,.case-section-band,.about-page__hero,.about-life__card,.work-index{transition:padding var(--motion-layout) var(--ease-layout), gap var(--motion-layout) var(--ease-layout), margin var(--motion-layout) var(--ease-layout), column-gap var(--motion-layout) var(--ease-layout), row-gap var(--motion-layout) var(--ease-layout), max-width var(--motion-layout) var(--ease-layout)}html.js-reveal-ready [data-reveal]{--reveal-y:.55rem;--reveal-s:1;opacity:0;transform:translate3d(0, var(--lift-y,var(--reveal-y)), 0) scale(var(--reveal-s));transition:opacity var(--motion-enter) var(--ease-out), transform var(--motion-enter) var(--ease-out), box-shadow var(--motion-base) var(--ease-out);transition-delay:var(--reveal-delay,0s)}html.js-reveal-ready [data-reveal=media]{--reveal-y:0px;--reveal-s:1.02}html.js-reveal-ready .bento-card[data-reveal],html.js-reveal-ready [data-reveal].bento-card{--reveal-y:0px;--reveal-s:.99}html.js-reveal-ready [data-reveal=hero]{opacity:1;transform:none}html.js-reveal-ready [data-reveal=hero] .hero-home__name span,html.js-reveal-ready [data-reveal=hero] .hero-home__tagline{opacity:0;transition:opacity var(--motion-enter) var(--ease-out), transform var(--motion-enter) var(--ease-out);transform:translateY(.45rem)}html.js-reveal-ready [data-reveal].is-visible{--reveal-y:0px;--reveal-s:1;opacity:1;transform:none}html.js-reveal-ready [data-reveal].is-settled{transition:opacity var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), filter var(--motion-base) var(--ease-out);transition-delay:0s}html.js-reveal-ready [data-reveal=hero].is-visible .hero-home__name span,html.js-reveal-ready [data-reveal=hero].is-visible .hero-home__tagline{opacity:1;transform:none}html.js-reveal-ready [data-reveal=hero].is-visible .hero-home__name span:nth-child(2){transition-delay:80ms}html.js-reveal-ready [data-reveal=hero].is-visible .hero-home__tagline{transition-delay:.15s}.site-header{transition:background var(--motion-base) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), -webkit-backdrop-filter var(--motion-slow) var(--ease-out), backdrop-filter var(--motion-slow) var(--ease-out)}.site-header.is-scrolled{background:linear-gradient(to bottom, var(--colour-surface) 0%, color-mix(in srgb, var(--colour-surface) 52%, transparent) 100%);backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(var(--shadow-rgb), .08)}.site-logo .logo-mark{overflow:visible}.btn__icon--mail,.btn__icon--doc,.icon-mail__crease{transition:transform var(--motion-base) var(--ease-out)}.btn__icon--mail{transform-origin:70% 90%}.icon-mail__crease{transform-box:fill-box;transform-origin:top}.btn__icon--doc{transform-origin:25% 95%}.btn,.btn:before,.btn>*,.site-nav a,.social-link{transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), background-image var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out-back), opacity var(--motion-fast) var(--ease-out)}.chip,.phone-frame,.tablet-frame,.web-frame,.tv-frame,.about__portrait-wrap,.about-life__media,.server-photos__item,.app-icon,.outcome-card,.number-card,.case-panel,.case-section-band,.skill-card,.about-page__block,.email-card,.work-card,.work-card__bloom,.form-field input,.form-field textarea{transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), background var(--motion-base) var(--ease-out), border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out), opacity var(--motion-base) var(--ease-out)}.skill-card__logo,.skill-card__label,.skill-card__blurb{transition:transform var(--motion-base) var(--ease-out), color var(--motion-fast) var(--ease-out), filter var(--motion-base) var(--ease-out)}html.js .chip{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate3d(calc(var(--chip-x,0) * 3.5px), calc(var(--chip-y,0) * 2.75px), 0) scale(var(--chip-scale,1));transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), transform var(--motion-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.btn:hover:before,.btn:hover>*{transform:translate(-2px,-3px)}.btn:hover .btn__icon--left{transform:translate(-4px,-3px)scaleX(-1)}.btn:hover .btn__icon--right{transform:translate(2px,-3px)}.btn:hover .btn__icon--mail{transform:translate(1px,-5px)rotate(-12deg)}.btn:hover .icon-mail__crease{transform:scaleY(.72)}.btn:hover .btn__icon--doc{transform:translate(-3px,-5px)rotate(-12deg)}.skill-card:hover{background:linear-gradient(155deg, color-mix(in srgb, var(--skill-a,#888) 58%, transparent), color-mix(in srgb, var(--skill-b,var(--skill-a,#888)) 44%, transparent) 46%, color-mix(in srgb, var(--skill-c,var(--skill-a,#888)) 56%, transparent)), color-mix(in srgb, var(--colour-inverse) 74%, var(--skill-b,var(--skill-a,#888)) 26%);box-shadow:0 0 0 1px color-mix(in srgb, var(--skill-glow,var(--skill-a,#888)) 40%, transparent), 0 10px 22px -6px color-mix(in srgb, var(--skill-glow,var(--skill-a,#888)) 42%, transparent), 0 22px 44px -12px color-mix(in srgb, var(--skill-glow,var(--skill-a,#888)) 55%, transparent);transform:translateY(-3px)}.skill-card:hover .skill-card__logo{transform:scale(1.08)}.skill-card:hover .skill-card__label{color:#fff}.skill-card:hover .skill-card__blurb{color:#d9d9d9e0}}.btn:focus-visible:before,.btn:focus-visible>*{transform:translate(-2px,-3px)}.btn:focus-visible .btn__icon--left{transform:translate(-4px,-3px)scaleX(-1)}.btn:focus-visible .btn__icon--right{transform:translate(2px,-3px)}.btn:focus-visible .btn__icon--mail{transform:translate(1px,-5px)rotate(-12deg)}.btn:focus-visible .icon-mail__crease{transform:scaleY(.72)}.btn:focus-visible .btn__icon--doc{transform:translate(-3px,-5px)rotate(-12deg)}.btn:active:not(:disabled):before{box-shadow:none;transform:translateZ(0)}.btn:active:not(:disabled)>*{transform:none}.work-card__media:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(22rem circle at 50% 42%, color-mix(in srgb, var(--colour-white) 12%, transparent), transparent 58%);opacity:0;mix-blend-mode:overlay;transition:opacity var(--motion-base) var(--ease-out);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.work-card:has(.work-card__title a):hover .work-card__media:after,a.work-card:hover .work-card__media:after{opacity:1}}.work-card:has(.work-card__title a:focus-visible) .work-card__media:after,a.work-card:focus-visible .work-card__media:after{opacity:1}.work-card--more .work-card__media:after{display:none}[data-work-item].is-filter-in{animation:motion-filter-in var(--motion-slow) var(--ease-out) both}.form-field input,.form-field textarea{transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), background-color var(--motion-fast) var(--ease-out)}.form-field input:hover,.form-field textarea:hover{border-color:color-mix(in srgb, var(--colour-inverse) 78%, var(--colour-product))}.form-status:not([hidden]){animation:motion-status-in var(--motion-slow) var(--ease-out) both}}@media (prefers-reduced-motion:reduce){.site-header{view-transition-name:none}.container,.stack,.cluster,.site-main,.section,.featured-studies,.project-card,.case-hero,.case-section-band,.about-page__hero,.about-life__card,.work-index{transition:none}[data-reveal],html.js-reveal-ready [data-reveal=hero] .hero-home__name span,html.js-reveal-ready [data-reveal=hero] .hero-home__tagline{opacity:1;transform:none}}@media (prefers-reduced-transparency:reduce){.site-header.is-scrolled{background:var(--colour-surface);backdrop-filter:none}}@media print{.site-header{view-transition-name:none}}}@layer utilities{.skip-link{z-index:100;padding:var(--space-12) var(--space-16);background:var(--colour-white);color:var(--colour-on-surface);border-radius:var(--radius-sm);transition:transform var(--motion-fast) var(--ease-out);font-weight:600;text-decoration:none;position:absolute;inset-block-start:var(--space-16);inset-inline-start:var(--space-16);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.visually-hidden{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}.text-muted{color:var(--colour-on-surface-muted)}.text-balance{text-wrap:balance}.anaglyph-flag{z-index:60;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-8);border:1px solid var(--colour-ink);background:var(--colour-surface);color:var(--colour-ink);font-family:var(--font-label);font-size:var(--text-12);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;margin:0;font-weight:600;display:flex;position:fixed;inset-block-end:var(--space-20);inset-inline-start:var(--space-20)}.anaglyph-flag[hidden]{display:none}.anaglyph-flag__glasses{border:1.5px solid var(--colour-ink);border-radius:.12rem .12rem .38rem .38rem;flex-shrink:0;width:1.65rem;height:.72rem;display:flex;overflow:hidden}.anaglyph-flag__glasses:before,.anaglyph-flag__glasses:after{content:"";flex:1}.anaglyph-flag__glasses:before{background:#e31c24}.anaglyph-flag__glasses:after{border-inline-start:1.5px solid var(--colour-ink);background:#2458e3}html[data-anaglyph]{--anaglyph-red:var(--colour-accent);--anaglyph-blue:var(--colour-product);--anaglyph-shift:4px}html[data-anaglyph] body{text-shadow:calc(var(--anaglyph-shift) * -1) 0 0 color-mix(in srgb, var(--anaglyph-red) 36%, transparent), var(--anaglyph-shift) 0 0 color-mix(in srgb, var(--anaglyph-blue) 36%, transparent)}html[data-anaglyph] :is(h1,.hero-home__name,.case-title,.error-page__code){text-shadow:-6px 1px 0 color-mix(in srgb, var(--anaglyph-red) 40%, transparent), 6px -1px 0 color-mix(in srgb, var(--anaglyph-blue) 40%, transparent)}html[data-anaglyph] :is(.btn,.chip,.site-footer__card){box-shadow:calc(var(--anaglyph-shift) * -1) 0 0 color-mix(in srgb, var(--anaglyph-red) 28%, transparent), var(--anaglyph-shift) 0 0 color-mix(in srgb, var(--anaglyph-blue) 28%, transparent)}html[data-anaglyph] :is(img,svg,.phone-frame,.tv-frame,.app-icon,.work-card__media,.about__portrait,.error-page__hole,.error-page__marks i){filter:drop-shadow(calc(var(--anaglyph-shift) * -1) 0 0 color-mix(in srgb, var(--anaglyph-red) 34%, transparent)) drop-shadow(var(--anaglyph-shift) 0 0 color-mix(in srgb, var(--anaglyph-blue) 34%, transparent))}html[data-anaglyph] :is(.phone-frame,.tv-frame,.app-icon,.work-card__media) :is(img,svg){filter:none}html[data-anaglyph] .anaglyph-flag{text-shadow:none;filter:none;box-shadow:calc(var(--anaglyph-shift) * -1) 0 0 var(--anaglyph-red), var(--anaglyph-shift) 0 0 var(--anaglyph-blue)}@media print{.skip-link,.anaglyph-flag,.site-nav,.social-links,.btn,.chip,.error-page__marks{display:none!important}.site-header{backdrop-filter:none;background:0 0;position:static}body,.site-footer__card{color:#000!important;box-shadow:none!important;background:#fff!important}[data-reveal]{opacity:1!important;transform:none!important}a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em}html[data-anaglyph] body,html[data-anaglyph] :is(h1,.hero-home__name,.case-title,.btn,.chip,.site-footer__card),html[data-anaglyph] :is(img,svg,.phone-frame,.tv-frame,.app-icon,.work-card__media,.about__portrait){filter:none!important;text-shadow:none!important;box-shadow:none!important}.phone-frame img,.tv-frame img,.about__portrait{break-inside:avoid;filter:none!important;box-shadow:none!important}}}@layer overrides;:root{--font-display:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-body:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-rounded:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-label:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif}@view-transition{navigation:auto}::view-transition-old(root){animation:motion-page-out var(--motion-base) var(--ease-out) both}::view-transition-new(root){animation:motion-page-in var(--motion-enter) var(--ease-out) both}@keyframes motion-page-out{to{opacity:0;transform:scale(.992)}}@keyframes motion-page-in{0%{opacity:0;transform:scale(1.008)}}@keyframes motion-filter-in{0%{opacity:0;transform:scale(.992)}to{opacity:1;transform:none}}@keyframes motion-status-in{0%{opacity:0;transform:translateY(.2rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}@media print{@view-transition{navigation:none}}
