:root{--bonsai-bg:#09090b;--bonsai-fg:#fafafa;--bonsai-muted:#a1a1aa;--bonsai-muted-strong:#86868f;--bonsai-border:#27272a;--bonsai-border-subtle:#1c1c1f;--bonsai-surface:#111113;--bonsai-surface-raised:rgba(17,17,19,0.84);--bonsai-accent:#4ade80;--bonsai-accent-strong:#1a7f5a;--bonsai-accent-hover:#1f9668;--bonsai-button-bg:linear-gradient(180deg,#22a06f,#1a7f5a);--bonsai-button-bg-hover:linear-gradient(180deg,#28b77f,#1f9668);--bonsai-radius-sm:0.5rem;--bonsai-radius-md:0.75rem;--bonsai-radius-lg:0.875rem}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--font-geist-sans),system-ui,sans-serif}html{scroll-behavior:smooth;overflow-x:hidden}body[data-landing=true]{background-color:#09090b;color:#fafafa;overflow-x:hidden;max-width:100%}.analytics-consent{position:fixed;right:1rem;bottom:1rem;z-index:80;width:min(28rem,calc(100vw - 2rem));padding:1rem;border:1px solid var(--bonsai-border);border-radius:var(--bonsai-radius-md);background:rgba(17,17,19,.96);color:var(--bonsai-fg);box-shadow:0 20px 70px rgba(0,0,0,.38);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.analytics-consent p{margin:0;color:var(--bonsai-muted);font-size:.875rem;line-height:1.5}.analytics-consent-actions{display:flex;gap:.625rem;justify-content:flex-end;margin-top:.875rem}.analytics-consent-button{min-height:2.5rem;padding:0 .875rem;border:none;border-radius:var(--bonsai-radius-sm);background:var(--bonsai-button-bg);color:#ffffff;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.analytics-consent-button:hover{background:var(--bonsai-button-bg-hover)}.analytics-consent-button--secondary{border:1px solid var(--bonsai-border);background:var(--bonsai-surface);color:var(--bonsai-fg)}.analytics-consent-button--secondary:hover{border-color:rgba(74,222,128,.34)}.analytics-consent-button:focus-visible{outline:2px solid var(--bonsai-accent);outline-offset:2px}body[data-landing=true] .analytics-consent{left:50%;right:auto;bottom:.75rem;display:flex;width:min(64rem,calc(100vw - 2rem));align-items:center;gap:1rem;padding:.75rem;transform:translateX(-50%)}body[data-landing=true] .analytics-consent p{flex:1 1;font-size:.8125rem}body[data-landing=true] .analytics-consent-actions{flex-shrink:0;margin-top:0}@media (max-width:520px){.analytics-consent{right:.75rem;bottom:.75rem;width:calc(100vw - 1.5rem)}.analytics-consent-actions{flex-direction:column-reverse}body[data-landing=true] .analytics-consent{left:.75rem;right:.75rem;bottom:.75rem;display:block;width:auto;transform:none}body[data-landing=true] .analytics-consent-actions{margin-top:.75rem}}.landing-logo{display:inline-flex;align-items:center;gap:.6875rem;text-decoration:none;color:inherit}.landing-logo-mark{position:relative;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--bonsai-radius-sm);border:1px solid var(--bonsai-border);background:radial-gradient(circle at 50% 26%,rgba(140,255,184,.16),transparent 48%),linear-gradient(180deg,#141416,#0d0d0f);color:var(--bonsai-accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 24px rgba(26,127,90,.12);flex-shrink:0}.landing-logo-svg{display:block;filter:drop-shadow(0 0 8px rgba(74,222,128,.22))}.landing-logo-text{display:flex;flex-direction:column;line-height:1}.landing-logo-name{font-size:.9375rem;font-weight:600;letter-spacing:0;color:var(--bonsai-fg)}.landing-logo-sub{margin-top:.125rem;font-size:.6875rem;font-weight:500;letter-spacing:.04em;color:#71717a}.app-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background-color:var(--bonsai-bg);color:var(--bonsai-fg);text-align:center}.app-error h2{margin:0;font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.app-error p{margin:.625rem 0 0;max-width:24rem;color:var(--bonsai-muted);font-size:.9375rem;line-height:1.6}.app-error button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;margin-top:1.25rem;padding:0 1.125rem;border:none;border-radius:var(--bonsai-radius-sm);background:var(--bonsai-button-bg);color:#ffffff;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.app-error button:hover{background:var(--bonsai-button-bg-hover)}.app-error button:focus-visible{outline:2px solid var(--bonsai-accent);outline-offset:2px}