@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.lp{--ink: #120b17;--ink-2: #1b1222;--ink-3: #261a2f;--line: rgba(255, 255, 255, .1);--pink: #ff2199;--pink-light: #ff9fd6;--lime: #d6ff3d;--violet: #8c7bff;--text: #f6eff7;--muted: #bcaec4;--faint: #7f7188;--display: "Archivo Variable", "Arial Narrow", sans-serif;--mono: "JetBrains Mono Variable", ui-monospace, monospace;min-height:100%;background:var(--ink);color:var(--text);font-family:var(--display);font-size:16px;line-height:1.5;overflow-x:clip}html.lp-doc{background:#120b17;scroll-behavior:smooth}.lp a{color:inherit;text-decoration:none}.lp ::selection{background:var(--pink);color:var(--ink)}.lp button,.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 20px;background:transparent;border:1px solid var(--pink);border-radius:999px;color:var(--pink);font-family:var(--display);font-size:13px;font-weight:750;font-stretch:112%;letter-spacing:.06em;line-height:20px;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .18s,color .18s,transform .18s,box-shadow .18s}.lp button:hover,.lp-btn:hover{background:#ff21991f;border-color:var(--pink);transform:translateY(-1px)}.lp-btn.is-solid{background:var(--pink);color:var(--ink)}.lp-btn.is-solid:hover{background:#ff4daf;box-shadow:0 8px 30px -8px #ff2199cc}.lp-btn.is-big{padding:13px 28px;font-size:14px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--pink)}.dot.is-violet{background:var(--violet)}.lp-announce{position:relative;z-index:30;align-items:center;display:flex;justify-content:center;gap:18px;padding:11px 16px;background:linear-gradient(90deg,#2a0f2f,#4b1460 45%,#7a1263);font-size:15px;text-align:center}.lp-announce a{color:var(--lime);font-size:13px;font-weight:750;font-stretch:112%;letter-spacing:.06em;text-transform:uppercase}.lp-announce a:hover{text-decoration:underline;text-underline-offset:4px}.lp-qr{position:relative}.lp .lp-qr button{padding:0 0 0 18px;border:0;border-left:1px solid rgba(255,255,255,.25);border-radius:0;color:var(--text);font-size:13px;line-height:inherit}.lp .lp-qr button:hover{background:none;color:var(--lime);transform:none}.lp-qr-pop{position:absolute;top:100%;left:50%;z-index:40;padding-top:14px;opacity:0;pointer-events:none;transform:translate(-50%,-6px);transition:opacity .2s,transform .2s}.lp-qr:hover .lp-qr-pop,.lp-qr:focus-within .lp-qr-pop,.lp-qr.is-pinned .lp-qr-pop{opacity:1;pointer-events:auto;transform:translate(-50%)}.lp-qr figure{margin:0;padding:18px 18px 14px;background:#fff;border-radius:22px;box-shadow:0 30px 80px -20px #000000d9,0 0 0 4px var(--pink)}.lp-qr img{display:block;width:min(320px,70vw);height:auto}.lp-qr figcaption{margin-top:10px;color:var(--ink);font-family:var(--mono);font-size:15px;font-weight:600}.lp-nav{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:76px;margin-bottom:-76px;padding:0 clamp(16px,3vw,44px);transition:background .25s,backdrop-filter .25s,border-color .25s;border-bottom:1px solid transparent}.lp-nav.is-scrolled{background:#120b17c7;-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom-color:var(--line)}.lp-brand{display:inline-flex;align-items:center;gap:10px}.lp-brand span{font-size:21px;font-weight:800;font-stretch:70%;letter-spacing:.02em;text-transform:uppercase}.lp-logo{width:32px;height:32px;flex:none}.lp-brand:hover .lp-logo{animation:lp-wobble .5s}@keyframes lp-wobble{30%{transform:skew(-8deg) translate(2px)}60%{transform:skew(5deg)}}.lp-links{display:flex;gap:6px}.lp-links a{padding:10px 12px;color:var(--muted);font-size:13px;font-weight:800;font-stretch:112%;letter-spacing:.06em;text-transform:uppercase;transition:color .15s}.lp-links a:hover{color:var(--text)}.lp-actions{display:flex;justify-content:flex-end;gap:8px}.lp-hero{position:relative;height:max(720px,min(100svh - 42px,1000px));overflow:hidden;isolation:isolate}.lp-hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;width:100%;height:100%;display:block;background:var(--ink)}.lp-hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px) 0 0 / 96px 96px,linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px) 0 0 / 96px 96px;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent);mask-image:linear-gradient(to bottom,#000 60%,transparent)}.lp-wires{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.lp-wires .wire{fill:none;stroke:#ff2199bf;stroke-width:1.5}.lp-wires .wire-pulse{fill:none;stroke:var(--lime);stroke-width:3;stroke-linecap:round;stroke-dasharray:2 98;animation:lp-flow 2.4s linear infinite;filter:drop-shadow(0 0 4px var(--lime))}.lp-wires g:nth-child(2) .wire-pulse{animation-duration:3.4s;animation-delay:-1s}.lp-wires g:nth-child(3) .wire-pulse{animation-duration:2.9s;animation-delay:-2s}@keyframes lp-flow{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.lp-card{position:absolute;background:#1b1222e6;border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 30px 60px -30px #000000e6;animation:lp-float 9s ease-in-out infinite;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lp-card header{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:800;font-stretch:112%;letter-spacing:.06em;text-transform:uppercase}.lp-card header em{margin-left:auto;color:var(--faint);font-style:normal;font-weight:600;letter-spacing:.03em;text-transform:none;font-stretch:100%}.lp-node{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0}.lp-node header{padding:10px 14px;background:#1b1222eb;border:1px solid rgba(255,255,255,.12);border-bottom:0;border-radius:16px 16px 0 0}.port{position:relative;width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px #d6ff3dcc}.port.is-in{margin-left:-1px}.lp-node .port.is-in{position:absolute;left:-5px;top:18px}.lp-node .port.is-out{position:absolute;right:-5px;top:18px}.lp-node header span{margin-left:4px}.lp-window{position:relative;aspect-ratio:16 / 10;border-radius:0 0 10px 10px;box-shadow:inset 0 0 0 1px #ffffff24}.lp-tag{position:absolute;top:10px;left:10px;padding:3px 10px;background:#120b17d9;border-radius:999px;color:var(--pink);font-size:11px;font-weight:800;font-stretch:112%;letter-spacing:.08em;text-transform:uppercase}.lp-node[data-card=o1]{left:3%;top:19%;width:clamp(210px,17vw,270px)}.lp-node[data-card=o5]{left:14%;top:57%;width:clamp(200px,16vw,250px);animation-delay:-3s}.lp-node[data-card=post]{right:2.5%;top:15%;width:clamp(250px,24vw,380px);animation-delay:-5s}.lp-node[data-card=post] .lp-window{aspect-ratio:4 / 5}.lp-chat{right:20%;top:67%;width:300px;animation-delay:-7s}.lp-chat ol{display:flex;flex-direction:column;gap:6px;margin:0;padding:0 12px 12px;list-style:none;min-height:112px;justify-content:flex-end}.lp-chat li{padding:8px 11px;background:#ffffff0d;border-radius:12px 12px 12px 4px;color:var(--muted);font-size:13px;line-height:1.4;animation:lp-pop .35s cubic-bezier(.2,.9,.3,1.2)}.lp-chat li.is-agent{background:#8c7bff24;border-radius:12px 12px 4px;color:var(--text)}.lp-chat li b{display:block;color:var(--pink);font-size:10px;font-weight:800;font-stretch:112%;letter-spacing:.08em;text-transform:uppercase}.lp-chat li.is-agent b{color:var(--violet)}@keyframes lp-pop{0%{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes lp-float{50%{transform:translateY(-10px)}}.lp-cursor{position:absolute;left:0;top:0;z-index:5;pointer-events:none;color:var(--lime);will-change:transform}.lp-cursor svg{display:block;width:18px;height:18px;fill:currentColor;stroke:var(--ink);stroke-width:1.2;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}.lp-cursor span{display:inline-block;margin:2px 0 0 12px;padding:2px 8px;background:currentColor;border-radius:6px;font-size:11px;font-weight:800;font-stretch:112%;letter-spacing:.05em;text-transform:uppercase}.lp-cursor span{color:var(--ink);background:var(--lime)}.lp-cursor.is-agent{color:var(--violet)}.lp-cursor.is-agent span{background:var(--violet)}.lp-cursor.is-small svg{width:14px;height:14px}.lp-hero-copy{position:absolute;left:50%;top:18%;z-index:4;display:flex;flex-direction:column;align-items:center;width:min(680px,calc(100% - 32px));transform:translate(-50%);text-align:center}.lp-hero-copy h1{display:flex;flex-direction:column;align-items:center;margin:0}.lp-hero-copy .lp-badge{background:var(--pink-light);box-shadow:0 0 60px #ff9fd640}.lp-hero-copy p{max-width:540px;margin:28px 0 0;color:#e7dcea;font-size:18px;font-weight:350;line-height:1.6;text-shadow:0 1px 14px rgba(18,11,23,.9);animation:lp-rise .9s .5s both cubic-bezier(.2,.8,.2,1)}.lp-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px;animation:lp-rise .9s .7s both cubic-bezier(.2,.8,.2,1)}.lp-hero .lp-cta .lp-btn:not(.is-solid){background:#120b17b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@keyframes lp-rise{0%{opacity:0;transform:translateY(16px)}}.lp-badge{position:relative;display:inline-block;padding:.04em .42em .02em;background:var(--pink);color:var(--ink);font-size:clamp(46px,6.4vw,92px);font-weight:750;font-stretch:62%;letter-spacing:-.01em;line-height:1.12;text-transform:uppercase;white-space:nowrap;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);border-radius:.18em;animation:lp-badge-in .8s both cubic-bezier(.2,.9,.2,1)}.lp-badge.is-second{margin-top:.12em;animation-delay:.15s}.lp-hero-copy h1:after{content:"";order:1;width:.5em;height:.22em;margin:-.17em 0 -.05em;background:var(--pink-light);font-size:clamp(46px,6.4vw,92px)}.lp-badge.is-second{order:2}.lp-badge:before,.lp-badge:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;padding:inherit;background:inherit;pointer-events:none;opacity:0}.lp-badge:before{color:var(--ink);text-shadow:-3px 0 var(--lime);animation:lp-glitch-a 6s 2s infinite steps(1)}.lp-badge:after{color:var(--ink);text-shadow:3px 0 #29e6ff;animation:lp-glitch-b 6s 2s infinite steps(1)}.lp-badge.is-second:before,.lp-badge.is-second:after{animation-delay:2.12s}@keyframes lp-badge-in{0%{opacity:0;clip-path:polygon(4% 0,4% 0,0 100%,0 100%)}}@keyframes lp-glitch-a{0%,90%,to{opacity:0}91%{opacity:1;clip-path:inset(10% 0 62% 0);transform:translate(-6px)}93%{opacity:1;clip-path:inset(58% 0 12% 0);transform:translate(5px)}95%{opacity:1;clip-path:inset(30% 0 40% 0);transform:translate(-3px)}97%{opacity:0}}@keyframes lp-glitch-b{0%,90%,to{opacity:0}92%{opacity:1;clip-path:inset(70% 0 5% 0);transform:translate(7px)}94%{opacity:1;clip-path:inset(5% 0 75% 0);transform:translate(-5px)}96%{opacity:1;clip-path:inset(44% 0 30% 0);transform:translate(4px)}98%{opacity:0}}.lp-ticker{overflow:hidden;padding:18px 0;border-block:1px solid var(--line);background:var(--ink)}.lp-ticker>div{display:flex;width:max-content;animation:lp-marquee 48s linear infinite}.lp-ticker span{display:inline-flex;align-items:center;gap:34px;padding-right:34px;color:transparent;font-size:40px;font-weight:800;font-stretch:62%;line-height:1;-webkit-text-stroke:1px rgba(246,239,247,.45);white-space:nowrap}.lp-ticker span:nth-child(4n+1){color:var(--pink);-webkit-text-stroke:0}.lp-ticker span i{width:12px;height:12px;background:var(--lime);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}@keyframes lp-marquee{to{transform:translate(-50%)}}.lp-section{padding:130px clamp(16px,3vw,44px) 0;max-width:1360px;margin:0 auto}.lp-heading{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.lp-badge.is-small{font-size:clamp(40px,5vw,64px);animation:none}.lp-badge.is-small:before,.lp-badge.is-small:after{display:none}.lp-badge.is-mark{display:inline-flex;align-items:center;height:1.16em}.lp-badge.is-mark .lp-logo{width:.8em;height:.8em}.lp-badge.is-mark .lp-logo path:first-child{fill:var(--ink)}.lp-badge.is-mark .lp-logo circle,.lp-badge.is-mark .lp-logo path:nth-child(2){fill:var(--pink);stroke:var(--pink)}.lp-lede{max-width:560px;margin:26px auto 0;color:var(--muted);font-size:17px;font-weight:350;line-height:1.65;text-align:center}.lp-lede.is-left{margin:0;text-align:left}.lp-h2{margin:0;font-size:clamp(40px,5vw,72px);font-weight:300;letter-spacing:-.035em;line-height:1.02}.lp-eyebrow{display:block;margin-bottom:16px;color:var(--pink);font-size:13px;font-weight:800;font-stretch:112%;letter-spacing:.08em;text-transform:uppercase}.lp-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:48px}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}[data-reveal].is-in{opacity:1;transform:none}.lp-how-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;margin-top:64px}.lp-stage{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);min-height:520px;padding:14px;background:var(--ink-2);border:1px solid transparent;border-radius:28px;background-clip:padding-box}.lp-stage:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:-1;border-radius:29px;background:conic-gradient(from var(--spin, 0deg),var(--pink),transparent 25%,transparent 60%,var(--lime) 80%,var(--pink));animation:lp-spin 8s linear infinite}@property --spin{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes lp-spin{to{--spin: 360deg}}.lp-editor{display:flex;flex-direction:column;min-width:0;padding:4px 16px 4px 4px}.lp-editor-bar{display:flex;align-items:center;gap:6px;padding:8px 4px 14px}.lp-editor-bar i{width:10px;height:10px;border-radius:50%;background:var(--ink-3)}.lp-editor-bar span{margin-left:10px;color:var(--muted);font-family:var(--mono);font-size:12px}.lp-agent-chip{margin-left:auto;padding:2px 10px;background:#8c7bff2e;border-radius:999px;color:var(--violet);font-size:11px;font-style:normal;font-weight:800;font-stretch:112%;letter-spacing:.06em;text-transform:uppercase;animation:lp-blink 1.2s infinite}@keyframes lp-blink{50%{opacity:.55}}.lp-agent-ask{margin:0 4px 12px;padding:9px 12px;background:#ff21991a;border:1px solid rgba(255,33,153,.25);border-radius:12px;color:var(--text);font-size:13px;animation:lp-pop .4s}.lp-agent-ask b{margin-right:6px;color:var(--pink);font-size:11px;font-stretch:112%;letter-spacing:.08em;text-transform:uppercase}.lp-code{overflow-x:auto;font-family:var(--mono);font-size:11.5px;line-height:1.8;scrollbar-width:none}.lp-code>div{display:flex;gap:14px;padding:0 6px;border-radius:4px;white-space:pre;animation:lp-line .4s both}.lp-code>div:nth-child(n){animation-delay:calc(var(--i, 0) * 1ms)}.lp-code>div.is-added{background:#d6ff3d14;box-shadow:inset 2px 0 var(--lime)}.lp-code>div.is-added .ln{color:var(--lime)}.lp-code .ln{flex:none;width:18px;color:#4f4258;text-align:right;-webkit-user-select:none;user-select:none}.lp-code code{font:inherit;color:#d9cfe0}.lp-code i{font-style:normal}.lp-code .k{color:var(--pink)}.lp-code .b{color:var(--lime)}.lp-code .n{color:#ffb36b}.lp-code .c{color:#75687e}@keyframes lp-line{0%{opacity:0;transform:translate(-6px)}}.lp-preview{position:relative;overflow:hidden;border-radius:18px;background:#000}.lp-preview canvas{display:block;width:100%;height:100%}.lp-preview .lp-cursor{transition:none}.lp-accordion{display:flex;flex-direction:column;gap:12px}.lp .lp-accordion button{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:26px 30px;overflow:hidden;background:var(--ink-2);border:0;border-radius:28px;color:var(--muted);font-size:26px;font-weight:300;font-stretch:100%;letter-spacing:-.02em;line-height:1.15;text-align:left;text-transform:none;white-space:normal;transition:background .3s,color .3s}.lp .lp-accordion button:hover{background:var(--ink-3);transform:none}.lp .lp-accordion button.is-open{background:var(--pink);color:var(--ink)}.lp-acc-title{display:flex;justify-content:space-between;gap:12px}.lp-acc-title i{font-style:normal;font-weight:300}.lp-acc-body{font-size:15px;font-weight:400;letter-spacing:0;line-height:1.55;animation:lp-pop .4s}.lp-acc-progress{position:absolute;left:30px;right:30px;bottom:14px;height:2px;background:#120b1733}.lp-acc-progress:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);transform-origin:left;animation:lp-progress 9s linear both}@keyframes lp-progress{0%{transform:scaleX(0)}}.lp .lp-accordion button.is-open:before{content:"";position:absolute;left:-1px;top:34px;width:10px;height:22px;background:var(--ink);border-radius:0 12px 12px 0}.lp-family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.lp-family{position:relative;display:flex;flex-direction:column;min-height:210px;padding:26px 28px;overflow:hidden;background:var(--ink-2);border-radius:28px;transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .5s cubic-bezier(.2,.8,.2,1),background .3s}.lp-family.is-in:hover{transform:translateY(-6px)}.lp-family strong{margin-top:auto;font-size:clamp(72px,8vw,120px);font-weight:800;font-stretch:62%;letter-spacing:-.02em;line-height:.85}.lp-family-what{font-size:12px;font-weight:800;font-stretch:112%;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.lp-family:after{content:"";position:absolute;right:22px;top:24px;width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:-18px 0 0 -2px currentColor;opacity:.6}.lp-family.is-top{background:var(--pink);color:var(--ink)}.lp-family.is-chop{background:#3a2c9c}.lp-family.is-pop{background:#5b2560}.lp-family.is-mat{background:#2b2232}.lp-family.is-comp{background:#211829;box-shadow:inset 0 0 0 1px var(--line)}.lp-family.is-dat{background:var(--lime);color:var(--ink)}.lp-templates-actions{display:flex;flex-direction:column;gap:18px;justify-self:end;max-width:460px}.lp-templates-actions p{margin:0;color:var(--muted);font-size:16px}.lp-templates-actions>div{display:flex;flex-wrap:wrap;gap:10px}.lp .templates{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.lp .tile{position:relative;gap:0;padding:0;overflow:hidden;background:var(--ink-2);border:0;border-radius:18px;font-size:14px;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}.lp .tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--line);pointer-events:none;transition:box-shadow .3s}.lp .tile:hover{transform:translateY(-4px);box-shadow:0 24px 40px -24px #ff219999}.lp .tile:hover:after{box-shadow:inset 0 0 0 2px var(--pink)}.lp .thumb{border-radius:0;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .3s}.lp .tile:hover .thumb{transform:scale(1.06);filter:saturate(1.3) contrast(1.05)}.lp .thumb.is-blank{border:0;background:repeating-linear-gradient(45deg,var(--ink-2),var(--ink-2) 10px,var(--ink-3) 10px,var(--ink-3) 20px);color:var(--pink);font-size:44px;font-weight:200}.lp .tile span:last-child{display:flex;justify-content:space-between;padding:12px 16px 14px;font-weight:700;font-stretch:112%;letter-spacing:.04em;text-transform:uppercase}.lp .tile span:last-child:after{content:"→";color:var(--pink);opacity:0;transform:translate(-6px);transition:.25s}.lp .tile:hover span:last-child:after{opacity:1;transform:none}.lp-recent{margin-top:56px}.lp-recent ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;margin:0;padding:0;list-style:none}.lp-recent li{display:flex;align-items:center;gap:12px;padding:12px 10px 12px 18px;background:var(--ink-2);border-radius:14px}.lp-recent li a{flex:1;min-width:0;overflow:hidden;font-family:var(--mono);font-size:13px;text-overflow:ellipsis}.lp-recent li a:hover{color:var(--pink)}.lp-recent li>span{color:var(--faint);font-size:13px;white-space:nowrap}.lp .lp-recent button{padding:2px 10px;border-color:transparent;color:var(--faint);font-size:16px}.lp-closing{position:relative;display:grid;place-items:center;min-height:640px;margin-top:150px;overflow:hidden;isolation:isolate}.lp-closing canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%}.lp-closing-copy{position:relative;display:flex;flex-direction:column;align-items:center;max-width:620px;padding:0 16px;text-align:center}.lp-closing-copy:before{content:"";position:absolute;top:-70px;right:-140px;bottom:-70px;left:-140px;z-index:-1;background:radial-gradient(closest-side,#120b17f0 55%,#120b1700)}.lp-closing-copy .lp-badge{font-size:clamp(44px,6vw,84px);animation:none}.lp-closing-copy .lp-badge:before,.lp-closing-copy .lp-badge:after{animation-delay:.5s}.lp-closing-copy p{margin:28px 0 0;color:#e7dcea;font-size:18px;font-weight:350;text-shadow:0 1px 14px var(--ink)}.lp-footer{padding:70px clamp(16px,3vw,44px) 28px;border-top:1px solid var(--line)}.lp-footer-row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.lp-footer nav{display:flex;gap:26px;flex-wrap:wrap}.lp-footer nav a{color:var(--muted);font-size:14px}.lp-footer nav a:hover{color:var(--pink)}.lp-footer-mark{margin:40px 0 18px;color:transparent;font-size:clamp(80px,21vw,340px);font-weight:800;font-stretch:62%;letter-spacing:-.02em;line-height:.8;text-align:center;-webkit-text-stroke:1px rgba(255,33,153,.45);background:linear-gradient(90deg,transparent,rgba(255,33,153,.18),transparent) 0 0 / 50% 100% no-repeat;-webkit-background-clip:text;background-clip:text;animation:lp-sheen 7s ease-in-out infinite;-webkit-user-select:none;user-select:none}@keyframes lp-sheen{0%{background-position:-100% 0}60%,to{background-position:200% 0}}.lp-footer-row.is-small{color:var(--faint);font-size:13px}@media(max-width:1180px){.lp-node[data-card=o5],.lp-chat,.lp-cursor:not(.is-small){display:none}.lp-wires g:nth-child(1),.lp-wires g:nth-child(3){display:none}.lp-node[data-card=o1]{top:auto;bottom:14%}.lp-node[data-card=post]{top:auto;bottom:12%;width:230px}.lp-how-grid{grid-template-columns:1fr}.lp-accordion{display:grid;grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.lp-links,.lp-actions>button{display:none}.lp-nav{grid-template-columns:1fr auto}.lp-announce{flex-direction:column;gap:2px;font-size:13px}.lp .lp-qr button{padding:0;border-left:0}.lp-node,.lp-wires{display:none}.lp-hero{height:max(640px,calc(100svh - 64px))}.lp-hero-copy{top:16%}.lp-hero-copy p{font-size:16px}.lp-stage{grid-template-columns:1fr}.lp-preview{aspect-ratio:16 / 10;order:-1}.lp-editor{padding:10px 0 0}.lp-code{font-size:11px;overflow-x:auto}.lp-accordion,.lp-split{grid-template-columns:1fr}.lp-templates-actions{justify-self:start}.lp-family-grid{grid-template-columns:1fr 1fr}.lp-section{padding-top:96px}}@media(max-width:560px){.lp-family-grid{grid-template-columns:1fr}.lp .templates{grid-template-columns:1fr 1fr;gap:10px}.lp .tile span:last-child{padding:10px 12px;font-size:12px}}@media(prefers-reduced-motion:reduce){.lp *,.lp *:before,.lp *:after{animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}:root{color-scheme:dark;font-family:Segoe UI,sans-serif;background:#08090d;color:#ebe7df}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}button,input{font:inherit;color:inherit}button{background:#1c2030;border:1px solid #34384a;border-radius:4px;padding:4px 8px;cursor:pointer}button:hover{border-color:#8d7cff}.app{height:100%;display:grid;grid-template-rows:42px minmax(0,1fr) auto;background:#08090d}.gl-host{position:fixed;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none}#stats{position:fixed;z-index:30;top:82px;right:12px;padding:4px 6px;font:12px/1 ui-monospace,monospace;color:#ebe7df;background:#08090dc7;pointer-events:none}.topbar{display:flex;align-items:center;gap:16px;padding:0 12px;border-bottom:1px solid #222636;background:#10131b}.topbar strong{letter-spacing:.12em;font-size:13px;text-transform:uppercase}#hud{flex:1;color:#9a948a;font-variant-numeric:tabular-nums;font-size:12px;min-width:0}.playbar{display:flex;align-items:center;gap:8px;font:12px/1 ui-monospace,monospace;color:#ebe7df}.playbar button{min-width:28px;padding:2px 6px}.playbar button:disabled{opacity:.4;cursor:default}#abs-time,#stats{font-variant-numeric:tabular-nums;color:#c8c2b8}.topbar-actions{display:flex;align-items:center;gap:6px}.topbar-actions button:disabled{opacity:.35;cursor:default;border-color:#34384a}.topbar-actions .undo,.topbar-actions .redo{min-width:28px;padding:4px 6px}.audio-input{display:flex;align-items:center;gap:6px;font-size:12px;color:#c8c2b8;white-space:nowrap}.audio-input label{display:flex;align-items:center;gap:6px}.audio-input select{font:inherit;color:inherit;background:#1c2030;border:1px solid #34384a;border-radius:4px;padding:2px 4px}.audio-input.is-live select{border-color:#3dcf8a}.audio-input.is-blocked select,.audio-input.is-error select{border-color:#d45b5b}.audio-input button{padding:2px 8px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.audio-input em{font-style:normal;color:#ffb4b4}.audio-input em.local{padding:1px 6px;border:1px dashed #4a4f66;border-radius:999px;color:#8a90a8;font-size:10px;cursor:help}.viewer .audio-hint{margin-left:8px;font-style:normal;font-size:11px;color:#8a90a8}.menu{position:relative;font-size:13px}.menu summary{list-style:none;padding:4px 8px;border:1px solid #34384a;border-radius:4px;background:#1c2030;cursor:pointer;-webkit-user-select:none;user-select:none}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:" ▾";opacity:.6}.menu summary:hover,.menu[open] summary{border-color:#8d7cff}.menu-body{position:absolute;right:0;top:calc(100% + 4px);z-index:20;display:flex;flex-direction:column;min-width:180px;max-height:70vh;overflow-y:auto;padding:4px;background:#141824;border:1px solid #34384a;border-radius:6px;box-shadow:0 12px 32px #00000080}.menu-body button{text-align:left;border-color:transparent;background:transparent;padding:4px 8px}.menu-body button:hover{background:#1c2030;border-color:#34384a}.menu-body hr{width:100%;border:0;border-top:1px solid #222636;margin:4px 0}.menu-body em{padding:2px 8px;font-size:10px;font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:#8a90a8}.flow.is-dropping:after{content:"drop a graph .json to load it into the room, or an audio file to listen to";position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:grid;place-items:center;border:2px dashed #8d7cff;border-radius:10px;background:#1410308c;color:#c8c2ff;font-size:14px;pointer-events:none;z-index:10}.stage{display:grid;grid-template-columns:auto minmax(0,1fr) 340px;min-height:0}.flow{position:relative;min-width:0;min-height:0;background:#0c0e14}.side{display:grid;grid-template-rows:minmax(180px,42%) minmax(0,1fr);min-height:0;border-left:1px solid #222636;background:#10131b}.viewer,.params,.drawer{min-height:0;display:flex;flex-direction:column}.viewer header,.params header,.drawer header{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;font-size:12px;color:#9a948a;flex:none}.viewer header b,.params header b,.drawer header b{color:#ebe7df;font-weight:600}.viewer header button{margin-left:auto}.viewer{border-bottom:1px solid #222636}.viewer canvas{flex:1;width:100%;min-height:0;background:#05060a;display:block}.viewer:fullscreen{position:relative;background:#05060a;border:0}.viewer:fullscreen header{position:absolute;inset:0 0 auto;z-index:1;background:linear-gradient(#05060ad9,#05060a00);opacity:0;transition:opacity .2s}.viewer:fullscreen header:hover,.viewer:fullscreen header:focus-within{opacity:1}.viewer-actions{margin-left:auto;display:flex;gap:4px}.viewer-actions button{padding:1px 8px;font-size:11px;color:#9a948a;background:transparent}.viewer-actions button:hover{color:#ebe7df}.params{overflow:auto}.empty{margin:12px;color:#9a948a;font-size:12px}.drawer{border-top:1px solid #222636;background:#0c0e14;min-height:0}.drawer.is-shut{height:36px!important}.drawer-grip{height:6px;cursor:ns-resize;background:#171b26;flex:none}.drawer header button{background:transparent;border:0;padding:0;color:#9a948a}.drawer header em{margin-left:auto;font-style:normal;color:#e0a35a}.drawer header em.ok{color:#3dcf8a}.shader-error{margin:0;padding:6px 10px;max-height:72px;overflow:auto;background:#2a1214;color:#ffb4b4;font:12px/1.4 ui-monospace,monospace;white-space:pre-wrap}.code-host{flex:1;min-height:0;display:flex;flex-direction:column}.drawer .cm-editor{flex:1;min-height:0;height:100%;font-size:13px}.drawer .cm-scroller{overflow:auto}.cm-ySelectionInfo{font-family:inherit;font-size:10px;padding:1px 4px;border-radius:3px}.room{display:flex;align-items:center;gap:6px;font-size:12px}.room i{width:7px;height:7px;border-radius:50%;background:#d45b5b}.room.is-connecting i{background:#e0a35a}.room.is-connected i{background:#3dcf8a}.topbar strong a{color:inherit;text-decoration:none}.room-menu summary{display:flex;align-items:center;gap:6px;padding:3px 8px}.room-menu summary b{font-weight:600;font-variant-numeric:tabular-nums}.room-menu summary small{color:#8a90a8;font-size:11px}.room-menu .menu-body{left:0;right:auto;min-width:210px}.menu-link{padding:4px 8px;border:1px solid transparent;border-radius:4px;color:inherit;text-decoration:none}.menu-link:hover{background:#1c2030;border-color:#34384a}.peer{display:inline-block;padding:1px 7px;border-radius:999px;color:#08090d;font-size:11px;font-weight:600;white-space:nowrap}.peer-agent{margin-left:3px;font-size:10px;cursor:help}.op-node{width:176px;background:#141824;border:1px solid #2c3144;border-radius:6px;overflow:hidden;box-shadow:0 8px 24px #00000047}.op-node.is-selected{border-color:#c8c2ff}.op-node.is-error{border-color:#d45b5b}.op-node.is-bypass{opacity:.55}.op-node.is-bare{width:176px}.op-node header{display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;color:#fff;font-size:12px}.op-node header b{font-weight:650;cursor:text}.op-node header span{margin-left:auto;opacity:.7;font-size:10px;letter-spacing:.04em}.op-node header i{width:7px;height:7px;border-radius:50%;display:block;flex:none}.op-node header i.ok{background:#3dcf8a}.op-node header i.bad{background:#d45b5b}.op-node header i.idle{background:#6d675e}.op-node header button,.chop-drag{width:16px;height:16px;padding:0;border-radius:3px;font-size:10px;line-height:14px;text-align:center;background:#00000040}.op-node header button.is-on{color:#f0a040;border-color:#f0a040}.chop-drag{font-style:normal;cursor:grab;color:#3dcf8a}.op-node .rename{width:72px;background:transparent;border:0;padding:0;font-weight:650}.op-node canvas{display:block;width:100%;height:90px;background:#05060a}.op-node p{margin:0;padding:4px 6px;color:#ffb4b4;font-size:10px;line-height:1.3;background:#2a1214}.port-label{position:absolute;left:10px;font-style:normal;font-size:10px;color:#c8c2ff;pointer-events:none}.port-label.is-unused{opacity:.35}.react-flow__handle.is-unused{opacity:.35;outline:1px dashed #8a90a8;outline-offset:1px}.par-row{display:grid;grid-template-columns:72px minmax(0,1fr) 64px 28px;gap:6px;align-items:center;margin:8px 10px;font-size:12px;color:#c8c2b8}.par-row select,.par-row input,.params header .rename{background:#1c2030;border:1px solid #34384a;border-radius:4px;padding:3px 6px;width:100%}.par-row input[type=range]{padding:0}.par-row .par-expr{grid-column:1 / -1;font-family:ui-monospace,monospace}.par-row.is-error .par-expr{color:#ffb4b4;border-color:#d45b5b}.par-row em{grid-column:1 / -1;color:#ffb4b4;font-style:normal;font-size:11px}.par-row button.is-on{color:#f0a040;border-color:#f0a040}.params header .rename{width:140px;color:#ebe7df;font-weight:600}.params header em{margin-left:auto;font-style:normal}.palette{position:fixed;z-index:40;width:260px;max-height:360px;display:flex;flex-direction:column;gap:6px;padding:8px;background:#141824;border:1px solid #34384a;border-radius:8px;box-shadow:0 16px 40px #00000073}.palette-bar{display:flex;align-items:center;margin:-4px -4px 0;padding:0 0 0 6px;font-size:11px;color:#8a90a8;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.palette-bar.is-dragging{cursor:grabbing}.palette-bar span{flex:1}.palette-bar button{padding:0 6px;font-size:15px;line-height:20px;background:transparent;border-color:transparent;color:#8a90a8}.palette-bar button:hover{color:#ebe7df;border-color:#34384a}.palette input{background:#1c2030;border:1px solid #34384a;border-radius:4px;padding:4px 8px}.palette-filters{display:flex;gap:4px;flex-wrap:wrap}.palette-filters button.is-on{border-color:#e07ad4}.palette ul{list-style:none;margin:0;padding:0;overflow:auto}.palette li button{width:100%;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border-color:transparent}.palette li button em{margin-left:auto;font-style:normal;opacity:.55;font-size:10px}.palette i{width:8px;height:8px;border-radius:2px;display:block}.fam-CHOP{background:#3dcf8a}.fam-TOP{background:#e07ad4}.fam-POP{background:#f0a040}.fam-MAT{background:#9b86ff}.fam-COMP{background:#c4b8a4}.react-flow__handle{width:9px;height:9px;border:0}.react-flow__minimap{background:#10131b!important}.react-flow__controls-button{background:#1c2030;fill:#ebe7df;border-bottom-color:#34384a}.picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#040508b8}.picker{position:relative;width:min(880px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:20px;background:#11141d;border:1px solid #34384a;border-radius:10px;box-shadow:0 24px 64px #0009}.picker header h2{margin:0 0 4px;font-size:16px}.picker header p{margin:0 0 16px;max-width:600px;color:#8a90a8;font-size:13px}.picker .close{position:absolute;top:14px;right:14px;padding:0 8px;font-size:16px}.picker footer{display:flex;justify-content:flex-end;margin-top:16px}.templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tile{display:flex;flex-direction:column;gap:6px;padding:6px;background:#141824;border:1px solid #2c3144;border-radius:8px;color:inherit;font-size:13px;text-align:left;text-decoration:none;cursor:pointer}.tile:hover{border-color:#8d7cff}.tile span{padding:0 2px 2px}.thumb{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:5px;background:#05060a}.thumb.is-blank{display:grid;place-items:center;color:#8a90a8;font-size:28px;border:1px dashed #34384a}.landing{height:100%;overflow-y:auto;padding:40px max(16px,calc((100% - 960px)/2)) 64px}.landing header strong{font-size:15px;letter-spacing:.12em;text-transform:uppercase}.landing header p{max-width:560px;margin:10px 0 0;color:#a9aec2;font-size:14px;line-height:1.5}.landing section{margin-top:36px}.landing h2{margin:0 0 12px;font-size:14px;font-weight:600}.landing-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.landing-head h2{margin:0}.recent{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.recent li{display:flex;align-items:center;gap:12px;padding:6px 10px;background:#141824;border:1px solid #2c3144;border-radius:6px;font-size:13px}.recent a{flex:1;min-width:0;overflow:hidden;color:#ebe7df;text-decoration:none;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.recent a:hover{color:#b9adff}.recent span{color:#8a90a8;font-size:12px;white-space:nowrap}.recent button{padding:0 6px;background:transparent;border-color:transparent;color:#8a90a8}.assistant{width:300px;min-height:0;display:flex;flex-direction:column;border-right:1px solid #222636;background:#10131b;font-size:12px}.assistant.is-shut{width:28px}.assistant-strip{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;padding:8px 0;border:0;border-radius:0;background:transparent;color:#9a948a}.assistant-strip:hover{background:#141824;color:#ebe7df}.assistant-strip b{font-size:14px;line-height:1}.assistant-strip span{writing-mode:vertical-rl;font-size:11px;letter-spacing:.08em}.assistant-dot{width:7px;height:7px;border-radius:50%;background:#8d7cff}.assistant-dot.is-connecting,.assistant-dot.is-running{animation:assistant-pulse 1.2s ease-in-out infinite}.assistant-dot.is-error{background:#d45b5b}@keyframes assistant-pulse{50%{opacity:.25}}.assistant>header{display:flex;align-items:center;gap:8px;height:32px;padding:0 6px 0 10px;border-bottom:1px solid #222636;color:#9a948a;flex:none}.assistant>header b{color:#ebe7df;font-weight:600}.assistant-model{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#8a90a8}.assistant-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex:none}.assistant-actions em{font-style:normal;font-variant-numeric:tabular-nums;color:#c8c2b8}.assistant-actions button{padding:2px 8px;font-size:12px}.assistant-actions .assistant-stop{border-color:#d45b5b;color:#ffb4b4}.assistant-actions .assistant-fold{padding:2px 7px;background:transparent;border-color:transparent;color:#9a948a}.assistant-actions .assistant-fold:hover{border-color:#34384a;color:#ebe7df}.assistant-log{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:10px}.assistant-log .empty{margin:0;line-height:1.5}.assistant-log p{margin:0;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.assistant-log .say-user{align-self:flex-end;max-width:88%;margin-top:6px;padding:5px 9px;background:#1f1a3d;border:1px solid #3a3170;border-radius:8px 8px 2px}.say-text{color:#ebe7df}.say-done{color:#8a90a8;font-size:11px}.say-done.is-error,.say-error{color:#ffb4b4}.say-error{padding:4px 8px;background:#2a1214;border-radius:4px}.say-working{color:#8a90a8;font-size:11px;animation:assistant-pulse 1.6s ease-in-out infinite}.say-tool{display:flex;flex-direction:column;gap:4px}.say-tool>button{display:flex;align-items:baseline;gap:6px;width:100%;padding:2px 6px;background:#141824;border-color:#222636;font:11px/1.5 ui-monospace,monospace;text-align:left;color:#c8c2b8}.say-tool>button:hover{border-color:#34384a}.say-tool>button i{flex:none;font-style:normal;color:#8d7cff}.say-tool>button b{flex:none;font-weight:600;color:#ebe7df}.say-tool>button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.say-tool.is-open>button span{white-space:normal;overflow-wrap:anywhere}.say-tool.is-pending>button{opacity:.6}.say-tool.is-error>button{border-color:#5a2a2e}.say-tool.is-error>button i,.say-tool.is-error>button span{color:#ffb4b4}.say-tool pre{margin:0;max-height:240px;overflow:auto;padding:6px 8px;background:#0c0e14;border:1px solid #222636;border-radius:4px;font:11px/1.4 ui-monospace,monospace;color:#c8c2b8;white-space:pre-wrap;overflow-wrap:anywhere}.say-tool pre.say-args{color:#8a90a8}.say-tool.is-error pre:not(.say-args){color:#ffb4b4}.say-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.say-images img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border:1px solid #222636;border-radius:4px;background:#05060a;cursor:zoom-in}.say-tool.is-open .say-images{grid-template-columns:minmax(0,1fr)}.say-tool.is-open .say-images img{object-fit:contain;cursor:zoom-out}.assistant-input{flex:none;display:flex;flex-direction:column;gap:6px;padding:8px 10px 10px;border-top:1px solid #222636}.assistant-input textarea{width:100%;resize:none;padding:6px 8px;background:#1c2030;border:1px solid #34384a;border-radius:4px;color:inherit;font:inherit;line-height:1.4}.assistant-input textarea:focus{outline:none;border-color:#8d7cff}.assistant-input textarea:disabled{opacity:.5}.assistant-input div{display:flex;align-items:center;gap:8px}.assistant-input small{flex:1;min-width:0;color:#8a90a8;font-size:11px}.assistant-input button{padding:3px 12px}.assistant-input button:disabled{opacity:.4;cursor:default;border-color:#34384a}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-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}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
