.home{--brand-50:#f3f5f8;--brand-100:#e2e8f0;--brand-200:#cad9eb;--brand-300:#a5c4ea;--brand-400:#6ba8f2;--brand-500:#08f;--brand-600:#1971cd;--brand-700:#285c98;--brand-800:#2a4669;--brand-900:#222f3f;--brand-950:#161b21;--neutral-50:#f9fafb;--neutral-100:#eef0f3;--neutral-200:#dde2e8;--neutral-300:#c4cbd4;--neutral-400:#9ea5af;--neutral-500:#7a818a;--neutral-600:#5d646c;--neutral-700:#484e55;--neutral-800:#31363c;--neutral-900:#1e2226;--neutral-950:#0f1215;--home-bg:var(--neutral-50);--home-ink:var(--neutral-950);--home-muted:var(--neutral-700);--home-faint:#6b727b;--home-line:color-mix(in oklab, var(--home-ink) 18%, transparent);--home-brand:var(--brand-500);--home-brand-hover:var(--brand-600);--home-focus:var(--brand-500);--home-selection:#ededed;--home-glyph-shadow:drop-shadow(0 1.5px 2px #00000057);--role-designer-1:#1b487c;--role-designer-2:#235996;--role-designer-3:#133863;--role-builder-1:#5f411a;--role-builder-2:#745022;--role-builder-3:#4b3213;--role-lifter-1:#7e2221;--role-lifter-2:#992b2a;--role-lifter-3:#651818;--role-runner-1:#1f533d;--role-runner-2:#26664b;--role-runner-3:#15412f;--role-father-1:#50279a;--role-father-2:#6231b9;--role-father-3:#3f1d7b;--home-text-name:.9375rem;--home-text-body:.9375rem;--home-text-role:.9375rem;--home-text-meta:.8125rem;--home-leading-name:1.5;--home-leading-body:1.65;--home-leading-title:1.5;--home-leading-role:1.5;--home-leading-meta:1.4;--home-weight-name:500;--home-weight-title:500;--home-weight-body:400;--home-track-name:-.01em;--home-track-label:-.01em;--home-track-title:-.01em;--home-track-body:0;--home-track-meta:0;--home-space-page-top:3rem;--home-space-section:4rem;--home-space-title:1rem;--home-space-row:1rem;--home-ease:cubic-bezier(.22, 1, .36, 1);--home-hover-dur:.15s;background:var(--home-bg);min-height:100%;color:var(--home-ink);font-family:var(--font-inter), "Inter", system-ui, -apple-system, sans-serif;font-size:var(--home-text-role);font-weight:var(--home-weight-body);font-synthesis:none;font-kerning:normal;font-optical-sizing:auto;font-variant-ligatures:common-ligatures contextual;font-variant-numeric:proportional-nums lining-nums;letter-spacing:var(--home-track-body);line-height:var(--home-leading-role);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--home-hover-dur) ease, color var(--home-hover-dur) ease;flex-direction:column;flex:1;display:flex}@supports (color:lab(0% 0 0)){.home{--brand-50:lab(96.5131% -.351518 -1.46464);--brand-100:lab(91.8578% -1.02359 -4.37639);--brand-200:lab(86.0142% -2.36809 -10.8444);--brand-300:lab(77.7761% -4.11463 -22.426);--brand-400:lab(66.9347% -4.11847 -43.8022);--brand-500:lab(55.7887% 4.1512 -68.9799);--brand-600:lab(46.6648% 1.78334 -55.4307);--brand-700:lab(37.853% -1.03778 -38.8877);--brand-800:lab(28.917% -2.20883 -23.9784);--brand-900:lab(18.6799% -1.8269 -11.9812);--brand-950:lab(9.48246% -.977166 -5.00644);--neutral-50:lab(98.2567% -.178039 -.732732);--neutral-100:lab(94.7714% -.4403 -1.82909);--neutral-200:lab(89.542% -.863671 -3.64856);--neutral-300:lab(81.4135% -1.1856 -5.09518);--neutral-400:lab(67.4883% -1.32844 -5.80924);--neutral-500:lab(53.5672% -1.30704 -5.79851);--neutral-600:lab(41.9658% -1.28131 -5.786);--neutral-700:lab(32.6897% -1.1154 -5.06007);--neutral-800:lab(22.2535% -.945017 -4.33204);--neutral-900:lab(12.9773% -.776425 -3.60495);--neutral-950:lab(5.25385% -.457928 -2.35408);--home-faint:lab(47.7665% -1.29536 -5.79276);--home-glyph-shadow:drop-shadow(0 1.5px 2px lab(0% 0 0/.34));--role-designer-1:lab(29.7795% -.47794 -34.707);--role-designer-2:lab(36.6592% -.65048 -39.5295);--role-designer-3:lab(22.9109% -.392944 -29.5509);--role-builder-1:lab(30.2873% 10.4848 28.3125);--role-builder-2:lab(37.2311% 12.0193 32.4533);--role-builder-3:lab(23.3434% 8.95032 24.172);--role-lifter-1:lab(29.1273% 40.0697 24.6928);--role-lifter-2:lab(35.8969% 46.0641 28.3842);--role-lifter-3:lab(22.3467% 34.3989 21.252);--role-runner-1:lab(31.3037% -22.8496 7.7236);--role-runner-2:lab(38.4097% -26.5575 8.97514);--role-runner-3:lab(24.2238% -19.843 6.70459);--role-father-1:lab(27.2657% 39.6284 -56.6669);--role-father-2:lab(33.7868% 45.2182 -64.8089);--role-father-3:lab(20.773% 33.7165 -48.1994)}}@media (min-width:640px){.home{--home-space-page-top:6rem;--home-space-section:5rem;--home-space-row:.5rem}}html.dark .home,html[data-theme=dark] .home{--home-bg:var(--neutral-950);--home-ink:var(--neutral-50);--home-muted:var(--neutral-300);--home-faint:var(--neutral-400);--home-line:color-mix(in oklab, var(--home-ink) 24%, transparent);--home-brand:var(--brand-400);--home-brand-hover:var(--brand-300);--home-focus:var(--brand-400);--home-selection:color-mix(in oklab, var(--home-ink) 14%, var(--home-bg));--home-glyph-shadow:drop-shadow(0 2px 3px #00000085);--role-designer-1:#afcdf4;--role-designer-2:#cde0f8;--role-designer-3:#b9d4f5;--role-builder-1:#f4bf82;--role-builder-2:#f8d8b4;--role-builder-3:#f5c894;--role-lifter-1:#f5bab4;--role-lifter-2:#f8d4d0;--role-lifter-3:#f6c3bd;--role-runner-1:#63e7af;--role-runner-2:#88f9c5;--role-runner-3:#66efb4;--role-father-1:#ccc3f4;--role-father-2:#dfd9f8;--role-father-3:#d2caf5}@supports (color:lab(0% 0 0)){html.dark .home,html[data-theme=dark] .home{--home-glyph-shadow:drop-shadow(0 2px 3px lab(0% 0 0/.52));--role-designer-1:lab(81.2591% -4.17051 -22.4455);--role-designer-2:lab(88.3085% -2.96843 -14.0475);--role-designer-3:lab(83.6122% -3.83335 -19.6661);--role-builder-1:lab(81.3438% 14.0886 38.5644);--role-builder-2:lab(88.3852% 7.6313 21.9933);--role-builder-3:lab(83.6993% 11.7061 32.5226);--role-lifter-1:lab(80.7956% 21.2518 11.7358);--role-lifter-2:lab(88.0216% 12.5648 6.88529);--role-lifter-3:lab(83.2114% 18.1391 9.98625);--role-runner-1:lab(83.3404% -48.0543 16.2428);--role-runner-2:lab(90.0937% -42.3761 14.3697);--role-runner-3:lab(85.7004% -49.0566 16.5825);--role-father-1:lab(80.6855% 10.4882 -23.0181);--role-father-2:lab(87.9564% 6.19575 -14.3599);--role-father-3:lab(83.1169% 8.95676 -20.0396)}}html[data-home]{scroll-behavior:smooth}html[data-home] body{background:var(--home-bg,#f9fafb)}@supports (color:lab(0% 0 0)){html[data-home] body{background:var(--home-bg,lab(98.2567% -.178039 -.732732))}}html[data-home][data-theme=dark] body,html[data-home].dark body{background:#0f1215;background:lab(5.25385% -.457928 -2.35408)}.home a{color:inherit}.home a:not(.home-link):not(.home-list-link):not(.home-writing-row){text-decoration:none}.home a:focus-visible,.home button:focus-visible{outline:2px solid var(--home-focus);outline-offset:2px;border-radius:2px}.home-skip{z-index:100;background:var(--home-ink);color:var(--home-bg);font-size:var(--home-text-meta);font-weight:var(--home-weight-title);line-height:var(--home-leading-meta);transition:transform var(--home-hover-dur) var(--home-ease);border-radius:8px;padding:8px 12px;position:absolute;top:8px;left:8px;transform:translateY(-160%)}.home-skip:focus{transform:translateY(0)}.home-shell{flex-direction:column;flex:1;width:100%;max-width:64rem;margin:0 auto;padding:0 1.5rem;display:flex}.home-column{flex-direction:column;flex:1;width:100%;max-width:30.5rem;margin:0 auto;display:flex}@media (min-width:640px){.home-column{margin-left:8.333%;margin-right:auto}}@media (min-width:768px){.home-column{margin-left:16.666%}}@media (min-width:1024px){.home-column{margin-left:25%}}.home-main{gap:var(--home-space-section);flex-direction:column;flex:1;display:flex}.home-intro{padding-top:var(--home-space-page-top);margin-bottom:1rem;padding-bottom:0}.home-intro-stack{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.home-intro-copy{align-self:stretch;min-width:0}.home-blobatar{pointer-events:none;flex-shrink:0;width:64px;height:64px;line-height:0;display:inline-grid;position:relative;overflow:visible}.home-blobatar-face{grid-area:1/1;place-items:center;width:64px;height:64px;line-height:0;display:grid}.home-blobatar-face[data-phase=out]{z-index:2;pointer-events:none}.home-blobatar-face-fx{isolation:isolate;opacity:1;filter:blur();will-change:opacity, filter, transform;line-height:0;transition-property:opacity,filter,transform;transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,1,1);display:inline-flex;transform:translateZ(0)scale(1)}.home-blobatar-face[data-phase=out] .home-blobatar-face-fx{opacity:0;filter:blur(12px);transform:translateZ(0)scale(.96)}.home-blobatar-face[data-phase=pre] .home-blobatar-face-fx{opacity:0;filter:blur(12px);transition:none;transform:translateZ(0)scale(.96)}.home-blobatar-face[data-phase=in] .home-blobatar-face-fx{opacity:1;filter:blur();transition-duration:.32s;transition-timing-function:cubic-bezier(.32,.72,0,1);transform:translateZ(0)scale(1)}.home-blob-slot{display:inline-flex;position:relative}.home-role-hint{--hint-fill:var(--neutral-950);--hint-ink:#fff;z-index:2;background:var(--hint-fill);color:var(--hint-ink);font-size:.8125rem;font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);white-space:nowrap;pointer-events:none;transform-origin:0;border-radius:8px;margin:0;padding:.35rem .55rem;line-height:1.35;position:absolute;top:20px;left:110%}html.dark .home-role-hint,html[data-theme=dark] .home-role-hint{--hint-fill:#fff;--hint-ink:#111}.home-role-hint[data-phase=in]{animation:.22s cubic-bezier(.32,.72,0,1) both home-hint-in}.home-role-hint[data-phase=out]{animation:.16s cubic-bezier(.4,0,1,1) forwards home-hint-out}@keyframes home-hint-in{0%{opacity:0;transform:translate(-8px)scale(.96)}to{opacity:1;transform:none}}@keyframes home-hint-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-6px)scale(.97)}}.home-role-hint:before{content:"";background:var(--hint-fill);border-radius:1px;width:8px;height:8px;position:absolute;top:50%;left:-4px;transform:translateY(-50%)rotate(45deg)}.home-name{z-index:2;font-size:var(--home-text-name);font-weight:var(--home-weight-name);letter-spacing:var(--home-track-name);line-height:var(--home-leading-name);color:var(--home-ink);text-wrap:balance;margin:0 0 .2em;position:relative}.home-section-title{margin:0 0 var(--home-space-title);font-size:var(--home-text-name);font-weight:var(--home-weight-name);letter-spacing:var(--home-track-label);line-height:var(--home-leading-name);color:var(--home-ink);text-wrap:balance}.home-role{z-index:1;font-size:var(--home-text-role);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);line-height:var(--home-leading-role);color:var(--home-muted);flex-wrap:nowrap;align-items:baseline;column-gap:.35em;max-width:65ch;margin:0 0 .55em;display:flex;position:relative}.home-body{font-size:var(--home-text-body);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);line-height:var(--home-leading-body);color:var(--home-muted);text-wrap:pretty;max-width:65ch;margin:0 0 1rem}.home-role:last-child,.home-body:last-child{margin-bottom:0}.home-link,.home-list-link{text-underline-offset:.14em;text-decoration-skip-ink:auto;text-decoration:underline;text-decoration-thickness:from-font;-webkit-text-decoration-color:var(--home-line);text-decoration-color:var(--home-line);transition:color var(--home-hover-dur) ease, text-decoration-color var(--home-hover-dur) ease}.dia-text[data-sweeping]{background-image:var(--dia-gradient);background-position:var(--dia-pos);background-size:var(--dia-size);color:#0000;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text}.dia-text[data-sweeping] *{color:#0000!important;transition:none!important}.home-preview{--preview-o:1;will-change:transform}.home-preview-surface{--glass-tint:color-mix(in oklab, var(--home-bg) 82%, transparent);box-shadow:0 4px 12px -4px color-mix(in oklab, var(--home-ink) 8%, transparent), 0 18px 36px -12px color-mix(in oklab, var(--home-ink) 14%, transparent);border-radius:16px;padding:6px}html.dark .home-preview-surface,html[data-theme=dark] .home-preview-surface{--glass-tint:color-mix(in oklab, var(--home-bg) 82%, transparent)}.preview-photo{object-fit:cover;border-radius:12px;width:224px;height:168px;display:block;box-shadow:0 1px 2px #0000001f,0 8px 16px -4px #00000029,0 20px 40px -12px #00000047}.preview-card{width:288px;color:var(--home-muted);padding:10px 10px 8px;font-size:13px;line-height:1.45}.preview-card-header{align-items:center;gap:8px;display:flex}.preview-card-icon{color:var(--home-faint);flex:none}.preview-card-avatar{object-fit:cover;border-radius:50%;flex:none;width:32px;height:32px}.preview-card-title{flex-direction:column;min-width:0;display:flex}.preview-card-name{color:var(--home-ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.preview-card-name strong{font-weight:600}.preview-card-subtitle,.preview-card-muted{color:var(--home-faint)}.preview-card-subtitle{font-size:12px}.preview-card-logo{color:var(--home-ink);flex:none;margin-left:auto}.preview-card-logo-strava{color:#fc4c02}.preview-card-badge{border:1px solid var(--glass-rim,var(--home-line));color:var(--home-faint);border-radius:999px;flex:none;margin-left:auto;padding:0 7px;font-size:11px;line-height:18px}.preview-card-description{text-wrap:pretty;margin:8px 0 12px}.preview-card-stats{border-top:1px solid var(--glass-rim,var(--home-line));grid-auto-flow:column;justify-content:space-between;gap:12px;margin:12px 0 2px;padding-top:10px;display:grid}.preview-card-stat{flex-direction:column-reverse;display:flex}.preview-card-stat dd{color:var(--home-ink);font-variant-numeric:tabular-nums;margin:0;font-weight:500}.preview-card-stat dt{white-space:nowrap;color:var(--home-faint);font-size:12px}.preview-card-langbar{border-radius:999px;gap:2px;height:6px;display:flex;overflow:hidden}.preview-card-langs{color:var(--home-ink);flex-wrap:wrap;gap:4px 12px;margin:8px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.preview-card-langs li{align-items:center;gap:5px;display:flex}.preview-card-dot{border-radius:50%;width:8px;height:8px}.dia-text[data-settling] *{transition:none!important}@media (hover:hover) and (pointer:fine){.home-link:hover,.home a.home-list-link:hover,.home #case-studies a.home-list-link:hover,.home #case-studies a.home-list-link:hover .home-title-share,.home-writing-row:hover .home-writing-title{color:var(--home-ink);-webkit-text-decoration-color:var(--home-ink);text-decoration-color:var(--home-ink)}}.home-list{gap:var(--home-space-row);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}#case-studies .home-list{gap:var(--home-space-row)}.home a.home-list-link{font-size:var(--home-text-body);font-weight:var(--home-weight-title);letter-spacing:var(--home-track-title);line-height:var(--home-leading-title);color:var(--home-muted);display:inline}.home #case-studies a.home-list-link,.home #case-studies .home-list-locked{color:var(--home-faint)}.home-list-locked{max-width:100%;font-size:var(--home-text-body);font-weight:var(--home-weight-title);letter-spacing:var(--home-track-title);line-height:var(--home-leading-title);color:var(--home-faint);cursor:default;-webkit-user-select:none;user-select:none;align-items:baseline;gap:.4em;display:inline-flex}.home-list-locked-title{text-wrap:pretty;min-width:0}.home-list-lock{width:.85em;height:.85em;color:var(--home-faint);flex-shrink:0;translate:0 .08em}.home-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.home-connect a.home-list-link{font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);line-height:var(--home-leading-role)}.home-writing-list{gap:var(--home-space-row);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}#case-studies .home-list>li,.home-writing-list>li,.home-connect .home-list>li{transition:background-color var(--home-hover-dur) ease;border-radius:.5rem;margin-inline:-.75rem;padding-inline:.75rem}@media (min-width:640px){#case-studies .home-list>li,.home-writing-list>li,.home-connect .home-list>li{padding-block:.5rem}}@media (hover:hover) and (pointer:fine){#case-studies .home-list>li:has(a):hover{background:color-mix(in oklab, var(--home-ink) 5%, transparent)}.home-writing-list>li:has(a):hover{background:color-mix(in oklab, var(--home-ink) 5%, transparent)}.home-connect .home-list>li:has(a):hover{background:color-mix(in oklab, var(--home-ink) 5%, transparent)}}.home-writing-row{color:inherit;justify-content:space-between;align-items:baseline;gap:1rem;text-decoration:none;display:flex}.home-writing-title{min-width:0;font-size:var(--home-text-body);font-weight:var(--home-weight-title);letter-spacing:var(--home-track-title);line-height:var(--home-leading-title);color:var(--home-faint);text-underline-offset:.14em;text-decoration-skip-ink:auto;text-decoration:underline;text-decoration-thickness:from-font;-webkit-text-decoration-color:var(--home-line);text-decoration-color:var(--home-line);transition:color var(--home-hover-dur) ease, text-decoration-color var(--home-hover-dur) ease;text-wrap:pretty}.home-writing-date{font-size:var(--home-text-body);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);line-height:var(--home-leading-role);font-variant-numeric:tabular-nums;color:var(--home-faint);white-space:nowrap;text-align:end;flex-shrink:0;margin-inline-start:auto}.home-footer{z-index:3;margin-top:var(--home-space-section);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0;display:flex;position:relative}.home-local-time{font-size:var(--home-text-meta);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-meta);line-height:var(--home-leading-meta);font-variant-numeric:tabular-nums;color:var(--home-faint);margin:0}.home-theme{-webkit-user-select:none;user-select:none;align-items:center;min-height:1.375rem;display:flex}.home-theme-classic{width:1.5rem;height:1.5rem;color:var(--home-ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;margin:0;padding:0;font-size:1.5rem;line-height:1;transition:scale .15s cubic-bezier(.32,.72,0,1);display:grid;position:relative}.home-theme-classic:before{content:"";position:absolute;inset:-10px}.home-theme-classic:active{scale:.96}.home ::selection{background-color:var(--home-selection)!important;color:currentColor!important}.home ::selection{background-color:var(--home-selection)!important;color:currentColor!important}html[data-boot] .home-anim{opacity:0;animation-name:home-enter;animation-duration:.42s;animation-timing-function:var(--home-ease);animation-fill-mode:forwards;transform:translateY(6px)}.home-anim-1{--home-stagger:0s;animation-delay:0s}.home-anim-2{--home-stagger:60ms;animation-delay:60ms}.home-anim-3{--home-stagger:.12s;animation-delay:.12s}.home-anim-4{--home-stagger:.18s;animation-delay:.18s}.home-anim-5{--home-stagger:.24s;animation-delay:.24s}.home-anim-6{--home-stagger:.3s;animation-delay:.3s}.home-anim-7{--home-stagger:.36s;animation-delay:.36s}.home-anim-8{--home-stagger:.42s;animation-delay:.42s}@keyframes home-enter{to{opacity:1;transform:none}}.home-anim-fade{opacity:0;animation:home-enter-fade .42s var(--home-ease) forwards}@keyframes home-enter-fade{to{opacity:1}}html[data-enter=page],html[data-enter=share]{--home-enter-hold:.32s}html[data-enter=share][data-nav=back]{--home-enter-hold:.44s}html[data-enter] :is(.home-anim:not(:has([data-share-anchor],[style*=title-a-],[style*=title-p-])),.home-anim-fade,.home-anim:has([data-share-anchor],[style*=title-a-],[style*=title-p-])>:not([data-share-anchor],[style*=title-a-],[style*=title-p-],[style*=cover-p-]):not(:has([data-share-anchor],[style*=title-a-],[style*=title-p-],[style*=cover-p-])),.home-anim:has([data-share-anchor],[style*=title-a-],[style*=title-p-]) li:not([data-share-anchor],[style*=title-a-],[style*=title-p-]):not(:has([data-share-anchor],[style*=title-a-],[style*=title-p-])),.home-anim:has([data-share-anchor],[style*=title-a-],[style*=title-p-]) :is(.content-description,.content-date,.content-identity),.home-anim:has([data-share-anchor],[style*=title-a-],[style*=title-p-]) .content-media:not([data-share-anchor]):not([style*=cover-p-]):not(:has([data-share-anchor],[style*=cover-p-])),li:has([data-share-anchor],[style*=title-a-],[style*=title-p-]) .home-writing-date){opacity:0;animation-name:home-enter;animation-duration:.42s;animation-timing-function:var(--home-ease);animation-fill-mode:forwards;animation-delay:calc(var(--home-enter-hold,0s) + var(--home-stagger,0s));transform:translateY(6px)}html[data-enter] .home-anim-fade{animation-name:home-enter-fade;transform:none}@media (prefers-reduced-motion:reduce){.home-anim,html[data-boot] .home-anim,.home-anim-fade,html[data-enter] .home-anim,html[data-enter] .home-anim-fade,html[data-enter] .home-anim>*,html[data-enter] .home-anim li,html[data-enter] .content-description,html[data-enter] .content-date,html[data-enter] .content-media,html[data-enter] .content-identity,html[data-enter] .home-writing-date{opacity:1;animation:none;transform:none}.home,.home-link,.home-list-link,.home-title-share,.home-theme-classic,.home-role-morph,.home-role-fill,.home-role-glyphs,.home-role-glyph,.home-blobatar{transition:none}.home-blobatar-face,.home-blobatar-face[data-phase=in],.home-blobatar-face[data-phase=out],.home-blobatar-face[data-phase=pre]{animation:none}.home-blobatar-face-fx,.home-blobatar-face[data-phase=in] .home-blobatar-face-fx,.home-blobatar-face[data-phase=out] .home-blobatar-face-fx,.home-blobatar-face[data-phase=pre] .home-blobatar-face-fx{filter:none;opacity:1;transition:none;animation:none;transform:none}.home-blobatar-face[data-phase=out],.home-blobatar-face[data-phase=pre]{display:none}.home-theme-classic:active{scale:none}.home-role-word,.home-role-fill,.home-role-glyph-bob{animation:none}.home-role-word[data-phase=out]{display:none}.home-role-glyph{opacity:1;transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--rot)) scale(1)}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}::view-transition-image-pair(*){animation:none!important}}::view-transition-old(.soft-exit){animation:.18s ease-in both soft-fade-out,.18s ease-in both soft-nudge-out}::view-transition-new(.soft-enter){animation:.32s var(--home-ease,cubic-bezier(.22, 1, .36, 1)) both soft-fade-in, .32s var(--home-ease,cubic-bezier(.22, 1, .36, 1)) both soft-nudge-in}@keyframes soft-fade-out{to{opacity:0}}@keyframes soft-fade-in{0%{opacity:0}}@keyframes soft-nudge-out{to{transform:translateY(-6px)}}@keyframes soft-nudge-in{0%{transform:translateY(6px)}}::view-transition-group(.title-morph){z-index:2;animation-duration:.32s;animation-timing-function:cubic-bezier(.77,0,.175,1)}::view-transition-image-pair(.title-morph){mix-blend-mode:normal;animation-name:title-morph-blur;animation-duration:.32s;animation-timing-function:cubic-bezier(.77,0,.175,1);animation-fill-mode:both}::view-transition-old(.title-morph){mix-blend-mode:normal;height:100%;animation:.22s cubic-bezier(.32,.72,0,1) both title-morph-out}::view-transition-new(.title-morph){height:100%;animation:.32s cubic-bezier(.32,.72,0,1) both title-morph-in}@keyframes title-morph-blur{50%{filter:blur(2px)}}@keyframes title-morph-out{to{opacity:0}}@keyframes title-morph-in{0%{opacity:0}}.home-title-share{text-wrap:pretty;text-underline-offset:.14em;text-decoration-skip-ink:auto;max-width:100%;text-decoration:underline;text-decoration-thickness:from-font;-webkit-text-decoration-color:var(--home-line);text-decoration-color:var(--home-line);transition:color var(--home-hover-dur) ease, text-decoration-color var(--home-hover-dur) ease;display:inline-block}html:active-view-transition-type(title-share)::view-transition{background-color:#f9fafb;background-color:lab(98.2567% -.178039 -.732732)}html[data-theme=dark]:active-view-transition-type(title-share)::view-transition{background-color:#0f1215;background-color:lab(5.25385% -.457928 -2.35408)}html.dark:active-view-transition-type(title-share)::view-transition{background-color:#0f1215;background-color:lab(5.25385% -.457928 -2.35408)}html:active-view-transition-type(title-share)::view-transition-old(root){opacity:0;animation:none}html:active-view-transition-type(title-share)::view-transition-new(root){opacity:0;animation:none}html:active-view-transition-type(nav-forward):active-view-transition-type(title-share)::view-transition-old(.soft-exit){animation:.16s cubic-bezier(.4,0,1,1) both soft-fade-out}html:active-view-transition-type(nav-forward):active-view-transition-type(title-share)::view-transition-new(.soft-enter){opacity:0;animation:none}html:active-view-transition-type(nav-back):active-view-transition-type(title-share)::view-transition-old(.soft-exit){animation:.12s cubic-bezier(.4,0,1,1) both soft-fade-out}html:active-view-transition-type(nav-back):active-view-transition-type(title-share)::view-transition-new(.soft-enter){opacity:0;animation:none}html:active-view-transition-type(nav-back):active-view-transition-type(title-share)::view-transition-group(.title-morph){animation-duration:.26s;animation-delay:.12s}html:active-view-transition-type(nav-back):active-view-transition-type(title-share)::view-transition-image-pair(.title-morph){animation-duration:.26s;animation-delay:.12s}html:active-view-transition-type(nav-back):active-view-transition-type(title-share)::view-transition-old(.title-morph){animation-delay:.12s}html:active-view-transition-type(nav-back):active-view-transition-type(title-share)::view-transition-new(.title-morph){animation-delay:.12s}::view-transition-group(.cover-morph){z-index:1;animation-duration:.32s;animation-timing-function:cubic-bezier(.77,0,.175,1)}::view-transition-image-pair(.cover-morph){mix-blend-mode:normal;animation-name:title-morph-blur;animation-duration:.32s;animation-timing-function:cubic-bezier(.77,0,.175,1);animation-fill-mode:both}::view-transition-old(.cover-morph){mix-blend-mode:normal;height:100%;animation:.22s cubic-bezier(.32,.72,0,1) both title-morph-out}::view-transition-new(.cover-morph){height:100%;animation:.32s cubic-bezier(.32,.72,0,1) both title-morph-in}@media (pointer:coarse){::view-transition-image-pair(.title-morph){animation-name:none}::view-transition-image-pair(.cover-morph){animation-name:none}}.home-intro,.home-intro-stack,.home-intro-copy{overflow:visible}.home-role-prefix{color:var(--home-muted)}.home-role-control{color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;align-items:baseline;margin:0;padding:0;display:inline-flex;position:relative}.home-role-control:before{content:"";position:absolute;inset:-11px -6px}.home-role-morph{vertical-align:baseline;transition:scale .15s cubic-bezier(.32,.72,0,1);display:inline-grid;position:relative}.home-role-control:active .home-role-morph{scale:.98}.home-role-word{white-space:nowrap;grid-area:1/1;display:inline-block}.home-role-word[data-role=designer]{--role-c1:var(--role-designer-1);--role-c2:var(--role-designer-2);--role-c3:var(--role-designer-3)}.home-role-word[data-role=builder]{--role-c1:var(--role-builder-1);--role-c2:var(--role-builder-2);--role-c3:var(--role-builder-3)}.home-role-word[data-role=lifter]{--role-c1:var(--role-lifter-1);--role-c2:var(--role-lifter-2);--role-c3:var(--role-lifter-3)}.home-role-word[data-role=runner]{--role-c1:var(--role-runner-1);--role-c2:var(--role-runner-2);--role-c3:var(--role-runner-3)}.home-role-word[data-role=father]{--role-c1:var(--role-father-1);--role-c2:var(--role-father-2);--role-c3:var(--role-father-3)}.home-role-word[data-phase=in]{animation:.22s cubic-bezier(.32,.72,0,1) both home-role-in}.home-role-word[data-phase=out]{pointer-events:none;animation:.16s cubic-bezier(.4,0,1,1) forwards home-role-out;position:absolute;top:0;left:0}@keyframes home-role-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes home-role-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.home-role-fill{background-image:linear-gradient(105deg, var(--role-c1) 0%, var(--role-c2) 38%, var(--role-c3) 72%, var(--role-c2) 100%);background-size:240% 100%;background-position:var(--role-gx,8%) 50%;color:var(--role-c1);background-repeat:no-repeat;font-weight:600;animation:2.8s cubic-bezier(.45,0,.55,1) infinite alternate home-role-gradient}@supports ((-webkit-background-clip:text) or (background-clip:text)){.home-role-fill{color:#0000;-webkit-background-clip:text;background-clip:text}}@keyframes home-role-gradient{0%{background-position:0%}to{background-position:100%}}.home-role-glyph-art{width:100%;height:100%;display:block}.home-role-glyphs{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:visible}.home-role-glyphs[data-ready=false]{opacity:0}.home-role-glyph{opacity:0;width:22px;height:22px;transition-property:transform,opacity;transition-duration:var(--glyph-dur,.26s);transition-timing-function:cubic-bezier(.32,.72,0,1);transition-delay:var(--delay,0s);margin:-11px 0 0 -11px;position:absolute;transform:translate(0,0)scale(.86)}.home-role-glyph[data-phase=in]{opacity:1;transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--rot)) scale(1)}.home-role-glyph[data-phase=exit]{opacity:0;transform:translate3d(var(--dx), calc(var(--dy) - 8px), 0) rotate(var(--rot)) scale(.96);transition-duration:.16s;transition-delay:0s;transition-timing-function:cubic-bezier(.4,0,1,1)}.home-role-glyph-bob{width:100%;height:100%;animation:3.2s ease-in-out infinite home-glyph-bob;display:block}.home-role-glyph:nth-child(2) .home-role-glyph-bob{animation-duration:3.55s;animation-delay:-.7s}.home-role-glyph:nth-child(3) .home-role-glyph-bob{animation-duration:2.85s;animation-delay:-1.2s}.home-role-glyph-art{object-fit:contain;pointer-events:none;filter:var(--home-glyph-shadow)}@keyframes home-glyph-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.home-role-control[data-paused=true] .home-role-fill,.home-role-control[data-paused=true] .home-role-glyph-bob{animation-play-state:paused}@media (hover:hover) and (pointer:fine) and (min-width:769px){.home-role-fill{background-position:var(--role-gx,8%) 50%;transition:background-position .18s cubic-bezier(.22,1,.36,1);animation:none}.home-role-control:hover .home-role-fill,.home-role-control:focus-visible .home-role-fill{background-position:var(--role-gx,78%) 50%}.home-role-glyphs{opacity:0;transition:opacity .32s cubic-bezier(.4,0,1,1)}.home-role-control[data-intro=play] .home-role-glyphs,.home-role-control:focus-visible .home-role-glyphs{opacity:1;transition-duration:.15s;transition-timing-function:cubic-bezier(.32,.72,0,1)}.home-role-control[data-glyphs=open] .home-role-glyphs{opacity:1;transition:none}.home-role-control[data-pointer=out]:not([data-glyphs=open]):not([data-intro=play]) .home-role-glyphs{opacity:0;transition-duration:.32s;transition-timing-function:cubic-bezier(.4,0,1,1)}}.home .home-role-fill::selection{color:var(--home-ink)!important;background-color:var(--home-selection)!important}@media (prefers-reduced-motion:reduce){.home-role-word,.home-role-fill,.home-role-glyph-bob{animation:none}.home-role-word[data-phase=out]{display:none}.home-role-morph,.home-role-fill,.home-role-glyphs,.home-role-glyph,.home-blobatar{transition:none}.home-blobatar-face,.home-blobatar-face[data-phase=in],.home-blobatar-face[data-phase=out],.home-blobatar-face[data-phase=pre]{animation:none}.home-blobatar-face-fx,.home-blobatar-face[data-phase=in] .home-blobatar-face-fx,.home-blobatar-face[data-phase=out] .home-blobatar-face-fx,.home-blobatar-face[data-phase=pre] .home-blobatar-face-fx{filter:none;opacity:1;transition:none;animation:none;transform:none}.home-blobatar-face[data-phase=out],.home-blobatar-face[data-phase=pre]{display:none}.home-role-hint,.home-role-hint[data-phase=in],.home-role-hint[data-phase=out]{opacity:1;transition:none;animation:none;transform:none}.home-role-hint[data-phase=out]{opacity:0}.home-role-glyph,.home-role-glyph[data-phase=in],.home-role-glyph[data-phase=pre]{opacity:1;transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--rot)) scale(1)}.home-role-glyph[data-phase=exit]{opacity:0}.home-case-preview{display:none}}@media (min-width:1024px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.home-case-preview{z-index:4;aspect-ratio:3/2;pointer-events:none;display:block;position:absolute}}.home-case-preview:before{content:"";pointer-events:none;opacity:0;border-radius:1.25rem;transition:opacity .22s cubic-bezier(.4,0,1,1);position:absolute;inset:0;box-shadow:0 2px 6px #00000012,0 12px 28px #0000001a,0 28px 56px #00000029;box-shadow:0 2px 6px lab(0% 0 0/.07),0 12px 28px lab(0% 0 0/.1),0 28px 56px lab(0% 0 0/.16)}.home-case-preview[data-open=true]:before{opacity:1;transition-duration:.32s;transition-timing-function:cubic-bezier(.32,.72,0,1)}html.dark .home-case-preview:before,html[data-theme=dark] .home-case-preview:before{box-shadow:0 2px 8px #000000a6,0 16px 36px #000000b8,0 36px 72px #0009;box-shadow:0 2px 8px lab(0% 0 0/.65),0 16px 36px lab(0% 0 0/.72),0 36px 72px lab(0% 0 0/.6)}.home-case-preview-frame{background:0 0;border-radius:1.25rem;position:absolute;inset:0;overflow:hidden}.home-case-preview-img{z-index:0;object-fit:contain;object-position:center;opacity:0;filter:blur(12px);pointer-events:none;will-change:opacity, filter;width:100%;height:100%;transition-property:opacity,filter;transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,1,1);position:absolute;inset:0}.home-case-preview-img[data-active=true]{z-index:1;opacity:1;filter:blur();transition-duration:.32s;transition-timing-function:cubic-bezier(.32,.72,0,1)}.home-case-preview[data-swap=true] .home-case-preview-img[data-active=false]{z-index:2}.home-case-preview[data-swap=true] .home-case-preview-img[data-active=true]{transition-delay:.22s}@media (max-width:1023px),(hover:none),(pointer:coarse){.home-case-preview{display:none}}.home-playground-preview{display:none}@media (min-width:1024px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.home-playground-preview{z-index:4;aspect-ratio:3/2;pointer-events:none;visibility:hidden;background:#141414;border-radius:1.25rem;width:436px;display:block;position:absolute}.home-playground-preview[data-placed=true]{visibility:visible}}.home-playground-preview:before{content:"";z-index:2;pointer-events:none;border-radius:1.25rem;position:absolute;inset:0;box-shadow:0 2px 6px #00000012,0 12px 28px #0000001a,0 28px 56px #00000029;box-shadow:0 2px 6px lab(0% 0 0/.07),0 12px 28px lab(0% 0 0/.1),0 28px 56px lab(0% 0 0/.16)}html.dark .home-playground-preview:before,html[data-theme=dark] .home-playground-preview:before{box-shadow:0 2px 8px #000000a6,0 16px 36px #000000b8,0 36px 72px #0009;box-shadow:0 2px 8px lab(0% 0 0/.65),0 16px 36px lab(0% 0 0/.72),0 36px 72px lab(0% 0 0/.6)}.home-playground-preview-frame{background:#141414;border-radius:1.25rem;padding:22px 22px 0;position:absolute;inset:0;overflow:hidden}.home-playground-preview-frame .receipt-printer{width:100%;max-width:none;margin:0}.home-playground-preview-frame-plate{place-items:center;padding:28px 22px;display:grid}.pg-plate-preview{width:min(100%,360px)}.home-app-card{color:var(--home-ink);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--home-ink) 8%, transparent);background-image:linear-gradient(90.888deg,#fffc 59.598%,#fff0 84.332%),url(/images/momong/meadow.png);background-image:linear-gradient(90.888deg,lab(100% 0 0/.8) 59.598%,lab(100% 0 0/0) 84.332%),url(/images/momong/meadow.png);background-position:50%,57.4% calc(50% + 28.417px);background-repeat:no-repeat;background-size:100% 100%,148.16%;border-radius:12px;align-items:center;gap:8px;padding:12px 16px;display:flex}.home-app-icon{border-radius:12px;flex-shrink:0;box-shadow:0 2px 8px #0000001f;box-shadow:0 2px 8px lab(0% 0 0/.12)}.home-app-copy{flex:1;min-width:0}.home-app-copy h3{letter-spacing:-.15px;margin:0;font-size:15px;font-weight:500;line-height:1.5}.home-app-copy p{color:var(--home-muted);margin:2px 0 0;font-size:13px;line-height:1.65}.home a.home-app-join{color:var(--home-ink);background:0 0;border-radius:999px;flex-shrink:0;padding:0;font-size:15px;font-weight:500;line-height:1.5;transition:transform .15s ease-out;display:inline-flex}.home-app-join-surface{place-items:center;min-width:64px;min-height:44px;padding:0 14px;display:grid}.home-app-join-surface>span:not(.liquid-glass-veil){z-index:2;position:relative}html.dark .home-app-card,html[data-theme=dark] .home-app-card{color:var(--home-ink);background-image:linear-gradient(90.937deg,#0e1114e6 59.591%,#0e1114b3 84.319%),url(/images/momong/meadow.png);background-image:linear-gradient(90.937deg,lab(4.91946% -.630952 -2.17289/.9) 59.591%,lab(4.91946% -.630952 -2.17289/.7) 84.319%),url(/images/momong/meadow.png)}.home-app-join:active{transform:scale(.96)}@media (hover:hover) and (pointer:fine){.home-app-join:hover{transform:translateY(-1px)}}@media (prefers-reduced-motion:reduce){.home a.home-app-join{transition:none}.home-app-join:hover,.home-app-join:active{transform:none}}@media (max-width:380px){.home-app-card{padding:12px}}@media (pointer:coarse){.home a.home-list-link,.home-writing-row{align-items:center;min-height:44px;display:flex}.home #case-studies a.home-list-link,.home-writing-row{min-height:32px}}
.content-page{--content-measure:36rem;--content-aside-width:11rem;--content-aside-gap:4.5rem;--content-surface:color-mix(in oklab, var(--home-ink) 4%, var(--home-bg));--content-code-bg:color-mix(in oklab, var(--home-ink) 5.5%, var(--home-bg));--content-top-fade-height:4.5rem;--content-space-top:3rem;--content-space-section:4rem;--content-space-title:1rem;--content-space-side:1.5rem;--content-space-row:1rem;--ease-out:var(--home-ease);background:var(--home-bg);min-height:100vh;color:var(--home-ink);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;position:relative}.content-page--project{--content-measure:44rem}@media (min-width:640px){.content-page{--content-space-top:6rem;--content-space-section:5rem;--content-space-row:.5rem}}.content-top-fade{height:var(--content-top-fade-height);z-index:3;pointer-events:none;background:linear-gradient(to bottom, var(--home-bg) 0%, color-mix(in oklab, var(--home-bg) 72%, transparent) 42%, color-mix(in oklab, var(--home-bg) 28%, transparent) 72%, transparent 100%);position:fixed;inset:0 0 auto}.content-top-fade:before{content:"";-webkit-backdrop-filter:blur(8px);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000008c 45%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000008c 45%,#0000 100%)}.content-layout{width:100%;max-width:var(--content-measure);padding:var(--content-space-top) var(--content-space-side) 0;flex:1;margin-inline:auto;position:relative}.content-aside{width:var(--content-aside-width);z-index:4;pointer-events:none;box-sizing:border-box;flex-direction:column;align-items:flex-start;gap:2.5rem;padding:6rem 0 1.5rem;display:none;position:fixed;inset:0 auto 0 5rem}@media (min-width:1100px){.content-aside{left:max(1.5rem, calc(50% - (var(--content-measure) / 2) - var(--content-aside-gap) - var(--content-aside-width)));display:flex}}.content-back{pointer-events:auto;color:var(--home-faint);font-size:var(--home-text-meta);font-weight:var(--home-weight-body);line-height:var(--home-leading-meta);letter-spacing:var(--home-track-meta);transition:color var(--home-hover-dur) var(--ease-out);flex-shrink:0;align-items:center;gap:.35rem;width:fit-content;text-decoration:none;display:inline-flex;position:relative;top:auto;left:auto}.content-back:before{content:"";position:absolute;inset:-10px -8px}.content-back-arrow{width:.75rem;height:.75rem;transition:transform var(--home-hover-dur) var(--ease-out);flex-shrink:0;display:block}@media (hover:hover) and (pointer:fine){.content-back:hover{color:var(--home-ink)}.content-back:hover .content-back-arrow{transform:translate(-2px)}}.content-toc{pointer-events:auto;overscroll-behavior:contain;width:100%;min-height:0;position:relative;top:auto;left:auto;right:auto;overflow-y:auto}.content-toc-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}a.content-toc-link{color:var(--home-faint);font-size:.75rem;font-weight:var(--home-weight-body);letter-spacing:var(--home-track-meta);transition:color var(--home-hover-dur) var(--ease-out);padding-block:.2rem;line-height:1.4;text-decoration:none;display:block}.content-toc-label{text-wrap:pretty;display:block}@media (hover:hover) and (pointer:fine){a.content-toc-link:hover{color:var(--home-ink)}}a.content-toc-link.is-active{color:var(--home-ink)}.content-main{gap:var(--content-space-section);flex-direction:column;min-width:0;display:flex;container:article/inline-size}.content-body .cp{width:100cqi;max-width:none}.content-lead{flex-direction:column;gap:1rem;display:flex}.content-header{flex-direction:column;gap:.65rem;display:flex}.content-title{width:fit-content;max-width:100%;letter-spacing:var(--home-track-title);font-family:inherit;font-size:1.125rem;font-weight:500;line-height:var(--home-leading-title);color:var(--home-ink);text-wrap:balance;margin:0}.content-date{font-size:var(--home-text-meta);font-weight:var(--home-weight-body);line-height:var(--home-leading-meta);letter-spacing:var(--home-track-meta);color:var(--home-faint);font-variant-numeric:tabular-nums;margin:0}.content-description{font-size:var(--home-text-body);font-weight:var(--home-weight-body);line-height:var(--home-leading-body);letter-spacing:var(--home-track-body);color:var(--home-muted);text-wrap:pretty;max-width:65ch;margin:.35rem 0 0}.content-tags{flex-wrap:wrap;gap:.5rem;display:flex}.content-tag{font-size:var(--home-text-meta);font-weight:var(--home-weight-body);line-height:var(--home-leading-meta);letter-spacing:var(--home-track-meta);color:var(--home-faint)}.content-cover{margin-top:1rem}.content-header--project{gap:1.5rem}.content-hero{border-radius:16px;width:100%;margin:0}.content-hero-media{width:100%;height:auto;display:block}.content-intro{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1.15rem 2rem;display:grid}.content-intro:has(.content-identity-timeline){grid-template-columns:auto auto minmax(0,1fr)}.content-identity{flex-direction:column;min-width:0;display:flex}.content-identity-row{align-items:center;gap:.75rem;display:flex}.content-identity-logo{object-fit:cover;background:color-mix(in oklab, var(--home-ink) 6%, var(--home-bg));border-radius:8px;flex-shrink:0;width:2.5rem;height:2.5rem;display:block}.content-identity-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.content-identity-name{font-size:var(--home-text-body);letter-spacing:var(--home-track-title);color:var(--home-ink);margin:0;font-weight:600;line-height:1.3}.content-identity-role{font-size:var(--home-text-body);font-weight:var(--home-weight-body);color:var(--home-muted);margin:0;line-height:1.3}.content-identity-timeline{font-size:var(--home-text-body);font-weight:var(--home-weight-body);color:var(--home-muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;line-height:1.3}.content-intro-copy{flex-direction:column;gap:.35rem;min-width:0;display:flex}.content-header--project .content-title{font-size:var(--home-text-body);font-weight:var(--home-weight-title);line-height:var(--home-leading-title);color:var(--home-ink)}.content-header--project .content-description{font-size:var(--home-text-body);font-weight:var(--home-weight-body);line-height:var(--home-leading-body);color:var(--home-muted);margin:0}@media (max-width:720px){:is(.content-intro,.content-intro:has(.content-identity-timeline)){grid-template-columns:1fr;row-gap:1.15rem}}.content-body{font-size:var(--home-text-body);font-weight:var(--home-weight-body);line-height:var(--home-leading-body);letter-spacing:var(--home-track-body);color:color-mix(in oklab, var(--home-ink) 82%, var(--home-muted));flex-direction:column;gap:0;max-width:65ch;display:flex}.content-h2{margin:var(--content-space-section,4rem) 0 var(--content-space-title,1rem);border-top:1px solid var(--home-line);font-family:inherit;font-size:var(--home-text-body);letter-spacing:var(--home-track-title);font-weight:600;line-height:var(--home-leading-title);color:var(--home-ink);scroll-margin-top:var(--content-space-top,6rem);text-wrap:balance;padding-top:1.25rem;display:block}.content-h2:first-child{border-top:0;margin-top:0;padding-top:0}.content-h3,.content-h4{letter-spacing:var(--home-track-title);color:var(--home-ink);scroll-margin-top:var(--content-space-top,6rem);text-wrap:balance;margin:1.5rem 0 .55rem;font-family:inherit;font-weight:600}.content-h3{font-size:var(--home-text-body);line-height:var(--home-leading-title)}.content-h4{font-size:var(--home-text-meta);line-height:var(--home-leading-meta)}.content-p{text-wrap:pretty;margin:0 0 1.65em}.content-ul,.content-ol{margin:0 0 1.65em;padding-left:1.25rem;list-style-position:outside}.content-ul{list-style-type:disc}.content-ol{list-style-type:decimal}.content-ul .content-ul{margin:.4rem 0 0;list-style-type:circle}.content-ol .content-ol{margin:.4rem 0 0;list-style-type:lower-alpha}.content-li+.content-li{margin-top:.4rem}.content-body>.content-ul>.content-li+.content-li,.content-body>.content-ol>.content-li+.content-li{margin-top:var(--content-space-row)}@media (min-width:640px){.content-body>.content-ul>.content-li,.content-body>.content-ol>.content-li{padding-block:.5rem}}.content-li{padding-left:.1rem}.content-strong{color:var(--home-ink);font-weight:600}.content-a{color:var(--home-ink);text-decoration:underline;-webkit-text-decoration-color:var(--home-line);text-decoration-color:var(--home-line);text-underline-offset:.18em;transition:text-decoration-color var(--home-hover-dur) var(--ease-out)}@media (hover:hover) and (pointer:fine){.content-a:hover{-webkit-text-decoration-color:var(--home-ink);text-decoration-color:var(--home-ink)}}.content-quote{border-left:1.5px solid var(--home-line);color:var(--home-ink);margin:1.65em 0;padding:.15rem 0 .15rem .9rem}.content-quote p{margin:0}.content-pre{background:var(--content-code-bg);color:var(--home-ink);border-radius:8px;margin:1.65em 0;padding:0;overflow-x:auto}.content-pre::-webkit-scrollbar{width:8px;height:8px}.content-pre::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--home-ink) 20%, transparent);border-radius:4px}.content-pre .content-code{font-family:var(--font-mono), ui-monospace, monospace;background:0 0;border-radius:0;padding:14px 16px;font-size:.8125rem;line-height:1.55;display:block}.content-code{font-family:var(--font-mono), ui-monospace, monospace;font-size:.875em}:not(pre)>.content-code{background:var(--content-code-bg);color:color-mix(in oklab, var(--home-ink) 78%, transparent);border-radius:4px;padding:.1em .28em}.content-hr{border:0;border-top:1px solid var(--home-line);margin:1.75rem 0}.content-media{background:var(--content-surface);border-radius:8px;width:100%;max-width:none;margin:1.35rem 0;display:block;overflow:hidden}.content-media.content-hero{border-radius:16px;margin:0}.content-img{width:100%;height:auto;display:block}.content-design-frame{background:color-mix(in oklab, var(--home-ink) 6%, var(--home-bg));width:100%;max-width:none;transition:background-color var(--home-hover-dur) ease;border-radius:1.25rem;flex-direction:column;gap:.75rem;margin:1.35rem 0;padding:1rem 1rem 1.25rem;display:flex}.content-design-frame--contrast{background:color-mix(in oklab, var(--home-ink) 10%, var(--home-bg))}.content-design-frame-label{font-size:var(--home-text-meta);font-weight:var(--home-weight-title);letter-spacing:.06em;line-height:var(--home-leading-meta);text-transform:uppercase;color:var(--home-faint);padding:0 .15rem;display:block}.content-design-frame-stage{justify-content:center;align-items:center;min-height:0;display:flex}.content-design-frame-img{width:100%;height:auto;box-shadow:0 1px 2px color-mix(in oklab, var(--home-ink) 6%, transparent), 0 12px 32px color-mix(in oklab, var(--home-ink) 10%, transparent);border-radius:.75rem;display:block}.content-design-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%;max-width:none;margin:1.35rem 0;display:grid}.content-design-compare .content-design-frame{height:100%;margin:0}@media (max-width:560px){.content-design-compare{grid-template-columns:1fr}.content-design-frame{border-radius:1rem;padding:.75rem .75rem 1rem}}.content-callout{background:var(--content-surface);color:var(--home-ink);border-radius:8px;margin:1.65em 0;padding:.9rem 1rem}.content-resource-link{border:1px solid var(--home-line);background:var(--content-surface);color:var(--home-ink);transition:border-color var(--home-hover-dur) var(--ease-out), background-color var(--home-hover-dur) var(--ease-out);border-radius:8px;align-items:center;gap:.75rem;margin:1.65em 0;padding:.75rem .9rem;text-decoration:none;display:flex}.content-resource-link-mark{color:var(--home-muted);flex-shrink:0;align-items:center;display:inline-flex}.content-resource-link-mark svg{display:block}.content-resource-link-label{min-width:0;font-size:var(--home-text-body);font-weight:var(--home-weight-body);line-height:var(--home-leading-body);letter-spacing:var(--home-track-body);text-wrap:pretty;flex:1}.content-resource-link-arrow{color:var(--home-faint);transition:color var(--home-hover-dur) var(--ease-out);flex-shrink:0;font-size:.95em;line-height:1}@media (hover:hover) and (pointer:fine){.content-resource-link:hover{border-color:color-mix(in oklab, var(--home-ink) 28%, transparent);background:color-mix(in oklab, var(--home-ink) 6%, var(--home-bg))}.content-resource-link:hover .content-resource-link-arrow{color:var(--home-ink)}}.content-resource-link:focus-visible{outline:2px solid var(--home-focus,var(--home-ink));outline-offset:2px}.content-store-buttons{flex-wrap:wrap;align-items:flex-start;gap:.5rem;width:100%;margin:1.25em 0;display:flex}.content-store-buttons>.content-store-button{margin:0}a[href].content-store-button{isolation:isolate;box-sizing:border-box;background:var(--home-ink);color:var(--home-bg);border:1px solid color-mix(in oklab, var(--home-bg) 22%, transparent);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--home-bg) 14%, transparent);filter:none;touch-action:manipulation;will-change:translate, scale;transition:scale .15s var(--home-ease), translate .2s var(--home-ease);text-decoration:none;position:relative}a.content-store-button:before{content:"";position:absolute;inset:0 0 -3px}a.content-store-button:after{content:"";z-index:-1;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .2s var(--home-ease);position:absolute;inset:-1px;box-shadow:0 6px 16px -8px #00000059,0 2px 6px -2px #0000002e;box-shadow:0 6px 16px -8px lab(0% 0 0/.35),0 2px 6px -2px lab(0% 0 0/.18)}@media (hover:hover) and (pointer:fine){a.content-store-button:hover{translate:0 -2px}a.content-store-button:hover:after{opacity:1}}a.content-store-button:active{transition:scale .1s var(--home-ease), translate .1s var(--home-ease);translate:0;scale:.96}a.content-store-button:active:after{opacity:0;transition-duration:.1s}a.content-store-button:focus-visible{outline:2px solid var(--home-focus,var(--home-ink));outline-offset:2px}.content-acknowledgements{border-top:1px solid var(--home-line);margin:2.5rem 0 0;padding-top:1.5rem}.content-acknowledgements-title{font-family:inherit;font-size:var(--home-text-meta);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-meta);line-height:var(--home-leading-meta);color:var(--home-faint);margin:0 0 .65rem}.content-acknowledgements-body{font-size:var(--home-text-meta);font-weight:var(--home-weight-body);line-height:var(--home-leading-meta);letter-spacing:var(--home-track-meta);color:var(--home-muted);max-width:65ch}.content-acknowledgements-body>:first-child{margin-top:0}.content-acknowledgements-body>:last-child{margin-bottom:0}.content-acknowledgements-body,.content-acknowledgements-body p,.content-acknowledgements-body .content-p{font-size:var(--home-text-meta);line-height:var(--home-leading-meta);letter-spacing:var(--home-track-meta);color:var(--home-muted)}.content-acknowledgements-body p,.content-acknowledgements-body .content-p{margin:0 0 .65em}.content-acknowledgements-body a{color:var(--home-muted);text-decoration:underline;-webkit-text-decoration-color:var(--home-line);text-decoration-color:var(--home-line);text-underline-offset:.18em;transition:text-decoration-color var(--home-hover-dur) var(--ease-out)}@media (hover:hover) and (pointer:fine){.content-acknowledgements-body a:hover{-webkit-text-decoration-color:var(--home-ink);text-decoration-color:var(--home-ink);color:var(--home-ink)}}.content-label{font-size:var(--home-text-meta);letter-spacing:.06em;text-transform:uppercase;color:var(--home-faint);font-weight:var(--home-weight-title);margin-bottom:.35rem;display:inline-block}.content-metric-grid{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:1.75rem 1.5rem;width:100%;max-width:none;margin:1.65em 0;display:grid}.content-metric{min-width:0;color:var(--home-ink);flex-direction:column;gap:.5rem;display:flex}.content-metric-value{letter-spacing:-.03em;color:inherit;font-variant-numeric:tabular-nums;text-wrap:balance;font-size:1.75rem;font-weight:600;line-height:1.05}.content-metric-label{font-size:var(--home-text-meta);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);line-height:var(--home-leading-meta);text-transform:none;color:var(--home-muted);text-wrap:pretty}@media (max-width:768px){.content-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}}.content-chrome{max-width:none;margin:1.35rem 0}.content-next{border-top:1px solid var(--home-line);flex-direction:column;gap:.55rem;margin-top:.75rem;padding-top:1.35rem;display:flex}.content-next-label{font-size:var(--home-text-meta);letter-spacing:var(--home-track-meta);color:var(--home-faint);font-weight:var(--home-weight-body);line-height:var(--home-leading-meta)}.content-next-link{color:inherit;transition:color var(--home-hover-dur) var(--ease-out);justify-content:space-between;align-items:flex-start;gap:1rem;text-decoration:none;display:flex}.content-next-title{font-size:var(--home-text-name);font-weight:var(--home-weight-title);letter-spacing:var(--home-track-title);line-height:var(--home-leading-title);color:var(--home-ink);text-underline-offset:.15em;transition:text-decoration-color var(--home-hover-dur) var(--ease-out);margin:0 0 .3rem;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}@media (hover:hover) and (pointer:fine){.content-next-link:hover .content-next-title{-webkit-text-decoration-color:var(--home-line);text-decoration-color:var(--home-line)}}.content-next-desc{font-size:var(--home-text-meta);line-height:var(--home-leading-meta);color:var(--home-muted);margin:0}.content-next-meta{font-size:var(--home-text-meta);color:var(--home-faint);font-variant-numeric:tabular-nums;margin-top:.35rem}.content-site-footer{margin-top:var(--content-space-section,4rem);width:100%;max-width:var(--content-measure);justify-content:space-between;align-items:center;gap:1rem;margin-inline:auto;padding:1.5rem;display:flex}.content-footer-meta{font-size:var(--home-text-meta);line-height:var(--home-leading-meta);color:var(--home-faint);font-variant-numeric:tabular-nums}@media (max-width:1099px){.content-page{--content-top-fade-height:calc(env(safe-area-inset-top,0px) + 2.5rem)}.content-title,.content-h2,.content-h3,.content-h4{scroll-margin-top:var(--content-space-top)}.content-aside{display:none}.content-site-footer{flex-wrap:wrap}.content-top-fade:before{content:none}}.mobile-toc{--toc-morph-open-dur:.25s;--toc-morph-close-dur:.2s;--toc-morph-ease:cubic-bezier(.32, .72, 0, 1);--toc-morph-close-ease:cubic-bezier(.32, .72, 0, 1);--toc-fade-ease:cubic-bezier(.32, .72, 0, 1);--toc-morph-fade-dur:.16s;--toc-morph-slide:8px;--toc-morph-scale:.98;--toc-h-closed:3.25rem;--toc-h-open:14rem;--toc-track:calc(var(--toc-h-closed) + .5rem);--toc-gap:.75rem;--toc-chrome:0px;--toc-ease:cubic-bezier(.2, 0, 0, 1);left:1rem;right:1rem;bottom:max(calc(var(--toc-chrome) + var(--toc-gap)), calc(env(safe-area-inset-bottom,0px) + var(--toc-gap)));z-index:6;pointer-events:none;max-width:22.5rem;transition:transform .22s var(--toc-ease), bottom .18s var(--toc-ease);margin-inline:auto;display:none;position:fixed;overflow:visible}.mobile-toc-lift{width:auto;min-width:0;margin-left:var(--toc-track);pointer-events:none;position:relative}.mobile-toc[data-expanded=true] .mobile-toc-lift{margin-left:0}.mobile-toc-bar{width:100%;min-width:0;position:relative}.mobile-toc-back{z-index:2;width:var(--toc-h-closed);height:var(--toc-h-closed);min-width:0;color:var(--home-ink);pointer-events:auto;transition:transform var(--toc-morph-close-dur) var(--toc-morph-close-ease), scale .15s cubic-bezier(.32, .72, 0, 1);border-radius:999px;text-decoration:none;display:block;position:absolute;bottom:0;left:0;transform:none}.mobile-toc[data-open=true] .mobile-toc-back{pointer-events:none;transition:transform var(--toc-morph-open-dur) var(--toc-morph-ease), scale .15s cubic-bezier(.32, .72, 0, 1);transform:translate(calc(-100% - 1rem))}.mobile-toc-back:active{scale:.96}.mobile-toc-back:focus-visible{outline:2px solid var(--home-focus);outline-offset:3px;border-radius:999px}.mobile-toc-back-surface{box-sizing:border-box;pointer-events:none;isolation:isolate;border-radius:inherit;color:var(--home-ink);background:0 0;place-items:center;position:absolute;inset:0;overflow:hidden;width:100%!important;height:100%!important;display:grid!important}.mobile-toc-back-icon{z-index:2;place-items:center;display:grid;position:relative}.mobile-toc-back .content-back-arrow{width:1.05rem;height:1.05rem}.mobile-toc[data-end=true]{pointer-events:none;transform:translateY(calc(100% + 1.25rem))}.mobile-toc[data-end=true] .mobile-toc-surface{pointer-events:none}@media (max-width:1099px){.mobile-toc{display:block}}.mobile-toc-morph{width:100%;height:var(--toc-h-closed);pointer-events:none;position:relative}.mobile-toc[data-expanded=true] .mobile-toc-morph{height:var(--toc-h-open)}.mobile-toc-surface{box-sizing:border-box;pointer-events:auto;isolation:isolate;max-width:100%;height:100%;transition:clip-path var(--toc-morph-close-dur) var(--toc-morph-close-ease);background:0 0;border-radius:999px;position:relative;overflow:hidden;width:100%!important;display:block!important}.mobile-toc[data-expanded=true] .mobile-toc-surface{border-radius:0}.mobile-toc[data-open=true] .mobile-toc-surface{transition:clip-path var(--toc-morph-open-dur) var(--toc-morph-ease)}.mobile-toc-menu-layer{z-index:2;opacity:0;transform:translateY(var(--toc-morph-slide)) scale(var(--toc-morph-scale));pointer-events:none;transition:opacity var(--toc-morph-fade-dur) var(--toc-fade-ease), transform var(--toc-morph-close-dur) var(--toc-morph-close-ease);position:absolute;inset:0}.mobile-toc[data-open=true] .mobile-toc-menu-layer{opacity:1;pointer-events:auto;transition:opacity var(--toc-morph-fade-dur) var(--toc-fade-ease), transform var(--toc-morph-open-dur) var(--toc-morph-ease);transform:translateY(0)scale(1)}.mobile-toc-menu-inner{z-index:2;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in oklab, var(--home-ink) 20%, transparent) transparent;box-sizing:border-box;height:100%;padding:.35rem .5rem .5rem;position:relative;overflow:hidden auto}.mobile-toc-kicker{font-size:.6875rem;font-weight:var(--home-weight-body);letter-spacing:.08em;text-transform:uppercase;color:var(--home-faint);margin:.55rem .75rem .35rem;line-height:1.3}.mobile-toc-list{flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none;display:flex}.mobile-toc-item{margin:0;padding:0}a.mobile-toc-link{min-height:2.75rem;color:color-mix(in oklab, var(--home-ink) 62%, var(--home-faint));font-size:var(--home-text-body);font-weight:var(--home-weight-body);letter-spacing:var(--home-track-body);transition:color .14s var(--toc-ease), background-color .14s var(--toc-ease), transform .14s var(--toc-ease);border-radius:.6rem;align-items:baseline;gap:.7rem;padding:.55rem .7rem;line-height:1.35;text-decoration:none;display:flex}.mobile-toc-num{width:1.35rem;font-size:var(--home-text-meta);font-variant-numeric:tabular-nums;color:var(--home-faint);flex-shrink:0}.mobile-toc-link-label{text-wrap:pretty;min-width:0;display:inline-block}a.mobile-toc-link.is-active{color:var(--home-ink);background:color-mix(in oklab, var(--home-ink) 10%, var(--home-bg));font-weight:500}a.mobile-toc-link.is-active .mobile-toc-num{color:var(--home-ink)}a.mobile-toc-link:active{transform:scale(.96)}.mobile-toc-trigger{z-index:2;border-radius:inherit;width:100%;min-height:3.25rem;color:var(--home-ink);font:inherit;text-align:left;cursor:pointer;transition:opacity var(--toc-morph-fade-dur) var(--toc-fade-ease), transform var(--toc-morph-close-dur) var(--toc-morph-close-ease);background:0 0;border:0;align-items:center;gap:.7rem;margin:0;padding:.45rem .85rem .45rem .55rem;display:flex;position:absolute;bottom:0;left:0;right:0}.mobile-toc[data-expanded=true] .mobile-toc-trigger{left:var(--toc-track);width:auto;right:0}.mobile-toc-trigger:active{transform:scale(.96)}.mobile-toc[data-open=true] .mobile-toc-trigger{opacity:0;transform:translateY(calc(-1 * var(--toc-morph-slide))) scale(var(--toc-morph-scale));pointer-events:none}.mobile-toc-progress{width:28px;height:28px;color:var(--home-ink);flex-shrink:0;position:relative}.mobile-toc-ring-track{stroke:color-mix(in oklab, var(--home-ink) 18%, transparent)}.mobile-toc-ring-value{stroke:var(--home-ink);transition:stroke-dashoffset .22s var(--toc-ease)}.mobile-toc-progress-n{font-variant-numeric:tabular-nums;place-items:center;font-size:.6875rem;font-weight:500;line-height:1;display:grid;position:absolute;inset:0}.mobile-toc-current{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--home-text-body);letter-spacing:var(--home-track-body);color:var(--home-ink);flex:1;font-weight:500;line-height:1.35;overflow:hidden}.mobile-toc-chevron{color:var(--home-faint);transition:transform .18s var(--toc-ease), color .14s var(--toc-ease);flex-shrink:0;place-items:center;display:grid}.mobile-toc[data-open=true] .mobile-toc-chevron{color:var(--home-ink);transform:rotate(180deg)}@media (hover:hover) and (pointer:fine){a.mobile-toc-link:hover{color:var(--home-ink);background:color-mix(in oklab, var(--home-ink) 5%, transparent)}.mobile-toc-back:hover .content-back-arrow{transform:translate(-2px)}}@media (prefers-reduced-motion:reduce){.content-page{scroll-behavior:auto}.content-top-fade:before{-webkit-backdrop-filter:none}.content-back,.content-back-arrow,.content-toc-link,.content-a,.content-resource-link,.content-resource-link-arrow,a.content-store-button,a.content-store-button:after,.content-acknowledgements-body a,.content-next-link,.content-next-title,.mobile-toc,.mobile-toc-bar,.mobile-toc-back,.mobile-toc-morph,.mobile-toc-surface,.mobile-toc-menu-layer,.mobile-toc-link,.mobile-toc-trigger,.mobile-toc-chevron,.mobile-toc-ring-value{filter:none!important;clip-path:none!important;transition:none!important}.mobile-toc-back:active,.mobile-toc-back:hover .content-back-arrow,a.content-store-button:active{transform:translate(0,0)}a.content-store-button:hover{translate:none}.mobile-toc-menu-layer,.mobile-toc[data-open=true] .mobile-toc-menu-layer,.mobile-toc-trigger,.mobile-toc[data-open=true] .mobile-toc-trigger{transform:none!important}.mobile-toc[data-end=true]{opacity:0;transform:none}.mobile-toc[data-expanded=true] .mobile-toc-surface{border-radius:1rem}.content-back:hover .content-back-arrow{transform:none}}.mobile-toc[data-open=true] .mobile-toc-surface{--glass-tint:color-mix(in oklab, var(--home-bg) 90%, transparent)}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.mobile-toc[data-open=true] .mobile-toc-surface{--glass-tint:var(--home-bg)}}.content-video{position:relative}.content-video-control{inset-inline-end:.75rem;color:#fff;min-width:44px;min-height:44px;font:inherit;font-size:var(--home-text-meta);cursor:pointer;touch-action:manipulation;transition:scale .15s var(--home-ease);background:#00000059;border:0;border-radius:999px;padding:0;position:absolute;bottom:.75rem}.content-video-control:active{scale:.96}.content-video-control-surface{border-radius:inherit;place-items:center;width:44px;min-height:44px;padding:0;display:grid}.content-video-control-icon{z-index:2;fill:currentColor;width:36px;height:36px;display:block;position:relative}@media (prefers-reduced-motion:reduce){.content-video-control{transition:none}.content-video-control:active{scale:1}}
