:root{--paper:#f4f3ef;--paper-sunk:#e6e4de;--paper-hatch:#dddbd4;--ink:#0e0e0e;--ink-soft:#2a2a27;--muted:#5a5a55;--rule:#0e0e0e;--on-ink:#f4f3ef;--accent:#2b3de8;--on-accent:#fff;--invert:#0e0e0e;--on-invert-muted:#b9b8b2;--font-display:var(--font-display-face,"Funnel Display", "Funnel Sans", system-ui, sans-serif);--font-sans:var(--font-sans-face,"Funnel Sans", system-ui, sans-serif);--font-mono:var(--font-mono-face,"IBM Plex Mono", ui-monospace, monospace);--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--space-8:96px;--space-9:160px;--page-gutter:56px;--page-max:1440px;--radius-none:0px;--radius-sm:6px;--radius-pill:999px;--duration-instant:.1s;--duration-fast:.16s;--duration-base:.24s;--duration-slow:.48s;--duration-page:.56s;--stagger:60ms;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-in:cubic-bezier(.5, 0, .75, 0);--ease-reveal:cubic-bezier(.16, 1, .3, 1);--shift-sm:18%;--shift-md:24px;--press-scale:.97;--display-xl-size:176px;--display-xl-weight:500;--display-xl-leading:.92;--display-xl-tracking:-.03em;--display-lg-size:112px;--display-lg-weight:500;--display-lg-leading:.92;--display-lg-tracking:-.025em;--display-md-size:64px;--display-md-weight:500;--display-md-leading:1;--display-md-tracking:-.02em;--heading-lg-size:40px;--heading-lg-weight:500;--heading-lg-leading:1.1;--heading-lg-tracking:-.015em;--heading-md-size:28px;--heading-md-weight:500;--heading-md-leading:1.2;--heading-md-tracking:-.01em;--lead-size:23px;--lead-weight:400;--lead-leading:1.45;--body-size:18px;--body-weight:400;--body-leading:1.5;--ui-size:16px;--ui-weight:500;--ui-leading:1.4;--small-size:15px;--small-weight:400;--small-leading:1.4;--label-size:13px;--label-weight:400;--label-leading:1.4;--label-tracking:.06em;--meta-size:12px;--meta-weight:400;--meta-leading:1.4;--meta-tracking:.06em;--index-size:14px;--index-weight:500;--index-leading:1.4;color-scheme:light}[data-theme=dark]{color-scheme:dark;--paper:#0e0e0e;--paper-sunk:#1c1c1a;--paper-hatch:#262624;--ink:#f4f3ef;--ink-soft:#cfcec8;--muted:#b9b8b2;--rule:#5a5a55;--on-ink:#0e0e0e;--accent:#7b88ff;--on-accent:#0e0e0e;--invert:#f4f3ef;--on-invert-muted:#5a5a55}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--paper:#0e0e0e;--paper-sunk:#1c1c1a;--paper-hatch:#262624;--ink:#f4f3ef;--ink-soft:#cfcec8;--muted:#b9b8b2;--rule:#5a5a55;--on-ink:#0e0e0e;--accent:#7b88ff;--on-accent:#0e0e0e;--invert:#f4f3ef;--on-invert-muted:#5a5a55}}@media (prefers-reduced-motion:reduce){:root{--stagger:0s;--shift-sm:0%;--shift-md:0px;--press-scale:1}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(44px + 2 * var(--space-4))}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--body-size);line-height:var(--body-leading);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-lg-weight);margin:0;line-height:1.2}p{margin:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-3);z-index:10;padding:var(--space-2) var(--space-3);background:var(--ink);color:var(--on-ink);border-radius:var(--radius-pill);position:absolute;top:-100px}.skip-link:focus{top:var(--space-3);color:var(--on-ink)}@view-transition{navigation:auto}::view-transition-old(root){animation:page-out var(--duration-fast) var(--ease-in) both}::view-transition-new(root){animation:page-in var(--duration-page) var(--ease-out) both}::view-transition-group(.case-media){animation-duration:var(--duration-page);animation-timing-function:var(--ease-in-out)}::view-transition-image-pair(.case-media){border-radius:var(--radius-sm);overflow:hidden}::view-transition-old(.case-media),::view-transition-new(.case-media){object-fit:cover;height:100%;animation-duration:var(--duration-page);animation-timing-function:var(--ease-in-out)}::view-transition-group(.case-title){animation-duration:var(--duration-page);animation-timing-function:var(--ease-in-out)}::view-transition-old(.case-title),::view-transition-new(.case-title){width:auto;height:100%}::view-transition-old(.case-title){animation:page-out var(--duration-fast) var(--ease-in) both}::view-transition-new(.case-title){animation:fade-in var(--duration-fast) var(--ease-out) both}::view-transition-old(.case-media):only-child,::view-transition-old(.case-title):only-child{animation:page-out var(--duration-fast) var(--ease-in) both}::view-transition-new(.case-media):only-child,::view-transition-new(.case-title):only-child{animation:page-in var(--duration-page) var(--ease-out) both}@keyframes page-out{to{opacity:0}}@keyframes fade-in{0%{opacity:0}}@keyframes page-in{0%{opacity:0;transform:translateY(var(--shift-md))}}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none}}:root.theme-swap::view-transition-group(*),:root.theme-swap::view-transition-old(*){animation:none}:root.theme-swap::view-transition-new(*){animation:fade-in var(--duration-base) var(--ease-out) both}a{transition:color var(--duration-instant) var(--ease-out)}.arrow{transition:transform var(--duration-fast) var(--ease-out)}@media (hover:hover){:is(a,button):hover .arrow{transform:translate(var(--shift-sm), calc(-1 * var(--shift-sm)))}}:is(a,button):focus-visible .arrow{transform:translate(var(--shift-sm), calc(-1 * var(--shift-sm)))}.btn,.chip,.chip-check span{transition:transform var(--duration-instant) var(--ease-out), opacity var(--duration-fast) var(--ease-out), background-color var(--duration-instant) var(--ease-out), border-color var(--duration-instant) var(--ease-out), color var(--duration-instant) var(--ease-out)}.btn:active,.chip:active,.chip-check input:active+span{transform:scale(var(--press-scale))}.words .w{clip-path:inset(0 -.25em);margin-block:-.12em;padding-block:.12em;display:inline-block}.words .w__i{display:inline-block}@media screen and (prefers-reduced-motion:no-preference){.motion .words .w__i{animation:word-rise var(--duration-slow) var(--ease-reveal) both;animation-delay:calc(var(--reveal-delay,0s) + var(--w) * var(--stagger))}.motion :is(.draw-top,.rule-top,.draw-bottom){position:relative}.motion :is(.draw-top,.rule-top){border-top-color:#0000}.motion .draw-bottom{border-bottom-color:#0000}.motion :is(.draw-top,.rule-top):before,.motion .draw-bottom:after{content:"";background:var(--rule);transform-origin:0;height:1px;animation:rule-draw var(--duration-slow) var(--ease-reveal) both;animation-delay:var(--reveal-delay,0s);position:absolute;left:0;right:0}.motion :is(.draw-top,.rule-top):before{top:-1px}.motion .draw-bottom:after{bottom:-1px}.motion .index{animation:index-tick var(--duration-base) var(--ease-out) both;animation-delay:calc(var(--reveal-delay,0s) + var(--stagger));display:inline-block}.motion .words:not(.is-in) .w__i,.motion :is(.draw-top,.rule-top):not(.is-in):before,.motion .draw-bottom:not(.is-in):after,.motion :is(.draw-top,.rule-top,.draw-bottom):not(.is-in) .index{animation-play-state:paused}}@keyframes word-rise{0%{transform:translateY(110%)}}@keyframes rule-draw{0%{transform:scaleX(0)}}@keyframes index-tick{0%{clip-path:inset(0 0 100%);transform:translateY(100%)}}.wrap{max-width:var(--page-max);padding-inline:clamp(var(--space-3), 4vw, var(--page-gutter));margin:0 auto}.section{padding-top:clamp(80px,10vw,140px)}.section--lg{padding-top:clamp(80px, 10vw, var(--space-9))}.grid{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--min,300px)), 1fr));gap:var(--gap,var(--space-4) var(--space-3));display:grid}.split{gap:var(--space-5) var(--space-7);grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));display:grid}.stack{gap:var(--gap,var(--space-4));flex-direction:column;display:flex}.rule-top{border-top:1px solid var(--rule)}.band{background:var(--band-bg,var(--invert));color:var(--band-fg,var(--on-ink));--rule:color-mix(in srgb, currentColor 35%, transparent);margin-top:clamp(80px,10vw,140px)}.band__inner{gap:var(--space-4);flex-direction:column;padding-block:clamp(64px,8vw,120px);display:flex}.band .label,.band .caption{color:color-mix(in srgb, currentColor 72%, transparent)}.page-head{padding-top:clamp(48px,7vw,112px)}.page-head>.label{margin-bottom:28px;display:block}.page-head__lede{max-width:760px;color:var(--ink-soft);margin-top:clamp(32px,4vw,48px);font-size:clamp(20px,1.8vw,26px);line-height:1.4}.label{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--muted)}.meta{font-family:var(--font-mono);font-size:var(--meta-size);letter-spacing:var(--meta-tracking);text-transform:uppercase;color:var(--muted)}.index{font-family:var(--font-mono);font-size:var(--index-size);font-weight:var(--index-weight);color:var(--accent)}.display-xl{font-size:clamp(56px, 11vw, var(--display-xl-size));line-height:var(--display-xl-leading);letter-spacing:var(--display-xl-tracking)}.display-page{font-size:clamp(52px,9vw,144px);line-height:var(--display-xl-leading);letter-spacing:var(--display-xl-tracking)}.display-lg{font-size:clamp(44px, 7vw, var(--display-lg-size));line-height:var(--display-lg-leading);letter-spacing:var(--display-lg-tracking)}.display-md{font-size:clamp(36px, 4.4vw, var(--display-md-size));line-height:var(--display-md-leading);letter-spacing:var(--display-md-tracking)}.heading-section{letter-spacing:var(--display-md-tracking);font-size:clamp(32px,4vw,60px);line-height:1.02}.heading-lg{font-size:clamp(26px, 2.6vw, var(--heading-lg-size));line-height:var(--heading-lg-leading);letter-spacing:var(--heading-lg-tracking)}.heading-md{font-size:clamp(24px, 2.2vw, var(--heading-md-size));line-height:var(--heading-md-leading);letter-spacing:var(--heading-md-tracking)}.lead{font-size:clamp(20px, 1.8vw, var(--lead-size));line-height:var(--lead-leading);color:var(--ink-soft)}.statement{letter-spacing:-.02em;font-size:clamp(24px,2.4vw,36px);line-height:1.25}.body{font-size:var(--body-size);line-height:var(--body-leading);color:var(--ink-soft)}.band .body,.band .lead{color:color-mix(in srgb, currentColor 82%, transparent)}.accent{color:var(--accent)}.sec-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.sec-head h2{max-width:760px}.figure{flex-direction:column;gap:12px;margin:0;display:flex}.figure__split{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.figure__tag{justify-content:space-between;gap:var(--space-2);border-top:1px solid var(--rule);padding-top:10px;font-size:17px;font-weight:600;display:flex}.figure__tag .meta{font-weight:400}.figure__img{border-radius:var(--radius-sm);object-fit:cover;background:var(--paper-sunk);width:100%}.figure__img--wide{height:clamp(300px,46vw,680px)}.figure__img--border{border:1px solid var(--paper-hatch)}.fine{font-family:var(--font-mono);font-size:var(--meta-size);color:var(--muted)}.caption{line-height:normal;font-family:var(--font-mono);font-size:var(--meta-size);letter-spacing:var(--meta-tracking);text-transform:uppercase;color:var(--muted)}.placeholder{text-align:center;padding:var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--muted);background:repeating-linear-gradient(135deg, var(--paper-sunk) 0 14px, var(--paper-hatch) 14px 28px);justify-content:center;align-items:center;font-size:14px;display:flex}.band .placeholder{color:color-mix(in srgb, currentColor 70%, transparent);background:repeating-linear-gradient(135deg, color-mix(in srgb, currentColor 8%, transparent) 0 14px, color-mix(in srgb, currentColor 14%, transparent) 14px 28px)}.btn{border-radius:var(--radius-pill);min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:600;line-height:1;display:inline-flex}.btn--lg{min-height:56px;padding:0 30px;font-size:18px}.btn--ink{background:var(--ink);color:var(--on-ink)}.btn--accent{background:var(--accent);color:var(--on-accent)}.btn--outline{color:var(--ink);border-color:var(--ink);background:0 0}.btn:hover{opacity:.88}.btn--ink:hover{color:var(--on-ink)}.btn--accent:hover{color:var(--on-accent)}.btn--outline:hover{color:var(--ink)}.chip{border:1px solid var(--ink);border-radius:var(--radius-pill);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:0 20px;font-size:16px;font-weight:600}.chip[aria-pressed=true]{background:var(--ink);color:var(--on-ink)}.chip--accent[aria-pressed=true],.chip-check input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip-check{position:relative}.chip-check input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip-check span{border:1px solid var(--ink);border-radius:var(--radius-pill);align-items:center;min-height:48px;padding:0 22px;font-size:17px;font-weight:600;display:inline-flex}.chip-check input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}.field{flex-direction:column;gap:8px;display:flex}.field label{font-family:var(--font-mono);font-size:var(--meta-size);letter-spacing:var(--meta-tracking);text-transform:uppercase;color:var(--muted)}.field input,.field textarea,.field select{border:0;border-bottom:1px solid var(--rule);min-height:52px;font:inherit;color:var(--ink);background:0 0;border-radius:0;padding:0;font-size:22px}.field textarea{resize:vertical;padding:12px 0;line-height:1.4}.field input:focus,.field textarea:focus,.field select:focus{border-bottom:2px solid var(--accent);outline:none}.rows{border-top:1px solid var(--rule)}.rows__item{border-bottom:1px solid var(--rule);flex-direction:column;gap:10px;padding:28px 0;display:flex}.case-blocks>.sec-head{margin-bottom:var(--space-2)}.rows__item h3,.case-h3{letter-spacing:-.02em;font-size:clamp(24px,2.2vw,32px)}.case-body{color:var(--ink-soft);font-size:19px;line-height:1.55}.band .case-body{color:color-mix(in srgb, currentColor 82%, transparent)}.stat{border-top:1px solid var(--rule);padding-top:var(--space-3)}.stat__value{font-family:var(--font-display);font-weight:var(--display-md-weight);letter-spacing:-.02em;color:var(--accent);font-size:clamp(44px,4.4vw,64px);line-height:normal}.stat__value--sm{font-size:clamp(40px,4vw,60px)}.stat__label{color:var(--muted);font-size:16px;line-height:normal}.band .stat__label{color:color-mix(in srgb, currentColor 72%, transparent)}.work-card{flex-direction:column;gap:20px;display:flex}.work-card--meta{gap:18px}.work-card__meta{gap:var(--space-2);border-top:1px solid var(--rule);padding-top:var(--space-3);flex-direction:column;display:flex}.work-card__row{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.work-card__summary{font-size:var(--body-size);color:var(--ink-soft);line-height:normal}.work-card__img{aspect-ratio:4/3;border-radius:var(--radius-sm);object-fit:cover;width:100%}.work-card__caption{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-top:1px solid var(--rule);padding-top:var(--space-3);line-height:normal;display:flex}.work-card__title{font-family:var(--font-display);font-weight:var(--heading-lg-weight);letter-spacing:-.015em;font-size:clamp(26px,2.4vw,36px)}.work-card__name{display:inline-block}.work-card__desc{color:var(--muted);text-align:right;font-size:16px}@media (width<=720px){.work-card__caption{flex-direction:column;align-items:flex-start;gap:6px;line-height:normal}.work-card__desc{text-align:left}}.logo[data-astro-cid-f7espo7c]{font-family:var(--font-display);font-size:var(--logo-size);letter-spacing:-.04em;white-space:nowrap;font-weight:600;line-height:.9;display:inline-block}.site-header[data-astro-cid-nen7h5rs]{z-index:20;view-transition-name:site-header;background:color-mix(in srgb, var(--paper) 82%, transparent);backdrop-filter:blur(16px)saturate(1.4);position:sticky;top:0}.site-header[data-astro-cid-nen7h5rs]:has(.site-header__toggle[aria-expanded=true]){background:var(--paper)}@supports not (backdrop-filter:blur(1px)){.site-header[data-astro-cid-nen7h5rs]{background:var(--paper)}}@media (prefers-reduced-transparency:reduce){.site-header[data-astro-cid-nen7h5rs]{background:var(--paper);backdrop-filter:none}}.site-header__bar[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);padding-block:var(--space-4);flex-wrap:wrap;display:flex}.site-header__logo[data-astro-cid-nen7h5rs]{min-height:44px;color:var(--ink);align-items:center;display:inline-flex}.site-header__nav[data-astro-cid-nen7h5rs]{gap:var(--space-2) var(--space-5);font-size:var(--ui-size);font-weight:var(--ui-weight);display:flex}.site-header__nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{align-items:center;min-height:44px;display:inline-flex}.site-header__nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{box-shadow:inset 0 -2px 0 var(--accent)}.site-header__actions[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-3);display:flex}.site-header__icon[data-astro-cid-nen7h5rs]{border:1px solid var(--ink);border-radius:var(--radius-pill);width:48px;height:48px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.site-header__icon[data-astro-cid-nen7h5rs]:hover{color:var(--accent);border-color:var(--accent)}:root:not([data-theme]) .site-header__theme[data-astro-cid-nen7h5rs],.site-header__theme[data-astro-cid-nen7h5rs] .i-sun[data-astro-cid-nen7h5rs],.site-header__theme[data-astro-cid-nen7h5rs][aria-pressed=true] .i-moon[data-astro-cid-nen7h5rs]{display:none}.site-header__theme[data-astro-cid-nen7h5rs][aria-pressed=true] .i-sun[data-astro-cid-nen7h5rs]{display:block}.site-header__toggle[data-astro-cid-nen7h5rs],.site-header__toggle[data-astro-cid-nen7h5rs] .i-close[data-astro-cid-nen7h5rs],.site-header__toggle[data-astro-cid-nen7h5rs][aria-expanded=true] .i-open[data-astro-cid-nen7h5rs]{display:none}.site-header__toggle[data-astro-cid-nen7h5rs][aria-expanded=true] .i-close[data-astro-cid-nen7h5rs]{display:block}.site-header__menu[data-astro-cid-nen7h5rs]{padding-bottom:var(--space-5);border-top:1px solid var(--rule);flex-direction:column;display:flex}.site-header__menu[data-astro-cid-nen7h5rs][hidden]{display:none}.site-header__menu[data-astro-cid-nen7h5rs]>a[data-astro-cid-nen7h5rs]:not(.btn){border-bottom:1px solid var(--rule);min-height:64px;font-family:var(--font-display);font-size:32px;font-weight:var(--heading-md-weight);letter-spacing:-.015em;justify-content:space-between;align-items:center;display:flex}.site-header__menu-cta[data-astro-cid-nen7h5rs]{margin-top:var(--space-4);justify-content:center}@media (prefers-reduced-motion:no-preference){.site-header__menu[data-astro-cid-nen7h5rs]{transition:opacity var(--duration-fast) var(--ease-in), display var(--duration-fast) allow-discrete}.site-header__menu[data-astro-cid-nen7h5rs][hidden]{opacity:0}.site-header__menu[data-astro-cid-nen7h5rs]:not([hidden])>[data-astro-cid-nen7h5rs]{animation:menu-row var(--duration-base) var(--ease-out) both;animation-delay:calc(var(--i) * var(--stagger))}.site-header__icon[data-astro-cid-nen7h5rs][data-used] svg[data-astro-cid-nen7h5rs]{animation:icon-turn var(--duration-base) var(--ease-out)}}@keyframes menu-row{0%{opacity:0;transform:translateY(var(--shift-md))}}@keyframes icon-turn{0%{opacity:0;transform:rotate(-90deg)}}@media (width<=720px){.desk[data-astro-cid-nen7h5rs]{display:none!important}.site-header__toggle[data-astro-cid-nen7h5rs]{display:inline-flex}}.footer__base[data-astro-cid-jo6i4kqk]{padding-block:var(--space-5);flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.footer__base[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:not(:hover){color:var(--muted)}.footer--big[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--rule);padding-top:clamp(64px,8vw,120px)}.footer--big[data-astro-cid-jo6i4kqk] .footer__base[data-astro-cid-jo6i4kqk]{padding-block:0 var(--space-5);margin-top:var(--space-5)}.footer__cta[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:flex-end;gap:var(--space-5);flex-wrap:wrap;display:flex}.footer__cta-title[data-astro-cid-jo6i4kqk]{letter-spacing:-.025em;max-width:900px;font-size:clamp(44px,6.4vw,104px);line-height:.92}.footer__cols[data-astro-cid-jo6i4kqk]{gap:var(--space-5);margin-top:var(--space-8);line-height:normal;font-size:var(--ui-size);grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));display:grid}.footer__col[data-astro-cid-jo6i4kqk]{--gap:10px}.footer__mark[data-astro-cid-jo6i4kqk]{margin-top:80px}
