.sawa{--accent: #7c5cf6;--accent-press: #6b4ae8;--on-accent: #ffffff;--r-sm: 8px;--r-md: 11px;--r-lg: 16px;--r-xl: 22px;--ease: cubic-bezier(.22, .7, .3, 1);--font-ui: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:var(--text)}.sawa,.sawa[data-theme=dark]{--bg: #0e0e11;--bg-grad: radial-gradient(120% 80% at 50% -10%, #18181f 0%, #0e0e11 60%);--surface: #16161a;--surface-2: #1c1c22;--elevated: #24242b;--border: #2a2a31;--border-soft: #1f1f25;--hover: rgba(255, 255, 255, .04);--text: #ececef;--text-2: #b6b6be;--muted: #87878f;--faint: #5b5b64;--accent-press: color-mix(in oklab, var(--accent), #000 15%);--accent-soft: color-mix(in srgb, var(--accent) 16%, transparent);--accent-line: color-mix(in srgb, var(--accent) 38%, transparent);--accent-text: color-mix(in oklab, var(--accent), #fff 34%);--good: #4ed08a;--good-soft: rgba(78, 208, 138, .14);--warn: #e0a458;--shadow-lg: 0 24px 60px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 8px 28px rgba(0, 0, 0, .4);--term-bg: #0b0b0e;--diff-add: rgba(78, 208, 138, .13);--diff-del: rgba(224, 107, 107, .12);--scrim: rgba(0, 0, 0, .6);--c-kw: #b79cff;--c-fn: #82aaff;--c-str: #9fd68b;--c-num: #f2a06b;--c-com: #5b5b64;--c-var: #e4e4ea;--c-type: #ffcb8b;--c-punct: #8a8a93}.sawa[data-theme=light]{--bg: #f4f3f0;--bg-grad: radial-gradient(120% 80% at 50% -10%, #ffffff 0%, #f1f0ec 70%);--surface: #ffffff;--surface-2: #fbfaf8;--elevated: #ffffff;--border: #e5e3dd;--border-soft: #edebe5;--hover: rgba(0, 0, 0, .03);--text: #232220;--text-2: #54534e;--muted: #76756e;--faint: #a8a79f;--accent-press: color-mix(in oklab, var(--accent), #000 12%);--accent-soft: color-mix(in srgb, var(--accent) 13%, #fff);--accent-line: color-mix(in srgb, var(--accent) 36%, #fff);--accent-text: color-mix(in oklab, var(--accent), #000 10%);--good: #1f9d5e;--good-soft: #e1f4ea;--warn: #c2862e;--shadow-lg: 0 24px 60px rgba(30, 28, 22, .16), 0 2px 8px rgba(30, 28, 22, .06);--shadow-md: 0 8px 28px rgba(30, 28, 22, .1);--term-bg: #14141a;--diff-add: #e4f5ec;--diff-del: #fbe9e7;--scrim: rgba(30, 28, 22, .32);--c-kw: #8a3fd1;--c-fn: #2d6bd8;--c-str: #2c8c52;--c-num: #c2570b;--c-com: #9a9890;--c-var: #2b2a27;--c-type: #b07a18;--c-punct: #8c8b84}.sawa *{box-sizing:border-box}.sawa,.sawa *{-webkit-tap-highlight-color:transparent}.sawa .mono{font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-ui);font-weight:600;border:none;cursor:pointer;height:44px;padding:0 18px;border-radius:var(--r-md);font-size:15px;white-space:nowrap;transition:transform .12s var(--ease),box-shadow .15s,opacity .15s;color:var(--text);background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 2px #0003,0 6px 18px var(--accent-soft)}.btn-primary:hover{background:var(--accent-press)}.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text)}.btn-soft{background:var(--elevated);border:1px solid var(--border-soft)}.btn-ghost{background:transparent;color:var(--muted)}.btn-sm{height:34px;padding:0 13px;font-size:13px;border-radius:var(--r-sm)}.btn-icon{width:40px;padding:0}.btn-icon.btn-sm{width:34px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;height:28px;padding:0 11px;border-radius:8px;background:var(--elevated);color:var(--text-2);border:1px solid var(--border-soft);white-space:nowrap}.chip-sm{height:24px;font-size:11.5px;padding:0 9px}.chip-accent{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-line)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.dot{width:7px;height:7px;border-radius:5px;flex-shrink:0}.dot-on{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}.code{font-family:var(--font-mono);font-size:12.5px;line-height:1.65}.code .ln{color:var(--faint);-webkit-user-select:none;user-select:none}.tk-kw{color:var(--c-kw)}.tk-fn{color:var(--c-fn)}.tk-str{color:var(--c-str)}.tk-num{color:var(--c-num)}.tk-com{color:var(--c-com);font-style:italic}.tk-var{color:var(--c-var)}.tk-type{color:var(--c-type)}.tk-p{color:var(--c-punct)}html,body{margin:0;padding:0;height:100%}body{overflow:hidden}#root{height:100vh}.lp-scroll{height:100vh;overflow-y:auto;background:var(--bg);scroll-behavior:smooth}.lp-wrap{width:100%;max-width:1140px;margin:0 auto;padding-left:28px;padding-right:28px}.lp-section{padding:96px 0}.lp-h1{font-size:clamp(34px,5.2vw,58px);font-weight:800;line-height:1.04;letter-spacing:-1.4px;margin:20px 0 0;max-width:14ch}.lp-h2{font-size:clamp(26px,3.4vw,40px);font-weight:800;line-height:1.08;letter-spacing:-1px;margin:14px 0 0}.lp-sub{font-size:clamp(15px,1.5vw,18px);line-height:1.55;color:var(--muted);max-width:52ch;margin:18px 0 28px}.lp-hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding-top:72px;padding-bottom:96px}.lp-install{margin-top:26px;max-width:400px;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:13px 15px;color:var(--text-2)}.lp-devrow{display:flex;align-items:flex-end;justify-content:center;gap:clamp(20px,5vw,72px)}.lp-feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.lp-feat{padding:26px}.lp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.lp-step{padding:28px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg)}.lp-cmd{font-size:12.5px;background:var(--term-bg);color:#dcdcd4eb;border-radius:9px;padding:11px 13px;overflow-x:auto;white-space:nowrap}.lp-cta{position:relative;border-radius:26px;border:1px solid var(--border);background:var(--surface);padding:72px 32px;overflow:hidden}@media(max-width:900px){.lp-section{padding:72px 0}.lp-hero{grid-template-columns:1fr;gap:40px;padding-top:48px}.lp-herovis{order:2}.lp-feat-grid{grid-template-columns:1fr 1fr}.lp-steps{grid-template-columns:1fr}.lp-navlinks{display:none!important}.lp-devrow{flex-wrap:wrap;gap:32px}}@media(max-width:560px){.lp-wrap{padding-left:18px;padding-right:18px}.lp-feat-grid{grid-template-columns:1fr}.lp-star,.lp-heroai{display:none!important}}
