@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:#5a5098;--colour-chip-research:#2f6b45;--colour-chip-visual:#985051;--colour-chip-product:#2e52b8;--colour-chip-uxui:#284aa8;--colour-chip-graphic:#7a4f2e;--colour-chip-accessibility:#1a3a6e;--colour-chip-systems:#256160;--colour-chip-development:var(--colour-chip-systems);--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-input:color-mix(in srgb, var(--colour-white) 70%, transparent);--colour-outline:#b8b2a8;--colour-focus:var(--colour-navy);--colour-link:var(--colour-forest);--colour-link-hover:var(--colour-accent);--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;--leading-tight:1.1;--leading-snug:1.35;--leading-body:1.6;--tracking-label:0;--tracking-display:-.5px;--space-0:0;--space-4:.25rem;--space-8:.5rem;--space-10:.625rem;--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-none:0;--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-2xl:3.25rem;--radius-pill:624.938rem;--radius-chip:1.5rem;--radius-portrait:2.6875rem;--page-max:90rem;--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-instant:90ms;--motion-fast:.16s;--motion-base:.22s;--motion-slow:.48s;--motion-enter:.56s;--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);--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-inverse-lg:0 0 0 1px #ffffff1a, 0 8px 16px rgba(var(--shadow-rgb), .24), 0 24px 48px -8px rgba(var(--shadow-rgb), .42);--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):hover{color:var(--colour-link-hover)}}.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);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-10)}.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)}}.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-accent-soft:color-mix(in srgb, var(--case-tint) 14%, var(--colour-cream-canvas));--case-accent-soft-strong:color-mix(in srgb, var(--case-accent) 16%, var(--colour-cream-canvas));--case-panel:color-mix(in srgb, var(--case-accent) 7%, var(--colour-white));--case-panel-strong:color-mix(in srgb, var(--case-accent) 11%, var(--colour-cream-canvas));--case-ink:color-mix(in srgb, var(--case-accent) 34%, var(--colour-ink));--case-muted:color-mix(in srgb, var(--case-accent) 26%, var(--colour-ink-muted))}.case-study--seedly{--case-accent:#1a4030;--case-accent-secondary:#3d6b4a}.case-study--mystop{--case-accent:#1a3a6e;--case-accent-secondary:#2caaf1}.case-study--firstpickup{--case-accent:#1f6b61;--case-accent-secondary:#cea579}.case-study--tvplayer{--case-accent:#3a2752;--case-accent-secondary:#b83280}.case-panel,.case-panel--decision,.case-panel--reflection,.case-panel--media,.outcome-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)}.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:color-mix(in srgb, var(--case-tint,var(--case-accent)) 8%, 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:var(--colour-white)}.about-band--skills{background:var(--colour-surface)}.about-life{gap:var(--space-48);min-width:0;display:grid}.about-life__item{gap:var(--space-24);align-items:center;min-width:0;display:grid}@media (width>=52rem){.about-life__item{gap:var(--space-40);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.about-life__item--flip .about-life__media{order:2}.about-life__item--flip .about-life__copy{order:1}}.about-life__media{border-radius:var(--radius-xl);background:var(--colour-surface);aspect-ratio:4/3;min-width:0;margin:0;overflow:hidden}.about-life__media img{object-fit:cover;width:100%;height:100%;display:block}.about-life__copy{min-width:0;max-width:28rem}.about-life__copy .eyebrow{margin:0}.about-life__copy h3{font-size:var(--text-22);line-height:var(--leading-22);margin:0;font-weight:700}.about-life__copy p:not(.eyebrow){font-size:var(--text-16);line-height:var(--leading-16);color:var(--colour-on-surface);margin:0}.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 .eyebrow{color:var(--colour-on-inverse-muted);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-toolkit{padding-block-start:var(--space-8)}.element-key{gap:var(--space-8) var(--space-16);font-family:var(--font-label);font-size:var(--text-12);line-height:var(--leading-12);color:var(--colour-on-surface-muted);flex-wrap:wrap;margin:0;padding:0;font-weight:600;list-style:none;display:flex}.element-key li{align-items:center;gap:var(--space-8);display:inline-flex}.element-key__swatch{width:.75rem;height:.75rem;box-shadow:var(--shadow-sm);border-radius:.15rem}.element-key__swatch--soft{background:color-mix(in srgb, var(--colour-chip-research) 42%, var(--colour-surface))}.element-key__swatch--software{background:color-mix(in srgb, var(--colour-chip-branding) 42%, var(--colour-surface))}.element-key__swatch--technical{background:color-mix(in srgb, var(--colour-chip-systems) 48%, var(--colour-surface))}.element-key__swatch--craft{background:color-mix(in srgb, var(--colour-chip-product) 38%, var(--colour-surface))}.element-table{gap:var(--space-8);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.element-table__head{margin:var(--space-8) 0 0;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);grid-column:1/-1;font-weight:600}.element-table__head:first-child{margin-block-start:0}.element-table>li:not(.element-table__head){min-width:0}.tool{--tool-tint:var(--colour-surface);--tool-ink:var(--colour-ink-muted);justify-content:center;align-items:center;gap:var(--space-4);height:100%;min-height:5.5rem;padding:var(--space-16) var(--space-4) var(--space-8);background:var(--tool-tint);border-radius:var(--radius-md);box-shadow:var(--shadow-card-soft);color:var(--colour-ink);text-align:center;flex-direction:column;display:flex;position:relative}.tool--soft{--tool-tint:color-mix(in srgb, var(--colour-chip-research) 28%, var(--colour-surface));--tool-ink:var(--colour-chip-research)}.tool--software{--tool-tint:color-mix(in srgb, var(--colour-chip-branding) 26%, var(--colour-surface));--tool-ink:var(--colour-chip-branding)}.tool--technical{--tool-tint:color-mix(in srgb, var(--colour-chip-systems) 28%, var(--colour-surface));--tool-ink:var(--colour-chip-systems)}.tool--craft{--tool-tint:color-mix(in srgb, var(--colour-chip-product) 24%, var(--colour-surface));--tool-ink:var(--colour-chip-product)}.tool__num{font-family:var(--font-label);color:var(--tool-ink);font-size:.625rem;font-weight:600;line-height:1;position:absolute;inset-block-start:var(--space-4);inset-inline-start:var(--space-8)}.tool__mark{border-radius:var(--radius-sm);background:var(--colour-ink);width:2.25rem;height:2.25rem;color:var(--colour-cream-canvas);font-family:var(--font-label);font-size:var(--text-12);letter-spacing:.02em;place-items:center;font-weight:700;line-height:1;display:grid}.tool__label{font-family:var(--font-label);font-size:var(--text-12);line-height:var(--leading-12);color:var(--colour-on-surface);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}@media (width>=52rem){.element-table{gap:var(--space-4);grid-template-rows:repeat(4,minmax(5.25rem,auto));grid-template-columns:repeat(12,minmax(0,1fr))}.element-table__head{display:none}.element-table>li:not(.element-table__head){grid-column:var(--c);grid-row:var(--r)}.tool{aspect-ratio:1;min-height:0;padding:var(--space-12) var(--space-4) var(--space-8);border-radius:var(--radius-sm)}.tool__mark{width:1.75rem;height:1.75rem;font-size:.625rem}.tool__label{font-size:.625rem;line-height:.85rem}}@media (width>=64rem){.element-table{gap:var(--space-8);grid-template-rows:repeat(4,minmax(5.75rem,auto))}.tool{padding:var(--space-16) var(--space-4) var(--space-8);border-radius:var(--radius-md)}.tool__mark{width:2.25rem;height:2.25rem;font-size:var(--text-12)}.tool__label{font-size:var(--text-12);line-height:var(--leading-12)}}.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,.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);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:inherit}}.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-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);min-width:0;margin:0;overflow:hidden}.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}.about-life__media a{width:100%;height:100%;color:inherit;display:block}.about-life__media a:focus-visible{color:inherit}@media (hover:hover) and (pointer:fine){.about-life__media a:hover{color:inherit}}.photo-gallery-wrap{min-width:0}.photo-gallery__list{gap:var(--space-32);margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.photo-gallery__list{gap:var(--space-24) var(--space-32);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.photo-gallery__list{grid-template-columns:repeat(3,minmax(0,1fr))}}.photo-gallery__item{gap:var(--space-12);min-width:0;margin:0;display:grid}.photo-gallery__open{border-radius:var(--radius-xl);background:var(--colour-ink);color:inherit;cursor:zoom-in;touch-action:manipulation;margin:0;display:block;overflow:hidden}.photo-gallery__open:focus-visible{color:inherit}.photo-gallery__open img{width:100%;height:auto;display:block}.photo-gallery__item figcaption{font-size:var(--text-14);line-height:var(--leading-14);color:var(--colour-on-surface-muted);margin:0}.plants-page h1.heading-2{text-transform:none;letter-spacing:normal}.plants-page .stack--lg{--stack-gap:var(--space-48)}.plants-copy{gap:var(--space-32);max-width:var(--measure-wide);display:grid}@media (width>=52rem){.plants-copy{gap:var(--space-64);grid-template-columns:1fr 1fr;align-items:start}}.about-life__media:has(figcaption){aspect-ratio:auto;gap:var(--space-12);background:0 0;display:grid;overflow:visible}.about-life__media:has(figcaption) a,.about-life__media:has(figcaption)>img{border-radius:var(--radius-xl);aspect-ratio:4/3;background:var(--colour-surface);width:100%;display:block;overflow:hidden}.about-life__media:has(figcaption) img{object-fit:cover;object-position:50% 40%;width:100%;height:100%}.about-life__media figcaption{font-size:var(--text-14);line-height:var(--leading-14);color:var(--colour-on-surface-muted);margin:0}.photo-lightbox{width:min(100% - var(--space-24), 90rem);height:min(100% - var(--space-24), 100dvh);max-width:none;max-height:none;padding:var(--space-16);border-radius:var(--radius-lg);background:var(--colour-ink);color:var(--colour-on-inverse);box-sizing:border-box;border:none;margin:auto}.photo-lightbox::backdrop{background:color-mix(in srgb, var(--colour-ink) 88%, transparent)}.photo-lightbox__toolbar{justify-content:space-between;align-items:center;gap:var(--space-16);margin-block-end:var(--space-12);display:flex}.photo-lightbox__status{font-size:var(--text-12);line-height:var(--leading-12);letter-spacing:.06em;text-transform:uppercase;color:var(--colour-on-inverse);margin:0}.photo-lightbox__close{min-height:var(--touch-min);min-width:var(--touch-min);padding-inline:var(--space-16);border:1px solid color-mix(in srgb, var(--colour-surface) 70%, transparent);border-radius:var(--radius-pill);color:var(--colour-on-inverse);background:0 0}.photo-lightbox__close:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.photo-lightbox__stage{align-items:center;gap:var(--space-8);grid-template-columns:auto minmax(0,1fr) auto;height:calc(100% - 3.5rem);min-height:0;display:grid}.photo-lightbox__figure{justify-items:center;gap:var(--space-12);grid-template-rows:minmax(0,1fr) auto;min-width:0;height:100%;min-height:0;margin:0;display:grid}.photo-lightbox__figure img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;margin-inline:auto;display:block}.photo-lightbox__figure figcaption{text-align:center;max-width:40rem;font-size:var(--text-14);line-height:var(--leading-14);color:var(--colour-on-inverse);margin:0}.photo-lightbox__figure figcaption:empty{display:none}.photo-lightbox__nav{width:var(--touch-min);height:var(--touch-min);border:1px solid color-mix(in srgb, var(--colour-surface) 70%, transparent);border-radius:var(--radius-pill);color:var(--colour-on-inverse);background:0 0;flex-shrink:0;place-items:center;display:grid}.photo-lightbox__nav:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.photo-lightbox__nav .btn__icon{width:1.25rem;height:1.375rem}@media (prefers-reduced-motion:reduce){.photo-lightbox,.photo-lightbox::backdrop{transition:none}}@media print{.photo-lightbox{display:none!important}.photo-gallery__open{cursor:default}}.work-bento{gap:clamp(var(--space-16), 2.4vw, var(--space-24));grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(11.5rem,auto);display:grid}@media (width>=30rem){.work-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.work-bento__item--feature{grid-column:1/-1}}@media (width>=48rem){.work-bento{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(10.5rem,auto)}.work-bento__item--feature{grid-area:span 2/span 7}.work-bento__item--photo{grid-area:span 2/span 5}.work-bento__item--tile,.work-bento__item--more{grid-column:span 4}}@media (width>=64rem){.work-bento{grid-auto-rows:minmax(11rem,auto)}.work-bento__item--tile,.work-bento__item--more{grid-column:span 3}}.bento-card{--bento-accent:var(--colour-navy);--bento-ink:var(--colour-cream-canvas);--bento-muted:color-mix(in srgb, var(--bento-ink) 72%, var(--bento-accent));--bento-glass:color-mix(in srgb, var(--bento-accent) 76%, transparent);--bento-glass-border:color-mix(in srgb, var(--bento-ink) 24%, transparent);--bento-scrim-strong:color-mix(in srgb, var(--bento-accent) 92%, black);--bento-scrim-soft:color-mix(in srgb, var(--bento-accent) 18%, transparent);border-radius:calc(var(--radius-xl) + 2px);height:100%;min-height:12.5rem;color:var(--bento-ink);isolation:isolate;touch-action:manipulation;box-shadow:0 0 0 1px color-mix(in srgb, var(--bento-accent) 16%, transparent), 0 2px 4px rgba(var(--shadow-rgb), .05), 0 12px 28px -8px color-mix(in srgb, var(--bento-accent) 34%, transparent);transition:box-shadow var(--motion-base) var(--ease-out);flex-direction:column;justify-content:flex-end;text-decoration:none;display:flex;position:relative;overflow:hidden;container-type:inline-size}.bento-card--feature{min-height:18rem}.bento-card--photo{min-height:16rem}.bento-card--tile,.bento-card--mark{min-height:13.5rem}.bento-card--more{--bento-accent:var(--colour-ink);--bento-ink:var(--colour-cream-canvas);--bento-muted:var(--colour-on-inverse-muted);min-height:13.5rem}.bento-card--mystop,.bento-card--feature:not([class*=bento-card--mark]){--bento-accent:var(--colour-navy)}.bento-card--cscal-widget,.bento-card--photo:not([class*=bento-card--mark]){--bento-accent:#1c2418}.bento-card--salmon,.bento-card--mark-salmon{--bento-accent:var(--colour-navy)}.bento-card--sc-weather,.bento-card--mark-scweather{--bento-accent:#243654}.bento-card--soundpoint,.bento-card--mark-soundpoint{--bento-accent:#2a2438}.bento-card--soon{cursor:default}.bento-card__visual{z-index:0;background:var(--bento-accent);position:absolute;inset:0;overflow:hidden}.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% 90% at 0% 0%, color-mix(in srgb, var(--colour-brand-tan) 34%, transparent), transparent 62%), radial-gradient(80% 70% at 100% 100%, color-mix(in srgb, var(--colour-product) 24%, transparent), transparent 58%), linear-gradient(155deg, #0b1424, var(--colour-ink))}.bento-card__bg{object-fit:cover;object-position:center;filter:blur(22px)saturate(1.15)brightness(.72);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.08)}.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__scrim{background:linear-gradient(180deg, color-mix(in srgb, var(--bento-scrim-soft) 40%, transparent) 0%, transparent 34%, color-mix(in srgb, var(--bento-scrim-strong) 72%, transparent) 72%, color-mix(in srgb, var(--bento-scrim-strong) 92%, black) 100%);pointer-events:none;position:absolute;inset:0}.bento-card__stage{inset:var(--space-16) var(--space-16) 38%;gap:var(--space-12);pointer-events:none;grid-template-rows:auto minmax(0,1fr);place-items:end center;display:grid;position:absolute}.bento-card--feature .bento-card__stage{inset:var(--space-20) var(--space-20) 40%;gap:var(--space-16)}.bento-card__wordmark{width:min(46cqi,11rem);height:auto;filter:drop-shadow(0 6px 18px rgba(var(--shadow-rgb), .28));justify-self:start;display:block}.bento-card__logotype{font-family:var(--font-display);letter-spacing:-.03em;color:var(--bento-ink);text-shadow:0 2px 16px rgba(var(--shadow-rgb), .35);justify-self:start;margin:0;font-size:clamp(1.125rem,5cqi,1.625rem);font-weight:600;line-height:1}.bento-card__shots{align-items:end;gap:clamp(var(--space-8), 2.5cqi, var(--space-16));grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,22rem);height:100%;min-height:0;display:grid}.bento-card--photo .bento-card__shots{align-items:center;width:min(100%,18rem)}.bento-card__shot{object-fit:contain;object-position:bottom center;border-radius:var(--radius-md);width:100%;height:auto;max-height:100%;box-shadow:0 0 0 1px color-mix(in srgb, var(--bento-ink) 10%, transparent), 0 10px 28px -6px rgba(var(--shadow-rgb), .42);display:block}.bento-card--feature .bento-card__shot{aspect-ratio:750/1624;object-fit:cover;object-position:top center;border-radius:5.4%/2.49%}.bento-card--photo .bento-card__shot{border-radius:var(--radius-lg)}.bento-card__overlay{z-index:2;padding:var(--space-16);margin-top:auto;position:relative}.bento-card__glass{-webkit-backdrop-filter:blur(18px)saturate(1.35);background:color-mix(in srgb, var(--bento-glass) 88%, transparent);border:1px solid var(--bento-glass-border);border-radius:calc(var(--radius-lg) + 2px);padding:clamp(var(--space-12), 2.8cqi, var(--space-20));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--bento-ink) 16%, transparent), 0 10px 24px -12px color-mix(in srgb, var(--bento-accent) 55%, transparent)}.bento-card__status{margin:0 0 var(--space-4);font-size:var(--text-12);line-height:var(--leading-12);letter-spacing:.05em;text-transform:uppercase;color:var(--bento-muted);font-weight:600}.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);letter-spacing:-.02em;color:var(--bento-ink);margin:0;font-size:clamp(1.25rem,4.8cqi,1.75rem);font-weight:700;line-height:1.15}.bento-card__subtitle{margin:var(--space-4) 0 0;color:var(--bento-muted);font-size:clamp(.875rem,3.2cqi,1rem);line-height:1.45}.bento-card__cta{align-items:center;gap:var(--space-8);margin-top:var(--space-12);font-family:var(--font-rounded);font-size:var(--text-14);color:color-mix(in srgb, var(--bento-ink) 92%, var(--colour-brand-tan));font-weight:600;display:inline-flex}.bento-card__cta:after{content:"→";transition:transform var(--motion-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){a.bento-card:hover,a.bento-card:focus-visible{box-shadow:0 0 0 1px color-mix(in srgb, var(--bento-accent) 26%, transparent), 0 2px 4px rgba(var(--shadow-rgb), .05), 0 12px 28px -8px color-mix(in srgb, var(--bento-accent) 38%, transparent)}a.bento-card:hover .bento-card__bg,a.bento-card:focus-visible .bento-card__bg{filter:blur(22px)saturate(1.15)brightness(.8)}a.bento-card:hover .bento-card__cta:after,a.bento-card:focus-visible .bento-card__cta:after{transform:translate(2px)}}a.bento-card:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.bento-card__visual:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(24rem circle at 50% 36%, color-mix(in srgb, var(--bento-ink) 14%, transparent), transparent 58%);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){a.bento-card:hover .bento-card__visual:after{opacity:1}}@container (width>=22rem){.bento-card--feature .bento-card__stage{inset:var(--space-20) var(--space-24) 38%;grid-template-rows:1fr;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:end}.bento-card--feature .bento-card__wordmark{align-self:start;width:min(100%,9.5rem)}.bento-card--feature .bento-card__shots{width:100%;max-width:none}}@media (width>=48rem){.bento-card--feature{min-height:22rem}.bento-card--photo{min-height:20rem}.bento-card--feature .bento-card__stage{inset:var(--space-24) var(--space-28) 36%}}@media (prefers-reduced-motion:reduce){.bento-card,.bento-card__bg,.bento-card__cta:after{transition:none}a.bento-card:hover .bento-card__cta:after,a.bento-card:focus-visible .bento-card__cta:after{transform:none}}@media (prefers-reduced-transparency:reduce){.bento-card__glass{-webkit-backdrop-filter:none;background:color-mix(in srgb, var(--bento-accent) 92%, black)}.bento-card__bg{filter:brightness(.55)saturate(1.05)}}}@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-muted);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-on-surface)}}.site-nav a:focus-visible,.site-nav a[aria-current=page]{color:var(--colour-on-surface)}.site-nav a[aria-current=page]{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;border:3px solid #0000;position:absolute;inset:-3px}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-chip-product);border-color:var(--colour-chip-product);box-shadow:var(--shadow-btn-blue)}.btn--fill-blue:focus-visible:before{background:color-mix(in srgb, var(--colour-chip-product) 82%, var(--colour-white));border-color:color-mix(in srgb, var(--colour-chip-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-chip-product) 82%, var(--colour-white));border-color:color-mix(in srgb, var(--colour-chip-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-chip);font-family:var(--font-label);font-size:var(--text-12);line-height:var(--leading-12);white-space:nowrap;touch-action:manipulation;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-10);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);border-radius:.885rem;flex-shrink:0;width:4rem;height:4rem;position:relative;overflow:hidden}.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);background:0 0;border-radius:5.4%/2.49%;margin-inline:auto}.phone-frame img{object-fit:cover;border-radius:inherit;background:0 0;width:100%;height:100%;display:block}.phone-frame--sm{box-shadow:var(--shadow-media-sm)}.tv-frame{border-radius:var(--radius-xl);box-shadow:var(--shadow-media);background:0 0}.tv-frame img{border-radius:inherit;background:0 0;width:100%;height:auto;display:block}.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-white)}}.site-footer .site-nav a[aria-current=page]{color:var(--colour-white);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-chip-product);box-shadow:0 0 0 3px color-mix(in srgb, var(--colour-chip-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-chip-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{text-decoration:underline}}.email-card__address{font-size:var(--text-24);font-weight:600;line-height:var(--leading-24)}.outcome-card{background:color-mix(in srgb, var(--case-accent,var(--colour-ink)) 4%, 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){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}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,.tv-frame,.about__portrait-wrap,.about-life__media,.server-photos__item,.app-icon,.outcome-card,.case-panel,.case-section-band,.tool,.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), border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), opacity var(--motion-base) var(--ease-out)}html.js .chip{transform:translate(calc(var(--chip-x,0) * 3.5px), calc(var(--chip-y,0) * 2.75px)) 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)}}.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,.btn:active:not(:disabled)>*{transform:none}.btn:active:not(:disabled):before{box-shadow: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,.bento-card--more .bento-card__visual: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-chip-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}[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-fast) var(--ease-out) both}::view-transition-new(root){animation:motion-page-in var(--motion-base) var(--ease-out) both}@keyframes motion-page-out{to{opacity:0}}@keyframes motion-page-in{0%{opacity:0}}@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}}
