.appframe[data-astro-cid-rzl724qi]{margin:0;inline-size:100%}.appframe[data-astro-cid-rzl724qi][data-chrome=light]{--win-bar: #F6F6F6;--win-field: #E9E9EB;--win-ink: #1D1D1F;--win-icon: #6E6E73;--win-line: rgba(0, 0, 0, .13);--win-btn: rgba(0, 0, 0, .055);--win-btn-hover: rgba(0, 0, 0, .1)}.appframe[data-astro-cid-rzl724qi][data-chrome=dark]{--win-bar: #2C2C2E;--win-field: #3A3A3C;--win-ink: #F2F2F7;--win-icon: #98989D;--win-line: rgba(255, 255, 255, .12);--win-btn: rgba(255, 255, 255, .09);--win-btn-hover: rgba(255, 255, 255, .16)}.win[data-astro-cid-rzl724qi]{border-radius:22px;overflow:hidden;background:var(--win-bar);box-shadow:0 0 0 1px var(--win-line),0 2px 6px #14192d1a,0 18px 44px #14192d29,0 44px 90px #14192d24}.win__toolbar[data-astro-cid-rzl724qi]{display:grid;grid-template-columns:1fr minmax(0,auto) 1fr;align-items:center;gap:var(--sp-3);padding:11px 16px;background:var(--win-bar);border-block-end:1px solid var(--win-line)}.win__lights[data-astro-cid-rzl724qi]{display:inline-flex;gap:8px}.win__light[data-astro-cid-rzl724qi]{inline-size:12px;block-size:12px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f}.win__light--close[data-astro-cid-rzl724qi]{background:#ff5f57}.win__light--min[data-astro-cid-rzl724qi]{background:#febc2e}.win__light--zoom[data-astro-cid-rzl724qi]{background:#28c840}.win__field[data-astro-cid-rzl724qi]{inline-size:min(360px,100%);display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 16px;border-radius:var(--r-pill);background:var(--win-field);color:var(--win-ink);font-family:var(--font-sans);font-size:12.5px;line-height:1.5}.win__page[data-astro-cid-rzl724qi]{inline-size:13px;block-size:13px;flex:none;color:var(--win-icon)}.win__reload[data-astro-cid-rzl724qi]{inline-size:12px;block-size:12px;flex:none;color:var(--win-icon)}.win__url[data-astro-cid-rzl724qi]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.win__open[data-astro-cid-rzl724qi]{justify-self:end;display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:var(--r-pill);background:var(--win-btn);color:var(--win-ink);font-family:var(--font-sans);font-size:12px;line-height:1.4;text-decoration:none;transition:background var(--dur-1) var(--ease)}.win__open[data-astro-cid-rzl724qi] svg[data-astro-cid-rzl724qi]{inline-size:13px;block-size:13px;flex:none}.win__open[data-astro-cid-rzl724qi]:hover{background:var(--win-btn-hover)}.win__open[data-astro-cid-rzl724qi]:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.win__screen[data-astro-cid-rzl724qi]{position:relative;overflow:hidden;background:var(--win-bar);inline-size:100%;aspect-ratio:var(--app-ratio);min-block-size:var(--app-minh)}.win__screen[data-astro-cid-rzl724qi]>*{inline-size:100%;block-size:100%;display:block}.appframe[data-astro-cid-rzl724qi][data-fluid] .win[data-astro-cid-rzl724qi]{overflow:clip}.appframe[data-astro-cid-rzl724qi][data-fluid] .win__screen[data-astro-cid-rzl724qi]{overflow:clip;aspect-ratio:auto;block-size:auto;min-block-size:0}.appframe[data-astro-cid-rzl724qi][data-fluid] .win__screen[data-astro-cid-rzl724qi]>*{display:flex;block-size:auto;min-block-size:0}.win__ios[data-astro-cid-rzl724qi]{display:none}.appframe__rail[data-astro-cid-rzl724qi]{padding:var(--sp-3) var(--sp-1) 0;font-family:var(--font-sans);font-size:var(--fs-small);color:var(--faint);max-inline-size:78ch}@media(max-width:720px){.win[data-astro-cid-rzl724qi]{border-radius:26px}.win__toolbar[data-astro-cid-rzl724qi]{display:none}.win__screen[data-astro-cid-rzl724qi]{aspect-ratio:auto;block-size:74vh;block-size:74svh;min-block-size:440px}.win__ios[data-astro-cid-rzl724qi]{display:block;padding:9px 12px 12px;background:var(--win-bar);border-block-start:1px solid var(--win-line)}.win__iosfield[data-astro-cid-rzl724qi]{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--r-pill);background:var(--win-field);color:var(--win-ink);font-family:var(--font-sans);font-size:12.5px}.win__aa[data-astro-cid-rzl724qi]{flex:none;font-size:11px;letter-spacing:-.02em;color:var(--win-icon)}.win__iosfield[data-astro-cid-rzl724qi] .win__url[data-astro-cid-rzl724qi]{flex:1;text-align:center}.win__iosopen[data-astro-cid-rzl724qi]{flex:none;display:grid;place-items:center;inline-size:22px;block-size:22px;margin-inline-end:-4px;border-radius:var(--r-pill);color:var(--win-ink)}.win__iosopen[data-astro-cid-rzl724qi] svg[data-astro-cid-rzl724qi]{inline-size:14px;block-size:14px}.win__iosopen[data-astro-cid-rzl724qi]:focus-visible{outline:2px solid var(--signal);outline-offset:2px}}.hub[data-astro-cid-77ctb5k2]{display:flex;flex-direction:column;gap:var(--sp-5);inline-size:100%;padding:var(--sp-6);background:var(--paper);color:var(--ink)}.hub__lede[data-astro-cid-77ctb5k2]{margin:0;font-size:1.125rem;font-weight:600}.tiles[data-astro-cid-77ctb5k2]{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.tile[data-astro-cid-77ctb5k2]{display:flex;flex-direction:column;gap:2px;inline-size:100%;block-size:100%;padding:var(--sp-5);text-align:start;border:1.5px solid var(--line);border-radius:var(--r-lg);background:var(--paper-raised);transition:border-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}.tile[data-astro-cid-77ctb5k2]:hover{transform:translateY(-2px);border-color:var(--line-strong)}.tile[data-astro-cid-77ctb5k2][aria-pressed=true]{border-color:var(--accent);box-shadow:0 16px 40px -24px var(--accent)}.tile[data-astro-cid-77ctb5k2]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.tile__art[data-astro-cid-77ctb5k2]{inline-size:56px;block-size:56px;margin-block-end:var(--sp-4);border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.tile__role[data-astro-cid-77ctb5k2]{font-size:1.375rem;font-weight:700;letter-spacing:-.015em;line-height:1.15;color:var(--ink)}.tile__biz[data-astro-cid-77ctb5k2]{font-size:1rem;color:var(--ink-soft);line-height:1.3}.tile__place[data-astro-cid-77ctb5k2]{margin-block-start:var(--sp-3);font-size:.8125rem;color:var(--muted)}@media(max-width:980px){.tiles[data-astro-cid-77ctb5k2]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.hub[data-astro-cid-77ctb5k2]{padding:var(--sp-4)}}@media(max-width:520px){.tile[data-astro-cid-77ctb5k2]{padding:var(--sp-4)}.tile__art[data-astro-cid-77ctb5k2]{inline-size:44px;block-size:44px;margin-block-end:var(--sp-3)}.tile__role[data-astro-cid-77ctb5k2]{font-size:1.125rem}.tile__biz[data-astro-cid-77ctb5k2]{font-size:.875rem}}.review[data-astro-cid-77ctb5k2]{position:fixed;inset-block-end:16px;inset-inline-start:16px;z-index:50;display:flex;align-items:center;gap:6px;padding:6px 8px 6px 14px;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font-size:.8125rem;box-shadow:0 10px 30px -10px #0006}.review[data-astro-cid-77ctb5k2] button[data-astro-cid-77ctb5k2]{padding:6px 12px;border-radius:var(--r-pill);border:0;background:transparent;color:inherit;font-size:inherit;font-weight:600;opacity:.7}.review[data-astro-cid-77ctb5k2] button[data-astro-cid-77ctb5k2][aria-pressed=true]{background:var(--paper);color:var(--ink);opacity:1}.review__note[data-astro-cid-77ctb5k2]{opacity:.6;padding-inline:6px}@media(max-width:520px){.review__note[data-astro-cid-77ctb5k2]{display:none}}.phero[data-astro-cid-5cgh4fwy]{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center;padding-block:var(--sp-16)}.phero__row[data-astro-cid-5cgh4fwy]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--sp-3) var(--sp-4)}.phero__tagline[data-astro-cid-5cgh4fwy]{max-inline-size:46ch;font-size:var(--fs-body);line-height:1.5;color:var(--muted);text-wrap:balance}.phero__title[data-astro-cid-5cgh4fwy]{font-size:var(--fs-h2);letter-spacing:var(--ls-tight);line-height:1.1}.stats[data-astro-cid-c2mjfw2q]{display:flex;flex-direction:column;gap:var(--sp-4);padding-block-start:0}.stats__row[data-astro-cid-c2mjfw2q]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:var(--sp-3)}.stats__cell[data-astro-cid-c2mjfw2q]{display:flex}.stats__cell[data-astro-cid-c2mjfw2q]>*{inline-size:100%}.stats__tile[data-astro-cid-c2mjfw2q]{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) var(--sp-6)}.stats__value[data-astro-cid-c2mjfw2q]{font-size:clamp(1.375rem,1rem + 1.6vw,2.25rem);font-weight:600;letter-spacing:var(--ls-tight);line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ink);text-wrap:balance;overflow-wrap:break-word}.stats__label[data-astro-cid-c2mjfw2q]{font-family:var(--font-sans);font-size:var(--fs-mono);font-weight:500;letter-spacing:var(--ls-mono);text-transform:uppercase;line-height:1.4;color:var(--muted)}.stats__note[data-astro-cid-c2mjfw2q]{font-family:var(--font-sans);font-size:.625rem;letter-spacing:.04em;color:var(--faint)}.flow[data-astro-cid-qhslg3yr]{margin:0;inline-size:100%;display:flex;flex-direction:column;gap:var(--sp-4)}.flow__track[data-astro-cid-qhslg3yr]{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6)}.flow__stage[data-astro-cid-qhslg3yr]{align-items:center;text-align:center}.flow__rows[data-astro-cid-qhslg3yr]{align-items:center}.flow__rail[data-astro-cid-qhslg3yr]{position:absolute;inset-block-start:5px;inset-inline:calc((100% - var(--sp-6) * 2) / 6);block-size:1px;background:var(--line-strong);overflow:visible}.flow__pulse[data-astro-cid-qhslg3yr]{position:absolute;inset-block-start:-2px;inline-size:5px;block-size:5px;border-radius:50%;background:var(--signal);box-shadow:0 0 8px var(--signal);animation:flow-travel 6s var(--ease) infinite}@keyframes flow-travel{0%{inset-inline-start:0;opacity:0}8%{opacity:1}92%{opacity:1}to{inset-inline-start:100%;opacity:0}}.flow__stage[data-astro-cid-qhslg3yr]{position:relative;display:flex;flex-direction:column;gap:var(--sp-2);padding-block-start:var(--sp-4)}.flow__node[data-astro-cid-qhslg3yr]{position:absolute;inset-block-start:0;inset-inline-start:calc(50% - 5.5px);inline-size:11px;block-size:11px;border-radius:50%;background:var(--paper);border:1px solid var(--line-strong)}.flow__node[data-astro-cid-qhslg3yr]:after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--signal);opacity:0;animation:flow-ping 6s var(--ease) infinite;animation-delay:calc(var(--stage-i) * 2s)}@keyframes flow-ping{0%,6%{opacity:0;transform:scale(.6)}3%{opacity:1;transform:scale(1)}12%,to{opacity:0}}.flow__stage-tag[data-astro-cid-qhslg3yr]{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--signal)}.flow__stage-title[data-astro-cid-qhslg3yr]{font-size:1.375rem;font-weight:600;color:var(--ink);line-height:1.25}.flow__rows[data-astro-cid-qhslg3yr]{display:flex;flex-direction:column;gap:6px;margin-block-start:var(--sp-2)}.flow__row[data-astro-cid-qhslg3yr]{font-family:var(--font-sans);font-size:1rem;line-height:1.4;color:var(--ink-soft, var(--muted));animation:flow-row-in 6s var(--ease) infinite;animation-delay:calc(var(--stage-i) * 2s + var(--row-j) * .18s)}@keyframes flow-row-in{0%,4%{opacity:.55;transform:translateY(2px)}10%,82%{opacity:1;transform:none}96%,to{opacity:.55}}.flow[data-astro-cid-qhslg3yr][data-paused] .flow__pulse[data-astro-cid-qhslg3yr],.flow[data-astro-cid-qhslg3yr][data-paused] .flow__node[data-astro-cid-qhslg3yr]:after,.flow[data-astro-cid-qhslg3yr][data-paused] .flow__row[data-astro-cid-qhslg3yr]{animation-play-state:paused}@media(max-width:640px){.flow__track[data-astro-cid-qhslg3yr]{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.flow__rail[data-astro-cid-qhslg3yr]{display:none}.flow__stage[data-astro-cid-qhslg3yr]{padding-block-start:var(--sp-2);padding-inline-start:var(--sp-4)}.flow__node[data-astro-cid-qhslg3yr]{inset-block-start:12px;inset-inline-start:0}.flow__stage[data-astro-cid-qhslg3yr]{align-items:flex-start;text-align:start}.flow__rows[data-astro-cid-qhslg3yr]{align-items:flex-start}.flow__row[data-astro-cid-qhslg3yr]{padding-inline-start:var(--sp-3);border-inline-start:1px solid var(--line)}}@media(prefers-reduced-motion:reduce){.flow__pulse[data-astro-cid-qhslg3yr]{display:none}.flow__node[data-astro-cid-qhslg3yr]:after,.flow__row[data-astro-cid-qhslg3yr]{animation:none;opacity:1;transform:none}}.hiw[data-astro-cid-y6hivuui]{padding-block:var(--sp-16) 0}.marquee[data-astro-cid-ozpb33nl]{padding-block:var(--sp-16);overflow:clip}.marquee__rows[data-astro-cid-ozpb33nl]{display:flex;flex-direction:column;gap:var(--sp-6)}.marquee__row[data-astro-cid-ozpb33nl]{display:flex;inline-size:max-content;animation:mq-left var(--mq-dur) linear infinite}.marquee__row--right[data-astro-cid-ozpb33nl]{animation-name:mq-right}@keyframes mq-left{to{transform:translate3d(-50%,0,0)}}@keyframes mq-right{0%{transform:translate3d(-50%,0,0)}}.marquee__rows[data-astro-cid-ozpb33nl]:hover .marquee__row[data-astro-cid-ozpb33nl],.marquee__rows[data-astro-cid-ozpb33nl]:focus-within .marquee__row[data-astro-cid-ozpb33nl],.marquee[data-astro-cid-ozpb33nl][data-paused] .marquee__row[data-astro-cid-ozpb33nl]{animation-play-state:paused}.marquee__track[data-astro-cid-ozpb33nl]{display:flex;align-items:center;gap:var(--sp-12);padding-inline-end:var(--sp-12);flex:none}.marquee__item[data-astro-cid-ozpb33nl]{flex:none}.marquee__rows[data-astro-cid-ozpb33nl]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}@media(max-width:560px){.marquee[data-astro-cid-ozpb33nl]{padding-block:var(--sp-12)}.marquee__track[data-astro-cid-ozpb33nl]{gap:var(--sp-8);padding-inline-end:var(--sp-8)}}@media(prefers-reduced-motion:reduce){.marquee__rows[data-astro-cid-ozpb33nl]{-webkit-mask-image:none;mask-image:none;inline-size:min(var(--maxw),100% - (var(--gutter) * 2));margin-inline:auto;gap:var(--sp-4)}.marquee__row[data-astro-cid-ozpb33nl]{animation:none;inline-size:100%}.marquee__track--dupe[data-astro-cid-ozpb33nl]{display:none}.marquee__track[data-astro-cid-ozpb33nl]{flex-wrap:wrap;gap:var(--sp-4) var(--sp-8);padding-inline-end:0}}.project[data-astro-cid-yvbahnfj]{display:flex;flex-direction:column}.project__demo[data-astro-cid-yvbahnfj]{inline-size:100%}.project__demo[data-astro-cid-yvbahnfj]:first-child{margin-block-start:var(--sp-8)}.project__demo[data-astro-cid-yvbahnfj]>*{inline-size:100%}.project__demo--app[data-astro-cid-yvbahnfj]{width:min(1360px,100vw - (var(--gutter) * 2));margin-inline:calc(50% - min(680px,50vw - var(--gutter)))}
