:root{--night:#22155a;--night-2:#301d80;--violet:#4f2bc2;--violet-ink:#3a1f96;--sun:#ffc21a;--sun-ink:#2a1a00;--paper:#f7f5fc;--surface:#fff;--ink:#1c1636;--muted:#5d5679;--line:#e0daf0;--tint:#efeafd;--error:#b3261e;--display:"Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--body:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--ease-out:cubic-bezier(.2, .8, .2, 1);--dur-micro:.16s;--dur-state:.26s;--dur-enter:.7s;--glass-fill:#1c104e9e;--glass-edge:linear-gradient(145deg, #ffffff57, #ffc21a52 45%, #a68fff47 70%, #ffffff1a);--wrap:1120px;--gutter:clamp(16px, 4vw, 40px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--violet:#a68fff;--violet-ink:#c4b5ff;--paper:#120d24;--surface:#1b1533;--ink:#eeeaf8;--muted:#a6a0c2;--line:#2f2752;--tint:#231b45;--error:#ff8a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased;margin:0}img{display:block}a{color:var(--violet-ink);text-underline-offset:.18em}@media (prefers-color-scheme:dark){a{color:var(--violet-ink)}}:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}h1,h2,h3{font-family:var(--display);margin:0;line-height:1.1}h2{letter-spacing:-.025em;font-size:clamp(2rem,4vw,2.75rem);font-weight:800}h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.button{min-height:48px;font:700 1rem/1 var(--body);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:0 22px;text-decoration:none;transition:transform .12s,background-color .12s;display:inline-flex}.button:active{transform:translateY(1px)}.button-primary{background:var(--sun);color:var(--sun-ink)}.button-primary:hover{background:#ffd257}.button-ghost{color:#fff;box-shadow:inset 0 0 0 2px #ffffff59}.button-ghost:hover{box-shadow:inset 0 0 0 2px #ffffffbf}.button-small{background:var(--violet);color:#fff;min-height:40px;padding:0 18px;font-size:.9375rem}.button-small:hover{background:var(--night-2)}@media (prefers-color-scheme:dark){.button-small{color:#140c33}.button-small:hover{background:var(--violet-ink)}}.topbar-sentinel{width:1px;height:1px;position:absolute;top:0}.topbar{z-index:10;background:var(--night);color:#fff;transition:background-color var(--dur-state) var(--ease-out), box-shadow var(--dur-state) var(--ease-out);position:sticky;top:0}.topbar.is-scrolled{background:var(--glass-fill);-webkit-backdrop-filter:blur(18px)saturate(150%);box-shadow:inset 0 -1px #ffffff1f,0 12px 32px -18px #0a042899}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.topbar.is-scrolled{background:var(--night)}}.topbar-inner{max-width:var(--wrap);padding:14px var(--gutter);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;display:flex}.brand{color:inherit;font:800 1.25rem/1 var(--display);letter-spacing:-.01em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand img{border-radius:9px}.topbar-links{align-items:center;gap:clamp(12px,3vw,28px);display:flex}.topbar-links a{color:#ffffffd1;transition:color var(--dur-micro) var(--ease-out);font-size:.9375rem;font-weight:700;text-decoration:none}.topbar-links a:hover{color:#fff}.topbar-links .topbar-cta{background:var(--sun);color:var(--sun-ink);border-radius:999px;padding:8px 16px}.topbar-links .topbar-cta:hover{color:var(--sun-ink);background:#ffd257}.hero{background:radial-gradient(110% 80% at 85% 0%, #4a2ab8 0%, transparent 60%), linear-gradient(170deg, var(--night) 0%, var(--night-2) 100%);color:#fff;padding-bottom:clamp(56px,8vw,104px)}.hero-body{max-width:var(--wrap);padding:clamp(32px, 6vw, 72px) var(--gutter) 0;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(32px,5vw,72px);margin:0 auto;display:grid}.hero h1{letter-spacing:-.035em;max-width:9ch;font-size:clamp(2.75rem,6.4vw,5.25rem);font-weight:800;line-height:.98}.lede{color:#ffffffd6;max-width:34rem;margin:24px 0 0;font-size:1.1875rem}.hero-actions{margin-top:32px}.hero-buttons{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.hero-link{color:#fff;font-weight:700;text-decoration-color:#fff6}.hero-link:hover{-webkit-text-decoration-color:var(--sun);text-decoration-color:var(--sun)}.hero-meta{color:#ffffffa8;min-height:1.6em;margin:14px 0 0;font-size:.9375rem}@media (prefers-reduced-motion:no-preference){.hero .demo,.hero h1,.hero .lede,.hero .hero-actions{animation:rise var(--dur-enter) var(--ease-out) both}.hero h1{animation-delay:.14s}.hero .lede{animation-delay:.22s}.hero .hero-actions{animation-delay:.3s}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}.demo{--phone-w:clamp(124px, 31cqw, 184px);margin:0;container-type:inline-size}.demo-stage{grid-template-columns:minmax(0, 1fr) var(--phone-w);touch-action:pan-y;align-items:end;display:grid;position:relative}.demo[data-mode=air] .demo-stage{cursor:crosshair;touch-action:none}.demo-computer{margin-right:calc(var(--phone-w) * -.35);grid-area:1/1/auto/2;margin-bottom:8px}.demo-screen{aspect-ratio:16/10;background:linear-gradient(150deg,#efeaff 0%,#d9cffb 100%);border:10px solid #120b32;border-radius:14px;position:relative;overflow:hidden;box-shadow:0 30px 60px -20px #08021e99}.demo-window{color:#1c1636;background:#fff;border-radius:8px;width:62%;height:64%;position:absolute;top:12%;left:10%;overflow:hidden;box-shadow:0 8px 24px -10px #22155a73}.demo-window-bar{border-bottom:1px solid #ece8f7;align-items:center;gap:5px;padding:7px 10px;display:flex}.demo-window-bar span{background:#d8d1ee;border-radius:50%;width:8px;height:8px}.demo-window-bar b{color:#6a6385;margin-left:6px;font-size:.6875rem}.demo-lines{gap:9px;padding:12px 14px;display:grid}.demo-lines i{background:#e5dff6;border-radius:4px;height:7px;display:block}.demo-window{flex-direction:column;display:flex}.demo-typed{overflow-wrap:anywhere;flex:1;align-items:flex-end;min-height:0;margin:0;padding:10px 12px;font-size:clamp(.75rem,1.4vw,.9375rem);line-height:1.45;display:flex;overflow:hidden}.demo-typed-empty{color:#9a93b5}.demo-caret{vertical-align:text-bottom;background:var(--violet);width:2px;height:1.1em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}@media (prefers-color-scheme:dark){.demo-caret{background:#4f2bc2}}@keyframes blink{50%{opacity:0}}.demo-cursor{will-change:transform;transition:opacity var(--dur-state) var(--ease-out);position:absolute;top:0;left:0}.demo[data-mode=keyboard] .demo-cursor{opacity:.35}.demo-cursor svg{fill:var(--sun);stroke:#1c1040;stroke-width:1.6px;stroke-linejoin:round;filter:drop-shadow(0 2px 3px #14083c59);display:block}.demo-cursor:before{content:"";opacity:0;width:30px;height:30px;transition:opacity var(--dur-state) var(--ease-out);background:radial-gradient(circle,#ffc21a8c,#0000 70%);border-radius:50%;position:absolute;top:-14px;left:-14px}.demo[data-mode=air] .demo-cursor:before{opacity:1}.demo-cursor:after{content:"";border:2px solid var(--sun);opacity:0;border-radius:50%;width:26px;height:26px;position:absolute;top:-10px;left:-10px}.demo-cursor.demo-click:after{animation:click-ring .45s var(--ease-out)}@keyframes click-ring{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.5)}}.demo-stand{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);background:linear-gradient(#120b32,#1d1250);width:22%;height:26px;margin:0 auto}.demo-phone{z-index:1;width:var(--phone-w);aspect-ratio:9/18.5;color:#ffffffb3;transition:transform var(--dur-state) var(--ease-out);will-change:transform;background:#0f0a2b;border-radius:26px;flex-direction:column;grid-area:1/2/auto/3;gap:6px;padding:10px 8px;font-size:.625rem;display:flex;position:relative;box-shadow:0 0 0 2px #3b2a86,0 24px 48px -12px #050019b3}.demo-phone-top{align-items:center;gap:5px;padding:2px 6px 0;display:flex}.demo-phone-top b{color:#fff;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;overflow:hidden}.demo-dot{background:#3ddc84;border-radius:50%;flex-shrink:0;width:6px;height:6px}.demo-pad{cursor:crosshair;touch-action:none;transition:background-color var(--dur-micro) var(--ease-out), opacity var(--dur-state) var(--ease-out);background:#241a55;border-radius:14px;flex:1;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.demo-pad[hidden]{display:none}.demo[data-mode=touchpad] .demo-pad{box-shadow:inset 0 0 0 1.5px #ffc21a8c}.demo[data-mode=touchpad] .demo-pad:hover{background:#2b1f66}.demo[data-mode=air] .demo-pad{opacity:.45;cursor:inherit}.demo-finger{opacity:0;pointer-events:none;width:32px;height:32px;transition:opacity var(--dur-micro) var(--ease-out);background:#ffc21a59;border-radius:50%;position:absolute;top:-16px;left:-16px;box-shadow:0 0 0 2px #ffc21ab3}.demo-typebox{flex-direction:column;flex:1;justify-content:flex-end;gap:5px;display:flex}.demo-typebox input{color:#1c1636;width:100%;min-width:0;font:400 .8125rem/1.2 var(--body);box-shadow:0 0 0 2px var(--sun);background:#fff;border:0;border-radius:10px;padding:8px 9px}.demo-typebox input:focus-visible{box-shadow:0 0 0 3px var(--sun);outline:none}.demo-keys{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.demo-keys span{background:#1c1447;border-radius:6px;place-items:center;height:20px;display:grid}.demo-row{grid-template-columns:1fr 26% 26%;gap:5px;height:18%;display:grid}.demo-media{background:#1c1447;border-radius:10px;flex-direction:column;justify-content:center;gap:4px;padding:0 4px;display:flex}.demo-media svg{fill:#fff9;width:13px;height:13px}.demo-media{flex-direction:row;justify-content:space-around;align-items:center}.demo-air{transition:background-color var(--dur-state) var(--ease-out), color var(--dur-state) var(--ease-out);background:#1c1447;border-radius:10px;place-items:center;font-weight:700;display:grid}.demo[data-mode=air] .demo-air{background:var(--sun);color:var(--sun-ink)}.demo-stick{aspect-ratio:1;background:radial-gradient(circle,#3a2b80 0 30%,#1c1447 32%);border-radius:50%;place-self:center;width:100%;max-height:100%}.demo-bottom{gap:4px;display:flex}.demo-bottom span{white-space:nowrap;background:#1c1447;border-radius:6px;flex:1;place-items:center;min-width:0;height:20px;display:grid;overflow:hidden}.demo-bottom .demo-kbd{color:var(--sun);flex:0 0 22px}.demo[data-mode=keyboard] .demo-kbd{background:var(--sun);color:var(--sun-ink)}.demo-controls{justify-items:start;gap:10px;margin-top:20px;display:grid}.demo-modes{background:var(--glass-fill);-webkit-backdrop-filter:blur(14px)saturate(140%);border-radius:999px;padding:4px;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff1a}.demo-modes:before{content:"";border-radius:inherit;background:var(--glass-edge);-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.demo-mode-indicator{background:var(--sun);transition:transform var(--dur-state) var(--ease-out), width var(--dur-state) var(--ease-out);border-radius:999px;position:absolute;top:4px;bottom:4px;left:0}.demo-modes button{z-index:1;color:#ffffffd1;min-height:40px;font:700 .9375rem/1 var(--body);cursor:pointer;transition:color var(--dur-micro) var(--ease-out);background:0 0;border:0;border-radius:999px;padding:0 16px;position:relative}.demo-modes button:hover{color:#fff}.demo-modes button[aria-pressed=true]{color:var(--sun-ink)}.demo-hint{color:#ffffffb3;max-width:36rem;margin:0;font-size:.875rem}.section{padding:clamp(64px,9vw,112px) 0}.section-intro{max-width:40rem;color:var(--muted);margin:16px 0 0;font-size:1.125rem}.features{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(32px,6vw,80px);margin:48px 0 0;display:grid}.gestures table{border-collapse:collapse;width:100%;margin-top:16px}.gestures th,.gestures td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 0}.gestures tr:first-child th,.gestures tr:first-child td{border-top:2px solid var(--ink)}.gestures th{width:52%;padding-right:16px;font-weight:700}.gestures td{color:var(--muted)}.more{gap:24px;margin:0;display:grid}.more dt{font:700 1.1875rem/1.2 var(--display);letter-spacing:-.01em}.more dd{color:var(--muted);margin:6px 0 0}.section-download{background:var(--surface);border-block:1px solid var(--line)}.download-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 32px;display:flex}.release-status{color:var(--muted);max-width:34rem;margin:0}.release-status-error{color:var(--error)}.version-tag{background:var(--tint);color:var(--violet-ink);border-radius:999px;margin-right:10px;padding:2px 10px;font-weight:700;display:inline-block}.download-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(32px,5vw,64px);margin-top:48px;display:grid}.phone-first{order:-1}.group-note{color:var(--muted);margin:6px 0 0;font-size:.9375rem}.download-list{border-top:1px solid var(--line);margin:20px 0 0;padding:0;list-style:none}.download-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 14px;display:flex}.download-row.is-recommended{background:var(--tint);box-shadow:inset 4px 0 0 var(--sun)}.row-text{gap:2px;min-width:0;display:grid}.row-name{flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;display:flex}.row-badge{background:var(--sun);color:var(--sun-ink);border-radius:999px;padding:1px 8px;font-size:.75rem}.row-detail{color:var(--muted);font-size:.9375rem}.row-file:before{content:", "}.row-state{color:var(--muted);flex-shrink:0;font-size:.9375rem}.row-soon{border:1.5px dashed var(--line);color:var(--violet-ink);border-radius:999px;padding:6px 12px;font-weight:700}.is-soon .row-name{color:var(--muted)}.apk-help{color:var(--muted);margin-top:20px;font-size:.9375rem}.apk-help summary{cursor:pointer;color:var(--violet-ink);font-weight:700}.apk-help ol{margin:12px 0 0;padding-left:1.25rem}.apk-help li+li{margin-top:4px}.apk-help p{margin:12px 0 0}.setup{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:clamp(40px,6vw,80px);display:grid}.steps{counter-reset:step;gap:28px;margin:40px 0 0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;grid-template-columns:48px minmax(0,1fr);column-gap:16px;display:grid}.steps li:before{content:counter(step);background:var(--violet);color:#fff;width:44px;height:44px;font:800 1.25rem/1 var(--display);border-radius:50%;grid-row:span 2;place-items:center;display:grid}@media (prefers-color-scheme:dark){.steps li:before{color:#140c33}}.steps h3{align-self:center}.steps p{color:var(--muted);margin:6px 0 0}.connect{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(20px,3vw,32px)}.connect table{border-collapse:collapse;width:100%;margin-top:16px;font-size:.9375rem}.connect th,.connect td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 8px}.connect thead th{font-family:var(--display);font-size:1rem}.connect tbody th{color:var(--muted);width:32%;font-weight:400}.connect-note{color:var(--muted);margin:16px 0 0;font-size:.875rem}.footer{border-top:1px solid var(--line);padding:32px 0 40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-links{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}.footer-badge{border-radius:8px;display:block}.brand-small{color:var(--ink);font-size:1rem}.brand-small img{border-radius:6px}@media (width<=900px){.hero-body,.setup,.download-groups,.features{grid-template-columns:minmax(0,1fr)}.demo{max-width:560px}}@media (width<=600px){.topbar-links a:not(.topbar-cta){display:none}.download-row{padding-inline:10px}.demo-bottom span:nth-child(4){display:none}.demo-modes button{padding:0 12px;font-size:.875rem}}.hint-touch{display:none}@media (hover:none){.hint-hover{display:none}.hint-touch{display:inline}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
