.skip{position:absolute;left:-9999px;top:0;z-index:100;padding:12px 20px;background:var(--accent);color:var(--accent-ink);font-weight:600;border-radius:0 0 10px}.skip:focus{left:0}#main:focus{outline:none}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-textbg{fill:#fff}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{color-scheme:light;--bg: light-dark(#f7f9fc, #05070f);--bg-soft: light-dark(#eef2f8, #0a0e1c);--card: light-dark(#ffffff, #0d1322);--card-hi: light-dark(#ffffff, #121a2c);--line: light-dark(#dfe5ef, #1c2740);--line-hi: light-dark(#c4cede, #2b3a5c);--fg: light-dark(#0b1020, #e9eefb);--fg-dim: light-dark(#4b5670, #94a2c0);--fg-faint: light-dark(#75809a, #66748f);--accent: light-dark(#0b7f9c, #2ad4f0);--accent-2: light-dark(#7c3fbf, #a367ea);--accent-ink: light-dark(#ffffff, #041018);--accent-soft: light-dark(rgba(12, 127, 156, .1), rgba(42, 212, 240, .13));--glow: light-dark(rgba(12, 127, 156, .14), rgba(42, 212, 240, .18));--grad: linear-gradient(100deg, var(--accent), var(--accent-2));--radius: 14px;--radius-lg: 22px;--maxw: 1160px;--ease: cubic-bezier(.2, .7, .2, 1);--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4{margin:0;line-height:1.12;letter-spacing:-.025em;font-weight:640;text-wrap:balance}p{margin:0}a{color:inherit;text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}code{font-family:var(--mono);font-size:.88em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent);color:var(--accent-ink)}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 28px}.section{padding:116px 0;border-top:1px solid var(--line)}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint)}.eyebrow:before{content:"";width:18px;height:1px;background:var(--accent)}.h2{font-size:clamp(30px,4.4vw,48px);margin:20px 0 0;max-width:18ch}.h3{font-size:clamp(19px,2.2vw,22px);letter-spacing:-.015em}.lead{margin-top:18px;max-width:62ch;color:var(--fg-dim);font-size:clamp(16px,1.7vw,18px)}.section-head{margin-bottom:56px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:48px;padding:0 24px;border-radius:999px;border:1px solid transparent;font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:transform .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--grad);color:#fff}.btn--primary:hover{filter:brightness(1.08)}.btn--ghost{border-color:var(--line-hi);color:var(--fg);background:transparent}.btn--ghost:hover{border-color:var(--fg-dim);background:var(--card)}.btn--sm{height:40px;padding:0 18px;font-size:14px}.btn svg{width:16px;height:16px}.header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s var(--ease),background .25s var(--ease)}.header[data-stuck="1"]{border-bottom-color:var(--line)}.header__inner{display:flex;align-items:center;gap:32px;height:68px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:680;font-size:18px;letter-spacing:-.03em}.brand img{width:28px;height:28px;display:block}.nav{display:flex;align-items:center;gap:26px;margin-left:4px;color:var(--fg-dim);font-size:15px}.nav a{transition:color .2s var(--ease)}.nav a:hover,.nav a[aria-current=page]{color:var(--fg)}.navmenu{position:relative}.navmenu__trigger{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;transition:color .2s var(--ease)}.navmenu__trigger:hover{color:var(--fg)}.navmenu__panel{position:absolute;top:calc(100% + 14px);left:50%;z-index:40;display:none;gap:24px;padding:16px 18px;border:1px solid var(--line-hi);border-radius:14px;background:var(--card);box-shadow:0 24px 60px -34px #000000bf;transform:translate(-50%)}.navmenu[data-open="1"] .navmenu__panel,.navmenu:focus-within .navmenu__panel{display:flex}.navmenu__group{display:flex;flex-direction:column;gap:6px;min-width:152px}.navmenu__group-title{margin-bottom:2px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--fg-faint)}.navmenu__item{display:flex;align-items:baseline;gap:8px;margin:0 -8px;padding:6px 8px;border-radius:8px;color:var(--fg-dim)}.navmenu__item:hover{background:var(--card-hi);color:var(--fg)}.navmenu__item-name{font-size:14px}.navmenu__item-note{font-size:11px;color:var(--fg-faint)}.header__end{display:flex;align-items:center;gap:14px;margin-left:auto}.lang{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft)}.lang button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--fg-faint);font:inherit;font-size:13px;font-weight:560;padding:3px 11px;border-radius:999px;cursor:pointer;transition:color .2s var(--ease),background .2s var(--ease)}.lang button[aria-pressed=true]{background:var(--card);color:var(--fg);box-shadow:0 1px 2px #00000040}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--bg-soft);color:var(--fg-dim);cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease)}.iconbtn:hover{color:var(--fg);border-color:var(--line-hi)}.iconbtn svg{width:16px;height:16px}.nav-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--fg);cursor:pointer}.nav-toggle svg{width:18px;height:18px}.tour{display:flex;flex-direction:column;gap:18px}.tour__tabs{display:flex;flex-wrap:wrap;gap:8px}.tour__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft);color:var(--fg-dim);font:inherit;font-size:13px;font-weight:560;padding:7px 14px;cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}.tour__tab:hover{color:var(--fg);border-color:var(--line-hi)}.tour__tab[aria-pressed=true]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.tour__frame{margin:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);overflow:hidden;box-shadow:0 40px 90px -50px #000000d9}.tour__shot{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.tour__shot img{display:block;width:100%;height:auto;aspect-ratio:3582 / 1834;object-fit:cover}.tour__caption{display:flex;align-items:baseline;gap:16px;padding:14px 18px;border-top:1px solid var(--line);color:var(--fg-dim);font-size:14px}.tour__hint{margin-left:auto;color:var(--fg-faint);font-size:12px;white-space:nowrap}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:32px;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.lightbox__figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px}.lightbox__figure img{display:block;width:auto;height:auto;max-width:min(1400px,88vw);max-height:82vh;border-radius:10px;box-shadow:0 30px 80px -30px #000000e6}.lightbox__figure figcaption{color:var(--fg-dim);font-size:13px}.lightbox__btn{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--fg-dim);cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease)}.lightbox__btn:hover{color:var(--fg);border-color:var(--line-hi)}.lightbox__btn svg{width:18px;height:18px}.lightbox__close{top:20px;right:20px}.lightbox__nav{top:50%;transform:translateY(-50%)}.lightbox__nav--prev{left:20px}.lightbox__nav--prev svg{transform:rotate(180deg)}.lightbox__nav--next{right:20px}.hero{position:relative;padding:108px 0 0;overflow:hidden}.field{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;gap:clamp(10px,1.6vw,22px);padding:0 2vw;-webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 34%,#000 12%,transparent 78%);mask-image:radial-gradient(ellipse 78% 62% at 50% 34%,#000 12%,transparent 78%);opacity:.4;pointer-events:none}.field i{flex:1 1 0;max-width:26px;height:100%;border-radius:999px;background:color-mix(in oklab,var(--accent) var(--p),var(--accent-2));opacity:var(--o);transform:scaleY(calc(var(--h) * .34));transform-origin:50% 100%;animation:string-wave 4.6s cubic-bezier(.45,0,.55,1) infinite alternate;animation-delay:calc(var(--i) * -.14s)}@keyframes string-wave{0%{transform:scaleY(calc(var(--h) * .24))}to{transform:scaleY(var(--h))}}.hero:before{content:"";position:absolute;inset:-20% -10% auto;height:620px;background:radial-gradient(ellipse 46% 44% at 50% 24%,var(--glow),transparent 70%);filter:blur(26px);pointer-events:none}.hero__inner{position:relative;text-align:center;z-index:1}.hero .h1{font-size:clamp(42px,8.2vw,92px);letter-spacing:-.045em;margin:22px auto 0;max-width:15ch}@supports ((-webkit-background-clip: text) or (background-clip: text)){.hero .h1{background:linear-gradient(180deg,var(--fg) 38%,var(--fg-dim) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}}.hero .lead{margin:26px auto 0;max-width:66ch}.hero__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:38px}.term{position:relative;margin:76px auto 0;max-width:940px;text-align:left;border:1px solid var(--line-hi);border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(180deg,var(--card-hi),var(--card));box-shadow:0 40px 90px -50px #000000d9;overflow:hidden}.link__demo{max-width:940px;margin:34px auto 0}.link__demo .term{margin:0}.hero--link{padding-top:96px}.hero--link .h1{font-size:clamp(34px,5.4vw,64px);max-width:24ch}.link__more{margin:12px 0 0;text-align:center}.link__more-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600}.term__bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}.term__dots{display:flex;gap:6px}.term__dots i{width:10px;height:10px;border-radius:50%;background:var(--line-hi)}.grid{display:grid;gap:20px}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}.card{position:relative;padding:30px 28px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 60%,var(--bg)));transition:border-color .25s var(--ease),transform .25s var(--ease)}.card:hover{border-color:var(--line-hi);transform:translateY(-2px)}.card h3{margin-top:18px}.card p{margin-top:12px;color:var(--fg-dim);font-size:15px}.why-card__k{margin-top:14px;font-size:clamp(24px,2.6vw,30px);font-weight:700;letter-spacing:-.03em;line-height:1.15}.why-card__q{margin-top:8px;color:var(--fg-dim);font-size:15px;line-height:1.5}.why-card__a{display:flex;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);color:var(--fg);font-size:14.5px;font-weight:550}.why-card__a svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--accent)}.pillar__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--line-hi);border-radius:14px;background:var(--accent-soft);color:var(--accent)}.pillar__icon svg{width:23px;height:23px}.pillar__icon--1{color:light-dark(#0b7f9c,#2ad4f0);border-color:light-dark(rgba(11,127,156,.28),rgba(42,212,240,.3));background:light-dark(rgba(11,127,156,.08),rgba(42,212,240,.12))}.pillar__icon--2{color:light-dark(#1f7a4d,#46d39a);border-color:light-dark(rgba(31,122,77,.28),rgba(70,211,154,.3));background:light-dark(rgba(31,122,77,.08),rgba(70,211,154,.12))}.pillar__icon--3{color:light-dark(#7c3fbf,#a367ea);border-color:light-dark(rgba(124,63,191,.28),rgba(163,103,234,.3));background:light-dark(rgba(124,63,191,.08),rgba(163,103,234,.12))}.pillar__icon--4{color:light-dark(#2f6fd0,#6ea8ff);border-color:light-dark(rgba(47,111,208,.28),rgba(110,168,255,.3));background:light-dark(rgba(47,111,208,.08),rgba(110,168,255,.12))}.pillar__icon--5{color:light-dark(#8a6a1a,#e6bb57);border-color:light-dark(rgba(138,106,26,.28),rgba(230,187,87,.3));background:light-dark(rgba(138,106,26,.08),rgba(230,187,87,.12))}.pillar__icon--6{color:light-dark(#b3446f,#f07aa6);border-color:light-dark(rgba(179,68,111,.28),rgba(240,122,166,.3));background:light-dark(rgba(179,68,111,.08),rgba(240,122,166,.12))}.step__n{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--accent)}.step__body{color:var(--fg-dim);font-size:15px}.code{display:block;margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);color:var(--fg);font-family:var(--mono);font-size:12.5px;line-height:1.6;overflow-x:auto;white-space:pre}.store-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:24px 26px}.store-group h3{font-size:15px;letter-spacing:0;color:var(--fg)}.store-group__count{margin-left:8px;font-family:var(--mono);font-size:12px;font-weight:400;color:var(--fg-faint)}.tagcloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{padding:5px 11px;border:1px solid var(--line);border-radius:7px;background:var(--bg-soft);font-family:var(--mono);font-size:12px;color:var(--fg-dim)}.note{margin-top:34px;color:var(--fg-faint);font-size:14.5px;max-width:74ch}.faq{display:grid;gap:0;border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{display:flex;align-items:center;gap:16px;padding:22px 4px;cursor:pointer;list-style:none;font-size:17px;font-weight:580;letter-spacing:-.015em;transition:color .2s var(--ease)}.faq summary::-webkit-details-marker{display:none}.faq summary:hover{color:var(--accent)}.faq summary:after{content:"";margin-left:auto;width:9px;height:9px;flex:none;border-right:1.5px solid var(--fg-faint);border-bottom:1.5px solid var(--fg-faint);transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease)}.faq details[open] summary:after{transform:rotate(-135deg) translateY(-2px)}.faq p{padding:0 44px 26px 4px;color:var(--fg-dim);max-width:78ch}.cta{position:relative;padding:100px 0;text-align:center;border-top:1px solid var(--line);overflow:hidden}.cta .field{opacity:.3;-webkit-mask-image:radial-gradient(ellipse 70% 90% at 50% 60%,#000 10%,transparent 74%);mask-image:radial-gradient(ellipse 70% 90% at 50% 60%,#000 10%,transparent 74%)}.cta:before{content:"";position:absolute;left:50%;bottom:-320px;width:820px;height:560px;transform:translate(-50%);background:radial-gradient(ellipse at center,var(--glow),transparent 60%);filter:blur(24px);pointer-events:none}.cta .wrap{position:relative;z-index:1}.cta h2{position:relative;font-size:clamp(28px,4.6vw,46px);max-width:20ch;margin:0 auto}.cta p{position:relative;margin:20px auto 0;max-width:56ch;color:var(--fg-dim)}.cta__actions{position:relative;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}.doc{padding:96px 0 116px}.doc__lede{max-width:68ch;margin-top:20px;color:var(--fg-dim);font-size:17px}.doc section{margin-top:68px}.doc h2{font-size:clamp(22px,3vw,28px);letter-spacing:-.02em;padding-bottom:14px;border-bottom:1px solid var(--line)}.doc p{margin-top:14px;color:var(--fg-dim);max-width:76ch}.term-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}.deflist{display:grid;gap:2px;margin:28px 0 0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--line)}.deflist>div{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:20px 24px;background:var(--bg)}.deflist dt{font-family:var(--mono);font-size:13px;color:var(--accent);font-weight:500}.deflist dd{margin:0;color:var(--fg-dim);font-size:15px}.footnote{margin-top:40px;padding:18px 22px;border:1px dashed var(--line-hi);border-radius:var(--radius);color:var(--fg-dim);font-size:15px}.footnote a{color:var(--fg);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-hi)}.footnote a:hover{color:var(--accent)}.footer{border-top:1px solid var(--line);background:var(--bg-soft);padding:64px 0 34px}.footer__grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:40px}.footer__blurb{margin-top:18px;max-width:38ch;color:var(--fg-faint);font-size:14.5px}.footer h4{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg)}.footer li+li{margin-top:11px}.footer li a{color:var(--fg-faint);font-size:14.5px;transition:color .2s var(--ease)}.footer li a:hover{color:var(--accent)}.footer__bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:52px;padding-top:26px;border-top:1px solid var(--line);color:var(--fg-faint);font-size:13.5px}.contact{margin-top:52px;padding:28px 30px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(120deg,var(--accent-soft),transparent 62%),var(--card)}.contact h3{font-size:20px}.contact p{margin:10px 0 20px;max-width:60ch;color:var(--fg-dim);font-size:15px}.contact__todo{display:inline-block;padding:5px 12px;border:1px dashed var(--line-hi);border-radius:999px;color:var(--fg-faint);font-family:var(--mono);font-size:12px}.footer__bar nav{display:flex;gap:20px;margin-left:auto}.footer__bar a:hover{color:var(--fg)}[data-shown]{transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal{opacity:0;transform:translateY(14px)}[data-shown="1"].reveal{opacity:1;transform:none}@media (max-width: 1000px){.footer__grid{grid-template-columns:1fr 1fr}}@media (max-width: 860px){.wrap{padding:0 20px}.section{padding:78px 0}.hero{padding-top:68px}.grid--3,.grid--4,.term-grid{grid-template-columns:repeat(2,1fr)}.deflist>div{grid-template-columns:1fr;gap:8px}.nav,.header__end{display:none}.nav-toggle{display:inline-flex;margin-left:auto}.header__inner{flex-wrap:wrap;height:auto;padding:14px 0}.header[data-open="1"] .nav{display:flex;order:3;width:100%;flex-direction:column;align-items:flex-start;gap:0;margin:12px 0 0;padding-top:6px;border-top:1px solid var(--line);font-size:17px}.header[data-open="1"] .nav a{width:100%;padding:12px 0}.header[data-open="1"] .navmenu__panel{position:static;display:flex;flex-direction:column;gap:14px;padding:4px 0 0;border:0;background:none;box-shadow:none;transform:none}.header[data-open="1"] .navmenu__item{width:100%;margin:0;padding:8px 0}.header[data-open="1"] .header__end{display:flex;order:4;width:100%;margin:14px 0 4px}.header[data-open="1"] .header__end .btn{display:inline-flex;flex:1}.tour__tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.tour__tabs::-webkit-scrollbar{display:none}.tour__tab{flex:none}.tour__caption{flex-wrap:wrap;gap:6px;font-size:13px}.tour__hint{margin-left:0;white-space:normal}.lightbox{padding:0}.lightbox__figure{padding-bottom:64px}.lightbox__figure img{max-width:100vw;max-height:72vh;border-radius:0}.lightbox__nav{top:auto;bottom:16px;transform:none}.lightbox__nav--prev{left:calc(50% - 52px)}.lightbox__nav--next{right:calc(50% - 52px)}}@media (max-width: 640px){.grid--2,.grid--3,.grid--4,.term-grid,.footer__grid{grid-template-columns:1fr}.term{margin-top:52px}.hero__actions .btn,.cta__actions .btn{width:100%}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal,[data-shown]{transition:none!important}.reveal{opacity:1;transform:none}.field i{animation:none;transform:scaleY(var(--h))}.btn:hover,.card:hover{transform:none}}.why-card__top{display:flex;align-items:center}.why-card__icon{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border:1px solid var(--line-hi);border-radius:16px;background:var(--accent-soft);color:var(--accent)}.why-card__icon svg{width:26px;height:26px}.why-card__icon--privacy{color:light-dark(#0b7f9c,#2ad4f0);border-color:light-dark(rgba(11,127,156,.28),rgba(42,212,240,.3));background:light-dark(rgba(11,127,156,.08),rgba(42,212,240,.12))}.why-card__icon--cost{color:light-dark(#8a6a1a,#e6bb57);border-color:light-dark(rgba(138,106,26,.28),rgba(230,187,87,.3));background:light-dark(rgba(138,106,26,.08),rgba(230,187,87,.12))}.why-card__icon--autonomy{color:light-dark(#7c3fbf,#a367ea);border-color:light-dark(rgba(124,63,191,.28),rgba(163,103,234,.3));background:light-dark(rgba(124,63,191,.08),rgba(163,103,234,.12))}.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}.flow__step{position:relative}.flow__title{margin-top:16px}.flow__step:not(:last-child):after{content:"";position:absolute;top:36px;right:-40px;width:36px;height:2px;background:var(--line-hi)}.flow__step:not(:last-child):before{content:"";position:absolute;top:36px;left:100%;width:8px;height:8px;margin-left:8px;border-radius:50%;background:var(--accent);animation:flow-x 1.8s ease-in-out infinite}@keyframes flow-x{0%{transform:translateY(-50%);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translate(24px,-50%);opacity:0}}@media (max-width: 860px){.flow{grid-template-columns:1fr;gap:20px}.flow__step:not(:last-child):after,.flow__step:not(:last-child):before{display:none}}@media (prefers-reduced-motion: reduce){.flow__step:before{display:none}}.demo__body{display:grid;grid-template-columns:56px minmax(0,1fr) 260px;min-height:364px}.demo__rail{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 0;border-right:1px solid var(--line);background:var(--bg-soft)}.demo__railicon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--fg-faint)}.demo__railicon svg{width:17px;height:17px}.demo__railicon.is-on{background:var(--accent-soft);color:var(--accent)}.chat__col{display:flex;flex-direction:column;min-width:0}.chat__body{flex:1 1 auto;display:flex;flex-direction:column;gap:12px;padding:18px 20px;overflow-y:auto;font-family:var(--sans);font-size:14px;line-height:1.6}.chat__composer{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line);background:var(--card)}.cmp__btn,.cmp__send{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1px solid var(--line);border-radius:9px;background:var(--card-hi);color:var(--fg-dim);cursor:pointer}.cmp__btn svg,.cmp__send svg{width:15px;height:15px}.cmp__field{flex:1;min-width:0;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg-soft);color:var(--fg-faint);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmp__send{border-color:transparent;background:var(--grad);color:var(--accent-ink)}.chat__row{display:flex;gap:10px;align-items:flex-start;max-width:92%}.chat__avatar{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#64748b;color:#fff}.chat__avatar svg{width:16px;height:16px}.chat__avatar--alice{background:#5b8cff}.chat__avatar--bob{background:#a367ea}.chat__avatar--mia{background:#ef6aa8}.chat__avatar--dad{background:#2fb885}.chat__avatar--duty{background:#e0973a}.chat__row--agent .chat__avatar{background:var(--grad);color:var(--accent-ink)}.chat__avatar .av-eye{fill:var(--card-hi)}.chat__bubble{display:block;padding:9px 14px;border:1px solid var(--line);border-radius:12px 12px 12px 4px;background:var(--card-hi)}.chat__row--agent .chat__bubble{border-color:var(--line-hi);background:var(--accent-soft)}.chat__name{display:block;margin-bottom:2px;font-size:11px;letter-spacing:.02em;color:var(--fg-faint)}.chat__text{display:block}.chat__link{display:inline-flex;align-items:center;gap:8px;margin-top:9px;padding:7px 11px;border:1px solid var(--line-hi);border-radius:9px;background:var(--card);font-family:var(--mono);font-size:12px;color:var(--accent)}.chat__linkicon{width:13px;height:13px;flex:0 0 13px}.chat__linknote{color:var(--fg-faint);font-family:var(--sans)}.demo__preview{display:flex;flex-direction:column;gap:12px;padding:16px;border-left:1px solid var(--line);background:var(--bg-soft);font-family:var(--sans)}.demo__ptitle{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--fg-dim)}.pv__live{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--accent-2)}.demo__bar{gap:12px}.demo__hosts{display:flex;gap:6px}.demo__host{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--fg-faint);font:inherit;font-size:12px;white-space:nowrap;cursor:pointer}.demo__hosticon{flex:0 0 15px;width:15px;height:15px}.demo__host.is-on{border-color:var(--line-hi);background:var(--card-hi);color:var(--fg)}.pv__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pv__stat{display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--card)}.pv__staticon{width:14px;height:14px;color:var(--accent)}.pv__stat b{font-size:13px;color:var(--fg)}.pv__stat i{font-size:10px;font-style:normal;color:var(--fg-faint)}.pv__chart{display:flex;align-items:flex-end;gap:5px;height:84px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.pv__chart span{flex:1;border-radius:4px 4px 2px 2px;background:var(--grad);opacity:.85}.pv__list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.pv__row{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--card);font-size:12px}.pv__rowicon{width:14px;height:14px;color:var(--fg-dim)}.pv__name{flex:1;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv__state{font-size:10px;color:var(--fg-faint)}@media (max-width: 900px){.demo__body{grid-template-columns:52px minmax(0,1fr)}.demo__preview{display:none}}@media (max-width: 620px){.demo__body{grid-template-columns:1fr;min-height:0}.demo__rail{display:none}}.scenarios__tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.scenarios__tab{padding:9px 18px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--fg-dim);font:inherit;font-size:14px;cursor:pointer}.scenarios__tab.is-on{border-color:transparent;background:var(--accent);color:var(--accent-ink);font-weight:600}.scenarios__situation{margin:0 0 18px;color:var(--fg-dim)}.scene2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.scene2__chat{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card)}.scene2__msg{display:flex;gap:10px;align-items:flex-start;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.scene2__msg.is-in{opacity:1;transform:none}.scene2__msg--you{flex-direction:row-reverse}.scene2__avatar{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--line)}.scene2__msg--pipa .scene2__avatar{background:var(--grad)}.scene2__bubble{max-width:82%;padding:9px 13px;border:1px solid var(--line);border-radius:12px;background:var(--card-hi);font-size:14px;line-height:1.5}.scene2__msg--pipa .scene2__bubble{border-color:var(--line-hi);background:var(--accent-soft)}.prod__head{display:flex;align-items:center;gap:12px}.prod__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line-hi);border-radius:12px;background:var(--accent-soft);color:var(--accent)}.prod__icon svg{width:22px;height:22px}.prod__note{margin-left:auto;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.prod__note--free{background:var(--accent-soft);color:var(--accent)}.prod__note--link{background:color-mix(in srgb,var(--accent-2) 15%,transparent);color:var(--accent-2)}.prod__body{margin:14px 0 0;max-width:70ch;color:var(--fg-dim);font-size:15px}.price-card{position:relative;display:flex;flex-direction:column}.price-card--now{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.price-card__amount{margin:8px 0 0;font-size:clamp(26px,3vw,34px);font-weight:700;letter-spacing:-.03em}.price-card__note{margin:4px 0 0;color:var(--fg-faint);font-size:13px}.price-card__body{margin:10px 0 0;color:var(--fg-dim);font-size:14.5px}.cmp{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-lg)}.cmp__table{width:100%;min-width:760px;border-collapse:collapse;font-size:14px}.cmp__table th,.cmp__table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.cmp__table thead th{background:var(--bg-soft);color:var(--fg-dim);font-size:13px;font-weight:600}.cmp__table tbody th{width:176px;color:var(--fg-dim);font-weight:500}.cmp__table tbody td{color:var(--fg-dim)}.cmp__table .is-pipa{background:var(--accent-soft);color:var(--fg);font-weight:500}.cmp__mark{width:15px;height:15px;margin-right:6px;vertical-align:-3px}.cmp__mark--check{color:light-dark(#12a150,#3ddc97)}.cmp__mark--close{color:var(--fg-faint)}.cmp__mark--bot{color:var(--accent)}.cmp__mark--user{color:var(--fg-dim)}.cmp__table tbody tr:last-child th,.cmp__table tbody tr:last-child td{border-bottom:0}@media (max-width: 620px){.cmp__table th,.cmp__table td{padding:10px 12px}}.scene2__flow{height:420px;border:1px solid var(--line-hi);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--card-hi),var(--card));overflow:hidden}.scene2__flow .vue-flow__node{border:0;padding:0;background:transparent;font-size:13px;color:var(--fg-dim)}.scene2__flow .vue-flow__attribution{display:none}.fhandle{opacity:0;width:1px;height:1px;border:0;min-width:0;min-height:0}.fedge .vue-flow__edge-path{stroke:var(--line-hi);stroke-width:1.5;transition:stroke .4s var(--ease),stroke-width .4s var(--ease)}.fedge.is-on .vue-flow__edge-path{stroke:var(--accent);stroke-width:2}.fedge.is-model .vue-flow__edge-path{stroke-dasharray:6 5}.fnode--device{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line-hi);border-radius:12px;background:var(--card);transition:opacity .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease)}.fnode--device .fnode__box{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--bg-soft)}.fnode--device .fnode__box svg{width:21px;height:21px}.fnode--device .fnode__label{white-space:nowrap}.fnode--device.is-hidden{opacity:.25;border-style:dashed}.fnode--device.is-off{opacity:.55;border-style:dashed}.fnode--device.is-run{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 3px var(--glow)}.fnode--device.is-alarm{border-color:light-dark(#b8730f,#ffb454);background:light-dark(rgba(184,115,15,.1),rgba(255,180,84,.14));color:light-dark(#b8730f,#ffb454);box-shadow:0 0 0 3px #ffb45438}.fnode--light.is-run{border-color:light-dark(#c08a2e,#ffd27a);background:linear-gradient(180deg,#ffd27a47,#ffb45424);color:light-dark(#b8730f,#ffd27a);box-shadow:0 0 24px #ffbe5a80,0 0 0 3px #ffbe5a29}.fnode--light.is-off{border-style:solid;background:var(--bg-soft);color:var(--fg-faint)}.fnode--fan.is-run .fnode__box svg{animation:scene-spin 1.2s linear infinite}.fnode--host{width:194px;padding:12px;border:1.5px solid transparent;border-radius:16px;background:linear-gradient(var(--card),var(--card)) padding-box,var(--grad) border-box}.fnode__head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.fnode__mark{flex:0 0 18px;width:18px;height:18px;border-radius:6px;background:var(--grad)}.fnode__name{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--fg)}.fnode__botwrap{position:relative;display:grid;place-items:center;width:24px;height:24px;margin-left:auto;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.fnode__botwrap svg{width:15px;height:15px;animation:bot-bob 2.2s ease-in-out infinite}.fnode__botwrap:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1px solid var(--accent);animation:bot-ring 2.2s ease-out infinite}.fnode__svcs{display:flex;flex-direction:column;gap:6px}.fnode__svc{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--card);font-size:12.5px;transition:opacity .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease),color .35s var(--ease)}.fnode__svc svg{flex:0 0 15px;width:15px;height:15px}.fnode__svc.is-hidden{opacity:.2;border-style:dashed}.fnode__svc.is-run{border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}.fnode__svc.is-off{opacity:.5;border-style:dashed}.fnode__dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--fg-faint);transition:background .35s var(--ease)}.fnode__svc.is-run .fnode__dot{background:light-dark(#12a150,#3ddc97)}.fnode--device.is-hit,.fnode__svc.is-hit{animation:node-hit .7s var(--ease)}@keyframes node-hit{0%{box-shadow:0 0 0 0 var(--glow);border-color:var(--accent)}to{box-shadow:0 0 0 9px transparent}}@keyframes bot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes bot-ring{0%{transform:scale(.85);opacity:.8}to{transform:scale(1.3);opacity:0}}@keyframes scene-spin{to{transform:rotate(360deg)}}@media (max-width: 860px){.scene2{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.fnode--fan.is-run .fnode__box svg,.fnode__botwrap svg,.fnode__botwrap:after{animation:none}}.product-actions{margin-top:34px;text-align:center}.pa-options{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}.pa-option{display:flex;flex-direction:column;align-items:center;gap:8px}.pa-badge{margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;background:#fff3}.pa-badge--soon{background:var(--bg-soft);border:1px solid var(--line);color:var(--fg-dim)}.pa-sub{font-size:12.5px;color:var(--fg-faint)}.pa-clarify{max-width:620px;margin:18px auto 0;color:var(--fg-faint);font-size:13px;line-height:1.55}.pa-docs{display:inline-block;margin-top:10px;color:var(--fg-dim);font-size:13px;text-decoration:underline;text-underline-offset:3px}@media (max-width: 560px){.pa-options{flex-direction:column;align-items:stretch;gap:18px}.pa-option{align-items:stretch}.pa-option .btn{justify-content:center}}.hub{position:relative;max-width:1040px;margin:64px auto 0;overflow:visible}.hub__head{text-align:center}.hub__head .section-head{margin-bottom:40px}.hub__head .h2{margin-inline:auto;max-width:26ch}.hub__head .lead{margin-inline:auto}.hub__stage{position:relative;aspect-ratio:1.85;min-height:360px;max-height:560px;border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(62% 92% at 50% 50%,var(--glow),transparent 72%),linear-gradient(180deg,var(--card-hi),var(--card));overflow:hidden;contain:paint}.hub__canvas{display:block;width:100%;height:100%}.hub__core{position:absolute;top:57%;left:50%;transform:translate(-50%,-50%);width:clamp(150px,16vw,210px);pointer-events:none}.hub__brand{display:flex;align-items:center;justify-content:center;gap:6px;padding:1px 0 6px}.hub__mark{display:block;width:15px;height:15px}.hub__os{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint)}.hub__stack{display:block;width:100%;height:auto;overflow:visible}.hub__slab--0{--tint: var(--accent)}.hub__slab--1{--tint: var(--accent-2)}.hub__slab--2{--tint: color-mix(in srgb, var(--accent) 45%, var(--accent-2))}.hub__face--top{fill:color-mix(in srgb,var(--tint) 66%,#e9effb);stroke:color-mix(in srgb,var(--tint) 66%,#e9effb);stroke-width:.7}.hub__face--front{fill:color-mix(in srgb,var(--tint) 94%,#ffffff);stroke:color-mix(in srgb,var(--tint) 94%,#ffffff);stroke-width:.7}.hub__face--left{fill:color-mix(in srgb,var(--tint) 56%,#05070d);stroke:color-mix(in srgb,var(--tint) 56%,#05070d);stroke-width:.7}.hub__label{fill:#06121f;font-family:system-ui,sans-serif;font-size:15px;font-weight:700;font-style:italic;letter-spacing:.01em}.hub__legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:32px}.hub__point{display:flex;gap:13px;align-items:flex-start;padding:0 26px}.hub__point:first-child{padding-left:0}.hub__point:last-child{padding-right:0}.hub__point+.hub__point{border-left:1px solid var(--line)}.hub__icon{display:grid;place-items:center;flex:none;width:34px;height:34px;margin-top:2px;border:1px solid var(--line-hi);border-radius:10px;background:var(--card);color:var(--accent)}.hub__icon svg{width:17px;height:17px}.hub__k{margin:0;font-size:15px;letter-spacing:-.01em}.hub__b{margin:6px 0 0;color:var(--fg-dim);font-size:13.5px;line-height:1.55}.hub__cloud{max-width:46ch;margin:22px auto 0;padding-left:16px;position:relative;text-align:center;color:var(--fg-dim);font-size:13px;line-height:1.5;border-top:1px solid var(--line);padding-top:16px}@media (max-width: 860px){.hub{margin-top:44px}.hub__stage{aspect-ratio:auto;height:clamp(380px,62vw,520px);max-height:none}.hub__legend{grid-template-columns:1fr;gap:22px}.hub__point{padding:0}.hub__point+.hub__point{border-left:0;border-top:1px solid var(--line);padding-top:22px}}
