@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hiJ-Ek-_EeA.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v21/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxjOVeB.woff2) format("woff2")}:root{--tg-bg:var(--tg-theme-bg-color,#fafafa);--tg-secondary-bg:var(--tg-theme-secondary-bg-color,#f0f0f3);--tg-text:var(--tg-theme-text-color,#0b0b0f);--tg-hint:var(--tg-theme-hint-color,#6b6b75);--tg-link:var(--tg-theme-link-color,#2563eb);--tg-button:var(--tg-theme-button-color,#2563eb);--tg-button-text:var(--tg-theme-button-text-color,#fff);--surface-1:var(--tg-bg);--surface-2:var(--tg-secondary-bg);--surface-3:color-mix(in srgb,var(--tg-bg) 92%,var(--tg-text) 8%);--border-subtle:color-mix(in srgb,var(--tg-text) 8%,transparent);--border-default:color-mix(in srgb,var(--tg-text) 14%,transparent);--success:#16a34a;--success-bg:color-mix(in srgb,var(--success) 12%,var(--surface-1));--warning:#d97706;--warning-bg:color-mix(in srgb,var(--warning) 12%,var(--surface-1));--danger:#dc2626;--danger-bg:color-mix(in srgb,var(--danger) 12%,var(--surface-1));--info:#2563eb;--info-bg:color-mix(in srgb,var(--info) 12%,var(--surface-1));--money-positive:#16a34a;--money-negative:#dc2626;--money-pending:#d97706;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--font-mono:"JetBrains Mono","SF Mono","Cascadia Code",monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--duration-fast:150ms;--duration-base:220ms;--duration-slow:320ms;--z-base:0;--z-sticky:100;--z-modal:1000;--z-toast:1100}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font-sans);font-feature-settings:"cv11","ss01";background:var(--surface-1);color:var(--tg-text);min-height:100vh;min-height:100dvh;overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font-family:inherit;outline:none}input,select,textarea{font-feature-settings:inherit}a{color:var(--tg-link);text-decoration:none}img{display:block;max-width:100%}:focus-visible{outline:2px solid var(--tg-link);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.display-sm{font-size:28px;font-weight:700;line-height:1.15;letter-spacing:-.02em}.heading-lg{font-size:22px;font-weight:650;line-height:1.2;letter-spacing:-.01em}.heading-md{font-size:18px;font-weight:600;line-height:1.25;letter-spacing:-.005em}.heading-sm{font-size:15px;font-weight:600;line-height:1.3}.body-lg{font-size:16px;font-weight:400;line-height:1.45}.body-md{font-size:14px;font-weight:400;line-height:1.5}.body-sm{font-size:13px;font-weight:400;line-height:1.45}.caption{font-size:11px;letter-spacing:.02em;text-transform:uppercase}.caption,.mono-md{font-weight:500;line-height:1.4}.mono-md{font-family:var(--font-mono);font-size:14px}.tabular-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-container{padding:var(--space-4);max-width:480px;padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom, 0px))}.page-container,.page-container-wide{margin:0 auto;min-height:100vh;min-height:100dvh}.page-container-wide{padding:var(--space-4);max-width:960px}.sticky-header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky);background:var(--surface-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;min-height:56px}.section-label{font-size:11px;font-weight:500;line-height:1.4;letter-spacing:.02em;text-transform:uppercase;color:var(--tg-hint);margin-bottom:var(--space-2)}.stack{gap:var(--space-4)}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:var(--space-3)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:var(--surface-3);background-size:200% 100%;animation:shimmer 1.5s linear infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-heading{height:22px;width:60%;margin-bottom:var(--space-3)}.skeleton-circle{border-radius:50%}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-pill)}.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:var(--space-4)}.lightbox-overlay img{max-width:100%;max-height:80vh;border-radius:var(--radius-md);object-fit:contain}.lightbox-close{position:absolute;top:var(--space-4);right:var(--space-4);background:hsla(0,0%,100%,.2);color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-out)}.lightbox-close:hover{background:hsla(0,0%,100%,.3)}.lightbox-meta{color:hsla(0,0%,100%,.7);font-size:13px;margin-top:var(--space-3);text-align:center}.screenshot-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.screenshot-thumb{width:100%;aspect-ratio:1;border-radius:var(--radius-md);object-fit:cover;cursor:pointer;border:2px solid var(--border-subtle);transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.screenshot-thumb:hover{border-color:var(--tg-link);transform:scale(1.02)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes toast-in{0%{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes check-draw{0%{stroke-dashoffset:50}to{stroke-dashoffset:0}}.page-enter{animation:slide-up var(--duration-base) var(--ease-out)}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.7}}.pulse-urgent{animation:pulse-subtle 2s ease-in-out infinite}@keyframes shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.shake{animation:shake .4s ease-in-out}