:root{--brand-1: #1a56db;--brand-2: #3b82f6;--brand-grad: linear-gradient(135deg, #1a56db 0%, #3b82f6 100%);--ink: #0f172a;--ink-soft: #475569;--ink-dim: #64748b;--line: #dfe6f3;--bg: #eef3ff;--surface: #ffffff;--surface-2: #f3f7ff;--hero-tint: #d7e3ff;--wash-1: rgba(59,130,246,.16);--wash-2: rgba(139,92,246,.13);--wash-3: rgba(6,182,212,.11);--alt-veil: rgba(255,255,255,.55);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);--shadow-md: 0 6px 18px rgba(15,23,42,.09);--shadow-lg: 0 28px 64px -22px rgba(26,86,219,.32), 0 14px 32px -14px rgba(15,23,42,.2);--font: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--maxw: 1160px}:root[data-theme=dark]{--ink: #e7e7ea;--ink-soft: #b6b7bd;--ink-dim: #8b8c93;--line: #34343b;--bg: #141417;--surface: #212125;--surface-2: #2a2a2f;--hero-tint: #223056;--wash-1: rgba(59,130,246,.16);--wash-2: rgba(139,92,246,.14);--wash-3: rgba(6,182,212,.1);--alt-veil: rgba(255,255,255,.03);--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 6px 18px rgba(0,0,0,.45);--shadow-lg: 0 28px 64px -22px rgba(0,0,0,.65), 0 14px 32px -14px rgba(0,0,0,.55)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .3s ease,color .3s ease;position:relative}body:before{content:"";position:fixed;inset:-10% -10% 0;z-index:-1;pointer-events:none;background:radial-gradient(680px 480px at 8% 4%,var(--wash-1),transparent 62%),radial-gradient(760px 560px at 92% 12%,var(--wash-2),transparent 60%),radial-gradient(720px 620px at 60% 92%,var(--wash-3),transparent 60%);animation:bgDrift 26s ease-in-out infinite alternate;transition:background .3s ease}@keyframes bgDrift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(0,-34px,0) scale(1.06)}}img{max-width:100%;display:block}h1,h2,h3,h4{line-height:1.15;letter-spacing:-.02em;margin:0;color:var(--ink)}p{margin:0}a{color:inherit;text-decoration:none}.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--brand-1);color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 var(--r-md) 0}.skip-link:focus{left:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:600;font-size:.95rem;line-height:1;padding:12px 20px;border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer;transition:transform .12s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-lg{padding:15px 28px;font-size:1.02rem}.btn-sm{padding:10px 16px;font-size:.88rem}.btn-primary{background:var(--brand-grad);color:#fff;box-shadow:0 6px 16px -6px #1a56db99}.btn-primary:hover{box-shadow:0 10px 22px -6px #1a56dbb3;transform:translateY(-1px)}.btn-outline{background:var(--surface);color:var(--brand-2);border-color:var(--line)}.btn-outline:hover{border-color:var(--brand-2)}.btn-ghost{background:transparent;color:var(--ink-soft)}.btn-ghost:hover{color:var(--brand-2);background:var(--surface-2)}.btn-white{background:#fff;color:var(--brand-1)}.btn-white:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-disabled{background:var(--surface-2);color:var(--ink-dim);cursor:not-allowed;border-color:var(--line)}.icon-btn{width:38px;height:38px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);font-family:inherit;font-weight:700;font-size:.82rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .16s ease}.icon-btn:hover{color:var(--brand-2);border-color:var(--brand-2)}#themeToggle{font-size:1.05rem}.eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-2);background:color-mix(in srgb,var(--brand-2) 12%,transparent);padding:6px 12px;border-radius:var(--r-pill);margin-bottom:16px}.grad{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s ease,box-shadow .2s ease}.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm)}.header-inner{display:flex;align-items:center;gap:20px;height:68px}.brand{display:inline-flex;align-items:center}.brand-logo--dark{display:none}:root[data-theme=dark] .brand-logo--light{display:none}:root[data-theme=dark] .brand-logo--dark{display:inline-block}.site-nav{display:flex;gap:26px;margin-left:10px}.site-nav a{font-weight:500;color:var(--ink-soft);font-size:.95rem}.site-nav a:hover{color:var(--brand-2)}.site-nav a.is-current{color:var(--brand-2);font-weight:600}.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.hero{position:relative;overflow:hidden;padding:72px 0 88px;background:radial-gradient(1200px 600px at 82% -10%,var(--hero-tint) 0%,transparent 60%)}.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center}.hero-copy h1{font-size:clamp(2.2rem,4.4vw,3.5rem);font-weight:800;margin-bottom:20px}.hero .lead{font-size:1.16rem;color:var(--ink-soft);max-width:560px;margin-bottom:32px}.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:32px}.hero-trust{list-style:none;display:flex;flex-wrap:wrap;gap:10px 22px;padding:0;margin:0;color:var(--ink-dim);font-size:.92rem;font-weight:500}.hero-visual{position:relative}.hero-phone{--pw: 156px;position:absolute;bottom:-36px;left:-30px;z-index:3}.browser-frame{border-radius:var(--r-lg);overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg)}.hero-visual .browser-frame{transform:perspective(1600px) rotateY(-6deg) rotateX(2deg);transform-origin:left center}.browser-bar{display:flex;gap:7px;padding:11px 14px;background:var(--surface-2);border-bottom:1px solid var(--line)}.browser-bar span{width:11px;height:11px;border-radius:50%;background:#d3dae6}.browser-bar span:nth-child(1){background:#ff6159}.browser-bar span:nth-child(2){background:#ffbd2e}.browser-bar span:nth-child(3){background:#28c840}.browser-frame img{width:100%;height:auto}.section{padding:88px 0;background:transparent}.section-alt{background:var(--alt-veil)}.page-top{padding-top:120px}.section-head{text-align:center;max-width:720px;margin:0 auto 52px}.section-head h2{font-size:clamp(1.8rem,3.2vw,2.5rem);font-weight:800;margin-bottom:14px}.section-head p{color:var(--ink-soft);font-size:1.08rem}.apps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.app-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;transition:transform .16s ease,box-shadow .2s ease,border-color .2s ease}.app-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.app-glyph{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--r-md);background:var(--soft);color:var(--hue);margin-bottom:16px;border:1px solid color-mix(in srgb,var(--hue) 18%,transparent)}.app-glyph svg{width:24px;height:24px}.app-tile h3{font-size:1.08rem;font-weight:700;margin-bottom:6px}.app-tile p{font-size:.9rem;color:var(--ink-dim);line-height:1.5}.showcase{display:flex;flex-direction:column;gap:72px}.show-row{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}.show-row.is-reversed .show-copy{order:2}.show-tag{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-2);margin-bottom:12px}.show-copy h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;margin-bottom:12px}.show-copy p{color:var(--ink-soft);font-size:1.05rem}.mobile-row{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center;margin-top:80px;padding-top:72px;border-top:1px solid var(--line)}.mobile-copy h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;margin:4px 0 12px}.mobile-copy p{color:var(--ink-soft);font-size:1.05rem;margin-bottom:22px}.mobile-phones{display:flex;justify-content:center;align-items:center}.phone-frame{position:relative;width:var(--pw, 240px);background:linear-gradient(150deg,#34363c,#0d0e12 46%,#0a0b0e);border-radius:calc(var(--pw, 240px) * .165);padding:calc(var(--pw, 240px) * .021);box-shadow:0 30px 62px -18px #0f172a6b,0 0 0 1px #00000059}.phone-frame img{display:block;width:100%;height:auto;border-radius:calc(var(--pw, 240px) * .144)}.phone-notch{position:absolute;top:calc(var(--pw, 240px) * .05);left:50%;transform:translate(-50%);width:calc(var(--pw, 240px) * .3);height:calc(var(--pw, 240px) * .085);background:#000;border-radius:999px;z-index:3;box-shadow:0 0 0 1px #ffffff0d}:root[data-theme=dark] .phone-frame{box-shadow:0 30px 62px -18px #000000b8,0 0 0 1px #ffffff0f}.mobile-phones .phone-frame{--pw: 250px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}.price-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:32px 26px;display:flex;flex-direction:column}.price-card.is-featured{border-color:var(--brand-2);box-shadow:0 20px 44px -22px #1a56db80}.price-badge{position:absolute;top:-12px;left:26px;background:var(--brand-grad);color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill)}.price-card h3{font-size:1.3rem;font-weight:800;margin-bottom:4px}.price-tagline{color:var(--ink-dim);font-size:.92rem;margin-bottom:20px;min-height:2.6em}.price{display:flex;align-items:baseline;gap:6px;margin-bottom:22px;min-height:48px}.price-amount{font-size:2.4rem;font-weight:800;color:var(--ink);letter-spacing:-.03em}.price-unit{color:var(--ink-dim);font-size:.92rem}.price-contact{font-size:1.5rem;font-weight:800;color:var(--brand-2);align-items:center}.price-card .btn{width:100%;margin-bottom:22px}.price-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.price-features li{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;color:var(--ink-soft)}.price-features svg{width:18px;height:18px;flex:0 0 18px;margin-top:2px;color:var(--brand-2)}.tabs{display:flex;gap:8px;justify-content:center;margin-bottom:30px;flex-wrap:wrap}.tab{font-family:inherit;font-weight:600;font-size:.98rem;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:11px 22px;cursor:pointer;transition:all .16s ease}.tab:hover{color:var(--brand-2)}.tab.is-active{background:var(--brand-grad);color:#fff;border-color:transparent;box-shadow:0 6px 16px -8px #1a56db99}.tab-panel{display:none}.tab-panel.is-active{display:block;animation:fade .3s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.client-note{text-align:center;color:var(--ink-soft);font-size:.96rem;max-width:620px;margin:0 auto 26px}.dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;max-width:940px;margin:0 auto}.dl-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .16s ease,box-shadow .2s ease}.dl-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.dl-os{width:60px;height:60px;border-radius:var(--r-lg);display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);margin-bottom:6px}.dl-os img{width:40px;height:40px}.dl-os--glyph{color:var(--ink)}.dl-os--glyph svg{width:32px;height:32px}.dl-card h3{font-size:1.12rem;font-weight:700}.dl-arch{font-size:.86rem;color:var(--ink-soft);font-weight:500}.dl-meta{font-size:.8rem;color:var(--ink-dim);margin-bottom:6px}.dl-card .btn{margin-top:4px}.dl-apk{font-size:.82rem;color:var(--brand-2);font-weight:600;margin-top:8px}.dl-apk:hover{text-decoration:underline}.dl-note{text-align:center;color:var(--ink-dim);font-size:.92rem;margin-top:26px}.dl-error{grid-column:1/-1;text-align:center;color:var(--ink-soft)}.selfhost{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;max-width:1000px;margin:0 auto}.selfhost-copy h3{font-size:1.6rem;font-weight:800;margin-bottom:14px}.selfhost-copy>p{color:var(--ink-soft);font-size:1.02rem;margin-bottom:20px}.deploy-targets{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.deploy-chip{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:500;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 14px}.deploy-chip svg{width:16px;height:16px;color:var(--brand-2)}.selfhost-pricing{color:var(--ink-dim);font-size:.92rem;margin-bottom:20px}.selfhost-code{margin:0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid #1e293b}.selfhost-code figcaption{background:#0f172a;color:#94a3b8;font-size:.8rem;font-weight:600;padding:10px 18px;border-bottom:1px solid #1e293b;font-family:var(--mono)}.selfhost-code pre{margin:0;background:#0b1120;color:#cbd5e1;padding:20px 18px;overflow-x:auto}.selfhost-code code{font-family:var(--mono);font-size:.82rem;line-height:1.7}.cta-band{background:var(--brand-grad);color:#fff;padding:72px 0;text-align:center}.cta-inner h2{font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:800;color:#fff;margin-bottom:12px}.cta-inner p{font-size:1.1rem;opacity:.92;margin-bottom:28px}.site-footer{background:#0b1220;color:#94a3b8;padding:56px 0 40px}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:32px}.footer-brand img{margin-bottom:14px}.footer-brand p{font-size:.92rem;max-width:260px}.site-footer h4{color:#e2e8f0;font-size:.95rem;margin-bottom:14px;font-weight:700}.site-footer nav{display:flex;flex-direction:column;gap:9px;align-items:flex-start}.site-footer nav a,.site-footer nav .linklike,.footer-contact a{font-size:.92rem;color:#94a3b8;transition:color .16s ease}.site-footer nav a:hover,.site-footer nav .linklike:hover,.footer-contact a:hover{color:#fff}.footer-contact{display:flex;flex-direction:column;gap:9px}.footer-contact p{font-size:.85rem;color:#64748b;margin-top:8px}.modal-overlay{position:fixed;inset:0;background:#080c1699;backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:20px;z-index:200;opacity:0;transition:opacity .2s ease}.modal-overlay.is-open{display:flex;opacity:1}.modal{background:var(--surface);color:var(--ink);border-radius:var(--r-xl);width:min(620px,100%);max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative;animation:pop .22s ease}@keyframes pop{0%{transform:translateY(14px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal-close{position:absolute;top:14px;right:16px;width:34px;height:34px;border:0;background:var(--surface-2);border-radius:var(--r-pill);font-size:1.4rem;line-height:1;color:var(--ink-soft);cursor:pointer;z-index:2}.modal-close:hover{color:var(--ink)}.modal-tabs{display:flex;gap:6px;padding:20px 24px 0}.mtab{flex:1;font-family:inherit;font-weight:600;font-size:.92rem;color:var(--ink-soft);background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-pill);padding:10px;cursor:pointer;transition:all .16s ease}.mtab.is-active{background:var(--brand-grad);color:#fff}.modal-body{padding:20px 26px 26px}.modal-body h3{font-size:1.4rem;font-weight:800;margin-bottom:6px}.modal-desc{color:var(--ink-soft);font-size:.95rem;margin-bottom:20px}.intake-form{display:flex;flex-direction:column;gap:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.84rem;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea{font-family:inherit;font-size:.95rem;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink);transition:border-color .16s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand-2)}.field textarea{resize:vertical}.checks{border:0;padding:0;margin:0}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:8px}.check-grid label{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--ink-soft);cursor:pointer}.check-grid input{accent-color:var(--brand-1);width:16px;height:16px}.form-error{color:#dc2626;font-size:.86rem;margin:0}.form-submit{margin-top:4px}.modal-thanks{text-align:center;padding:26px 0 8px}.thanks-check{width:60px;height:60px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--brand-2) 15%,transparent);color:var(--brand-2);font-size:1.8rem;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.modal-thanks h3{margin-bottom:8px}.modal-thanks p{color:var(--ink-soft);margin-bottom:22px}.contact-block{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.contact-or{display:block;text-align:center;font-size:.82rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}.contact-lines{display:flex;gap:12px;flex-wrap:wrap}.contact-line{flex:1;min-width:200px;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.contact-line:hover{border-color:var(--brand-2)}.contact-line svg{width:20px;height:20px;color:var(--brand-2);flex:0 0 20px}.contact-line span{display:flex;flex-direction:column}.contact-line small{font-size:.74rem;color:var(--ink-dim)}.contact-line strong{font-size:.95rem;color:var(--ink)}@media (max-width: 960px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero-visual .browser-frame{transform:none}.apps-grid{grid-template-columns:repeat(2,1fr)}.show-row,.show-row.is-reversed .show-copy{grid-template-columns:1fr;order:0}.show-media{order:-1}.mobile-row{grid-template-columns:1fr;gap:32px}.pricing-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}.selfhost{grid-template-columns:1fr;gap:32px}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}.site-nav{display:none}}@media (max-width: 560px){.section{padding:60px 0}.hero{padding:48px 0 60px}.apps-grid{grid-template-columns:1fr}.header-actions .btn-ghost{display:none}.footer-grid,.field-row,.check-grid{grid-template-columns:1fr}.phone{width:138px}}.field select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}.reveal{opacity:0;transform:translateY(26px);transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.hero-copy>*{animation:heroUp .7s cubic-bezier(.16,1,.3,1) backwards}.hero-copy>.eyebrow{animation-delay:.04s}.hero-copy>h1{animation-delay:.12s}.hero-copy>.lead{animation-delay:.22s}.hero-copy>.hero-cta{animation-delay:.32s}.hero-copy>.hero-trust{animation-delay:.42s}@keyframes heroUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero-visual{animation:heroFade .9s ease .2s backwards}@keyframes heroFade{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.hero-visual .browser-frame{animation:floaty 6.5s ease-in-out .9s infinite}@keyframes floaty{0%,to{transform:perspective(1600px) rotateY(-6deg) rotateX(2deg) translateY(0)}50%{transform:perspective(1600px) rotateY(-6deg) rotateX(2deg) translateY(-12px)}}.eyebrow{animation:none}.grad{background-size:200% 100%;animation:gradShift 8s ease infinite}@keyframes gradShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@media (max-width: 960px){.hero-visual .browser-frame{animation:none}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}}
