:root{--bg:#f6f4ef;--ink:#14130f;--ink-muted:#6b6660;--rule:#e0dace;--forest:#2c6e49;--forest-bright:#7fb69a;--forest-deep:#123524;--on-forest:#eff6f1;--on-forest-mut:#aecfbd;--font-display:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--xs:4px;--sm:8px;--md:16px;--lg:24px;--xl:40px;--2xl:64px;--3xl:96px;--4xl:160px;--5xl:220px;--max-page:1240px;--max-content:760px;--pad-x:64px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:1.125rem;font-weight:400;line-height:1.6;overflow-x:hidden}::selection{background:var(--forest);color:#fff}.page{max-width:var(--max-page);padding:0 var(--pad-x);margin:0 auto}.narrow{max-width:var(--max-content)}h1,h2,h3,p{margin:0}.serif{font-family:var(--font-display);font-weight:600}.eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;font-weight:500}.grain:after{content:"";pointer-events:none;opacity:.06;z-index:2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.hero{background:linear-gradient(165deg, #245c3d 0%, var(--forest) 45%, var(--forest-deep) 100%);min-height:100vh;color:var(--on-forest);flex-direction:column;display:flex;position:relative;overflow:hidden}.hero canvas{z-index:1;width:100%;height:100%;position:absolute;inset:0}.hero>.page{z-index:3;width:100%;position:relative}.hero-top{padding-top:var(--xl);justify-content:space-between;align-items:baseline;gap:var(--md);display:flex}.hero-top .wordmark{font-family:var(--font-display);color:var(--on-forest);letter-spacing:-.01em;font-size:1.6rem;font-weight:600;line-height:1;text-decoration:none}.hero-top .tag{color:var(--on-forest-mut)}.hero-body{padding-top:var(--4xl);padding-bottom:var(--3xl);flex-direction:column;flex:1;justify-content:center;display:flex}.headline{font-family:var(--font-display);letter-spacing:-.025em;color:var(--on-forest);max-width:18ch;margin-bottom:var(--xl);font-size:clamp(2.5rem,6.6vw,6rem);font-weight:600;line-height:1.06}.headline .w{vertical-align:top;margin-bottom:-.16em;padding-bottom:.16em;display:inline-block;overflow:hidden}.headline .wi{display:inline-block}.js .headline .wi{transform:translateY(115%)}.js .headline.in .wi{transition:transform .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0s);transform:translateY(0)}.hero-sub{color:var(--on-forest-mut);max-width:46ch;font-size:1.125rem}.js .hero-fade{opacity:0}.js .hero-fade.in{opacity:1;transition:opacity .9s .7s}.scrollcue{z-index:3;padding-bottom:var(--xl);align-items:center;gap:var(--sm);color:var(--on-forest-mut);display:flex;position:relative}.scrollcue .line{background:linear-gradient(var(--forest-bright), transparent);width:1px;height:40px;display:inline-block}.js .reveal{opacity:0;transform:translateY(16px)}.js .reveal.in{opacity:1;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:none}.band{padding:var(--5xl) 0;position:relative}.section-head{margin-bottom:var(--2xl)}.section-head .label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);font-size:.75rem;font-weight:500}.belief-list{flex-direction:column;display:flex}.belief{gap:var(--lg);padding:var(--2xl) 0;border-top:1px solid var(--rule);grid-template-columns:48px 1fr;display:grid}.belief:last-child{border-bottom:1px solid var(--rule)}.belief .bidx{font-family:var(--font-mono);color:var(--forest);letter-spacing:.05em;padding-top:.7em;font-size:.8125rem;font-weight:500}.belief p{color:var(--ink);text-wrap:pretty;max-width:32ch;font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.42}.belief p .open{font-style:italic;font-weight:500}.build-grid{gap:var(--lg);grid-template-columns:1fr 1fr;display:grid}.card{border:1px solid var(--rule);padding:var(--xl);min-height:340px;color:inherit;background:#fbfaf6;flex-direction:column;text-decoration:none;transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .35s,box-shadow .35s;display:flex;position:relative}a.card.product{cursor:pointer}.card.product:hover{border-color:var(--forest);transform:translateY(-6px);box-shadow:0 24px 60px -28px #2c6e4980}.card .app-icon{width:68px;height:68px;margin-bottom:var(--xl);border-radius:15px;display:block;box-shadow:0 8px 22px -10px #14281e73}.card .ptop{margin-bottom:var(--lg);justify-content:space-between;align-items:center;display:flex}.card .pidx{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-size:.6875rem;font-weight:500}.card .pname{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin-bottom:var(--sm);font-size:3rem;font-weight:600;line-height:1}.card .ptag{color:var(--forest);margin-bottom:var(--md);font-size:1.2rem;font-style:italic;font-weight:500}.card .pdesc{color:var(--ink);max-width:38ch;font-size:1.0625rem;line-height:1.55}.card .pfoot{padding-top:var(--xl);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.card .pmeta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-muted);font-size:.75rem;font-weight:500}.card .plink{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--forest);align-items:center;gap:6px;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.card .plink .arw{transition:transform .3s}.card.product:hover .plink .arw{transform:translate(4px)}.card.ghost{border-style:dashed;border-color:var(--rule);background:0 0;justify-content:center;align-items:flex-start}.card.ghost .gidx{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--md);font-size:.6875rem;font-weight:500}.card.ghost .gtitle{font-family:var(--font-display);color:var(--ink-muted);font-size:2.25rem;font-weight:600;line-height:1.05}.card.ghost .gsub{font-family:var(--font-mono);color:var(--forest);letter-spacing:.08em;margin-top:var(--md);font-size:.75rem;font-weight:500}.outro{background:linear-gradient(200deg, var(--forest) 0%, #214f37 55%, var(--forest-deep) 100%);color:var(--on-forest);position:relative;overflow:hidden}.outro canvas{z-index:1;width:100%;height:100%;position:absolute;inset:0}.outro>.page{z-index:3;position:relative}.contact{padding-top:var(--5xl);padding-bottom:var(--3xl)}.contact .eyebrow{color:var(--forest-bright);margin-bottom:var(--xl);display:block}.contact .big{font-family:var(--font-display);color:var(--on-forest);margin-bottom:var(--2xl);max-width:18ch;font-size:clamp(1.9rem,5vw,4rem);font-weight:600;line-height:1.1}.contact a.email{font-family:var(--font-display);color:var(--on-forest);border-bottom:1px solid var(--forest-bright);padding-bottom:4px;font-size:clamp(1.5rem,4.5vw,3rem);font-weight:500;text-decoration:none;transition:color .25s,border-color .25s;display:inline-block}.contact a.email:hover{color:var(--forest-bright);border-color:var(--on-forest)}footer.site{z-index:3;padding:var(--2xl) var(--pad-x) var(--xl);border-top:1px solid #ffffff29;position:relative}footer.site .frow{align-items:center;gap:var(--lg);grid-template-columns:1fr auto 1fr;display:grid}footer.site .flegal{margin-top:var(--lg);font-family:var(--font-mono);letter-spacing:.05em;color:var(--on-forest-mut);opacity:.72;gap:2px var(--sm);flex-wrap:wrap;font-size:.7rem;font-style:normal;line-height:1.7;display:flex}footer.site .flegal .fco{letter-spacing:.08em;font-weight:600}footer.site .flegal span:not(:last-child):after{content:"·";margin-left:var(--sm);opacity:.55}footer.site .fmark{font-family:var(--font-display);color:var(--on-forest);font-size:1.4rem;font-weight:600}footer.site .fcenter{font-family:var(--font-mono);letter-spacing:.1em;color:var(--on-forest-mut);text-align:center;font-size:.75rem;font-weight:500}footer.site .fright{font-family:var(--font-mono);letter-spacing:.08em;color:var(--on-forest-mut);text-align:right;font-size:.75rem;font-weight:500}footer.site a{color:var(--on-forest-mut);text-decoration:none;transition:color .2s}footer.site a:hover{color:var(--on-forest)}@media (width<=920px){:root{--pad-x:32px;--5xl:132px;--4xl:104px;--3xl:64px;--2xl:48px}.build-grid{grid-template-columns:1fr}.card{min-height:0}.card.ghost{padding:var(--2xl) var(--xl)}footer.site .frow{text-align:center;justify-items:center;gap:var(--md);grid-template-columns:1fr}footer.site .fcenter,footer.site .fright{text-align:center}footer.site .flegal{text-align:center;flex-direction:column;align-items:center;gap:2px}footer.site .flegal span:not(:last-child):after{content:none}}@media (width<=560px){:root{--pad-x:24px;--5xl:104px}.hero-top{gap:var(--xs);flex-direction:column;align-items:flex-start}.belief{gap:var(--sm);grid-template-columns:1fr}.belief .bidx{padding-top:0}.card .pname{font-size:2.5rem}.contact a.email{word-break:break-word}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .headline .wi{transform:none!important}.js .hero-fade{opacity:1!important}.js .reveal{opacity:1!important;transform:none!important}}
