[data-theme=dark]{--landing-bg:#09090b;--landing-text:#fafafa;--landing-text-secondary:#a1a1aa;--landing-text-muted:#71717a;--landing-text-dim:#52525b;--landing-border:rgba(255,255,255,0.06);--landing-border-hover:rgba(255,255,255,0.1);--landing-surface:rgba(255,255,255,0.03);--landing-surface-hover:rgba(255,255,255,0.06);--landing-nav-bg:rgba(9,9,11,0.7);--landing-glass:rgba(255,255,255,0.06);--landing-accent:#7c3aed;--landing-accent-glow:rgba(124,58,237,0.12);--landing-btn-primary-bg:#fafafa;--landing-btn-primary-text:#09090b;--landing-grid-line:rgba(255,255,255,0.02);--landing-green:#10b981;--landing-red:#ef4444}[data-theme=light]{--landing-bg:#ffffff;--landing-text:#18181b;--landing-text-secondary:#52525b;--landing-text-muted:#71717a;--landing-text-dim:#a1a1aa;--landing-border:rgba(0,0,0,0.06);--landing-border-hover:rgba(0,0,0,0.1);--landing-surface:rgba(0,0,0,0.02);--landing-surface-hover:rgba(0,0,0,0.04);--landing-nav-bg:rgba(255,255,255,0.85);--landing-glass:rgba(0,0,0,0.04);--landing-accent:#7c3aed;--landing-accent-glow:rgba(124,58,237,0.08);--landing-btn-primary-bg:#18181b;--landing-btn-primary-text:#ffffff;--landing-grid-line:rgba(0,0,0,0.03);--landing-green:#059669;--landing-red:#dc2626}.lp{--lp-serif:var(--font-newsreader),"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--lp-sans:var(--font-jakarta),Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;--lp-mono:var(--font-jetbrains-mono),ui-monospace,"SF Mono",Menlo,monospace;--lp-paper:#0a0910;--lp-paper-2:#100f18;--lp-card:#141320;--lp-ink:#eeedf4;--lp-ink-2:#c8c5d6;--lp-muted:#948fa6;--lp-faint:#5f5a72;--lp-rule:rgba(255,255,255,.10);--lp-rule-2:rgba(255,255,255,.19);--lp-accent:#a78bfa;--lp-accent-2:#c4b5fd;--lp-accent-wash:rgba(167,139,250,.10);--lp-sheet:#f6f5fc;--lp-sheet-ink:#221d34;--lp-sheet-rule:rgba(25,21,33,.09);--lp-glow:rgba(124,58,237,.34);--lp-sh-win:0 60px 140px -55px rgba(0,0,0,.92),0 0 90px -30px rgba(124,58,237,.30);--lp-btnhi:rgba(255,255,255,.20)}[data-theme=light] .lp{--lp-paper:#faf9f6;--lp-paper-2:#f2f0ea;--lp-card:#ffffff;--lp-ink:#191521;--lp-ink-2:#413b4f;--lp-muted:#6b6578;--lp-faint:#9d97a8;--lp-rule:rgba(25,21,33,.12);--lp-rule-2:rgba(25,21,33,.22);--lp-accent:#7c3aed;--lp-accent-2:#6d28d9;--lp-accent-wash:rgba(124,58,237,.055);--lp-sheet:#ffffff;--lp-sheet-ink:#221d34;--lp-sheet-rule:rgba(25,21,33,.08);--lp-glow:rgba(139,92,246,.24);--lp-sh-win:0 44px 100px -55px rgba(76,29,149,.42),0 12px 34px -22px rgba(30,58,138,.22);--lp-btnhi:rgba(255,255,255,.24);--lp-v300:#c4b5fd;--lp-v600:#7c3aed;--lp-blue:#1e3a8a}[data-theme=dark] .lp{--lp-paper:#0a0910;--lp-paper-2:#100f18;--lp-card:#141320;--lp-ink:#eeedf4;--lp-ink-2:#c8c5d6;--lp-muted:#948fa6;--lp-faint:#5f5a72;--lp-rule:rgba(255,255,255,.10);--lp-rule-2:rgba(255,255,255,.19);--lp-accent:#a78bfa;--lp-accent-2:#c4b5fd;--lp-accent-wash:rgba(167,139,250,.10);--lp-sheet:#f6f5fc;--lp-sheet-ink:#221d34;--lp-sheet-rule:rgba(25,21,33,.09);--lp-glow:rgba(124,58,237,.34);--lp-sh-win:0 60px 140px -55px rgba(0,0,0,.92),0 0 90px -30px rgba(124,58,237,.30);--lp-btnhi:rgba(255,255,255,.20)}.lp *{box-sizing:border-box}html{scroll-behavior:smooth}.lp{position:relative;isolation:isolate;background:var(--lp-paper);color:var(--lp-ink);-webkit-font-smoothing:antialiased;line-height:1.6;font-family:var(--lp-sans);min-height:100vh;overflow-x:hidden}.lp:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(940px 520px at 78% -8%,var(--lp-glow),transparent 60%);opacity:.7}.lp a{color:inherit;text-decoration:none}.lp .doc{max-width:1080px;margin:0 auto;padding:0 30px}.lp ::selection{background:var(--lp-accent);color:#fff}.lp .rise{opacity:0;transform:translateY(14px);animation:lp-rise .7s cubic-bezier(.2,.7,.2,1) forwards}.lp .d1{animation-delay:.06s}.lp .d2{animation-delay:.14s}.lp .d3{animation-delay:.22s}.lp .d4{animation-delay:.32s}@keyframes lp-rise{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.lp .rise{animation:none;opacity:1;transform:none}html{scroll-behavior:auto!important}}.lp .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--lp-sans);font-weight:650;border-radius:10px;cursor:pointer;border:1px solid transparent;transition:.16s cubic-bezier(.2,.7,.2,1);white-space:nowrap}.lp .btn.pri{background:var(--lp-accent);color:#fff;box-shadow:0 10px 26px -12px rgba(124,58,237,.7),inset 0 1px 0 var(--lp-btnhi)}.lp .btn.pri:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 16px 34px -14px rgba(124,58,237,.75),inset 0 1px 0 var(--lp-btnhi)}.lp .btn.sec{background:transparent;color:var(--lp-ink);border-color:var(--lp-rule-2)}.lp .btn.sec:hover{border-color:var(--lp-accent);color:var(--lp-accent-2)}.lp .btn.sm{padding:9px 16px;font-size:13.5px}.lp .btn.lg{padding:14px 24px;font-size:15.5px}.lp .link{font-family:var(--lp-sans);font-weight:650;font-size:15px;color:var(--lp-accent-2);display:inline-flex;align-items:center;gap:7px;transition:.15s}.lp .link:hover{gap:11px}.lp nav.bar{position:sticky;top:0;z-index:60;backdrop-filter:blur(16px) saturate(1.3);background:color-mix(in srgb,var(--lp-paper) 78%,transparent);border-bottom:1px solid var(--lp-rule)}.lp nav.bar .doc{gap:30px;height:64px}.lp .brand,.lp nav.bar .doc{display:flex;align-items:center}.lp .brand{gap:11px;font-family:var(--lp-sans);font-weight:800;letter-spacing:-.03em;font-size:17px;color:var(--lp-ink)}.lp .mark{flex:none;display:block}.lp .mark-nav{width:32px;height:32px;border-radius:9px;box-shadow:0 6px 18px -6px rgba(124,58,237,.55)}.lp .navlinks{display:flex;gap:26px;margin-left:4px}.lp .navlinks a{font-family:var(--lp-mono);font-size:12.5px;letter-spacing:.04em;color:var(--lp-muted);transition:.15s}.lp .navlinks a:hover{color:var(--lp-ink)}.lp .navright{margin-left:auto;display:flex;align-items:center;gap:16px}.lp .login{font-family:var(--lp-sans);font-size:14px;color:var(--lp-ink-2);font-weight:600}.lp .login:hover{color:var(--lp-ink)}.lp .themebtn{width:36px;height:36px;border-radius:9px;border:1px solid var(--lp-rule);background:transparent;color:var(--lp-muted);cursor:pointer;display:grid;place-items:center;transition:.15s}.lp .themebtn:hover{border-color:var(--lp-accent);color:var(--lp-ink)}.lp .themebtn svg{width:17px;height:17px}.lp .sun{display:none}[data-theme=dark] .lp .sun{display:block}[data-theme=dark] .lp .moon{display:none}@media (prefers-color-scheme:dark){:not([data-theme=light]) .lp .sun{display:block}:not([data-theme=light]) .lp .moon{display:none}}.lp .hero{padding:70px 0 30px}.lp .status{font-family:var(--lp-mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--lp-muted);display:inline-flex;align-items:center;gap:11px;margin-bottom:26px}.lp .status em{width:6px;height:6px;border-radius:50%;background:#10b981;font-style:normal;box-shadow:0 0 0 3px rgba(16,185,129,.2);animation:lp-pulse 2.4s infinite}@keyframes lp-pulse{0%,to{box-shadow:0 0 0 3px rgba(16,185,129,.2)}50%{box-shadow:0 0 0 6px rgba(16,185,129,0)}}.lp .masthead{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.lp .mark-hero{width:48px;height:48px;border-radius:13px;box-shadow:0 12px 30px -12px rgba(124,58,237,.6)}.lp .wm{font-family:var(--lp-sans);font-weight:800;letter-spacing:-.045em;font-size:clamp(30px,4.6vw,46px);color:var(--lp-ink);display:inline-flex;align-items:center;line-height:1}.lp .caret{display:inline-block;width:3px;height:.92em;margin-left:3px;background:var(--lp-accent);border-radius:2px;transform:translateY(.06em);animation:lp-blink 1.05s steps(1) infinite}@keyframes lp-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.lp .mastsub{font-family:var(--lp-mono);font-size:13px;letter-spacing:.14em;color:var(--lp-muted);opacity:0;transform:translateY(4px);animation:lp-tagup .6s ease .95s forwards;padding-bottom:3px}@keyframes lp-tagup{to{opacity:1;transform:none}}.lp .mastrule{height:1px;background:linear-gradient(90deg,var(--lp-rule-2),var(--lp-rule) 46%,transparent);margin:24px 0 30px}.lp h1.headline{font-family:var(--lp-serif);font-weight:600;font-size:clamp(34px,5.4vw,60px);line-height:1.05;letter-spacing:-.012em;color:var(--lp-ink);margin:0 0 22px;max-width:15ch}.lp h1.headline i{font-style:italic;color:var(--lp-accent-2)}.lp p.lede{font-family:var(--lp-sans);font-size:clamp(16px,1.5vw,19px);color:var(--lp-muted);max-width:56ch;line-height:1.6;margin:0 0 30px}.lp .actions{gap:14px;align-items:center}.lp .actions,.lp .micro{display:flex;flex-wrap:wrap}.lp .micro{margin-top:24px;font-family:var(--lp-mono);font-size:12px;color:var(--lp-faint);gap:24px}.lp .micro span{display:inline-flex;align-items:center;gap:8px}.lp .micro span:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--lp-accent);opacity:.75}@media (prefers-reduced-motion:reduce){.lp .caret,.lp .mastsub{animation:none}.lp .mastsub{opacity:1;transform:none}.lp .status em{animation:none}}.lp .figure{position:relative;margin:58px 0 0}.lp .figure:before{content:"";position:absolute;left:6%;right:6%;top:-3%;bottom:16%;z-index:-1;background:radial-gradient(52% 56% at 50% 24%,var(--lp-glow),transparent 72%);filter:blur(42px);opacity:.85}.lp .window{border:1px solid var(--lp-rule-2);border-radius:14px;overflow:hidden;background:var(--lp-card);box-shadow:var(--lp-sh-win)}.lp .winbar{display:flex;align-items:center;gap:8px;padding:12px 15px;background:var(--lp-paper-2);border-bottom:1px solid var(--lp-rule)}.lp .winbar .dot{width:11px;height:11px;border-radius:50%;background:var(--lp-faint);opacity:.5}.lp .winbar .url{margin:0 auto;font-family:var(--lp-mono);font-size:12px;color:var(--lp-faint);letter-spacing:.02em;display:flex;align-items:center;gap:7px}.lp .winbar .url svg{width:12px;height:12px;opacity:.7}.lp .winbody{display:grid;grid-template-columns:190px 1fr 1fr;min-height:330px}.lp .rail{background:var(--lp-paper-2);border-right:1px solid var(--lp-rule);padding:16px 12px;font-family:var(--lp-mono);font-size:12px}.lp .rail .grp{color:var(--lp-faint);font-size:10px;letter-spacing:.16em;padding:4px 8px;margin-top:14px}.lp .rail .grp:first-child{margin-top:0}.lp .rail .file{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;color:var(--lp-muted);margin-bottom:2px;transition:.14s}.lp .rail .file:hover{color:var(--lp-ink)}.lp .rail .file.on{background:var(--lp-accent-wash);color:var(--lp-accent-2);font-weight:600;box-shadow:inset 0 0 0 1px var(--lp-rule)}.lp .rail .file svg{width:13px;height:13px;opacity:.85}.lp .pane-edit{border-right:1px solid var(--lp-rule);display:flex;flex-direction:column;position:relative}.lp .lbl{font-size:10px;letter-spacing:.16em;color:var(--lp-faint);padding:12px 16px 6px;text-transform:uppercase;display:flex;align-items:center;gap:8px}.lp #srcbox,.lp .lbl{font-family:var(--lp-mono)}.lp #srcbox{flex:1;resize:none;border:none;outline:none;background:transparent;color:var(--lp-ink-2);font-size:12.5px;line-height:1.9;padding:2px 16px 16px;caret-color:var(--lp-accent)}.lp .pane-view{background:var(--lp-sheet);color:var(--lp-sheet-ink);display:flex;flex-direction:column}.lp .pane-view .lbl{color:#8b86a8}.lp #preview{flex:1;overflow:auto;padding:2px 22px 20px;font-family:var(--lp-serif);font-size:14.5px;line-height:1.62}.lp #preview h2{font-family:var(--lp-serif);font-weight:700;font-size:19px;margin:8px 0 12px;color:#1a1530;letter-spacing:-.01em}.lp #preview p{margin:0 0 10px}.lp #preview ul{margin:8px 0;padding-left:20px}.lp #preview li{margin:4px 0}.lp #preview strong{color:#5b21b6}.lp #preview .eq{text-align:center;font-family:var(--lp-serif);font-style:italic;font-size:20px;padding:14px 0;color:#241f3c}.lp #preview code{font-family:var(--lp-mono);font-size:.84em;background:rgba(124,58,237,.1);color:#6d28d9;padding:1px 5px;border-radius:5px}.lp #preview .imath{font-style:italic}.lp #preview .frac{display:inline-flex;flex-direction:column;text-align:center;vertical-align:middle;font-size:.82em;line-height:1.04;margin:0 .14em}.lp #preview .frac>span:first-child{border-bottom:1px solid;padding:0 .32em}.lp #preview .cite{color:#6d28d9;font-style:normal;font-family:var(--lp-mono);font-size:.82em;background:rgba(124,58,237,.09);padding:1px 5px;border-radius:5px}.lp #preview .fig{margin:14px 0;text-align:center}.lp #preview .fig .box{border:1px solid var(--lp-sheet-rule);border-radius:8px;padding:14px;background:rgba(124,58,237,.04)}.lp #preview .fig .cap{color:#8b86a8;margin-top:7px}.lp #preview .fig .cap,.lp .winfoot{font-family:var(--lp-mono);font-size:11px}.lp .winfoot{grid-column:1/-1;border-top:1px solid var(--lp-rule);background:var(--lp-paper-2);padding:10px 16px;color:var(--lp-faint);display:flex;align-items:center;gap:8px}.lp .winfoot em{width:6px;height:6px;border-radius:50%;background:#10b981;font-style:normal}.lp .winfoot .r{margin-left:auto;color:var(--lp-accent-2);font-weight:600}.lp .figcaption{font-family:var(--lp-mono);font-size:12px;color:var(--lp-muted);margin-top:15px;line-height:1.55;max-width:72ch}.lp .figcaption b{color:var(--lp-accent-2);font-weight:700}.lp section.blk{padding:88px 0;border-top:1px solid var(--lp-rule)}.lp section.band{background:var(--lp-paper-2)}.lp .shead{margin-bottom:44px;max-width:60ch}.lp .kick{font-family:var(--lp-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-accent-2);display:inline-flex;align-items:center;gap:13px;margin-bottom:18px}.lp .kick:before{content:"";width:28px;height:1px;background:var(--lp-accent)}.lp h2.stitle{font-family:var(--lp-serif);font-weight:600;font-size:clamp(26px,3.3vw,38px);line-height:1.1;letter-spacing:-.012em;color:var(--lp-ink);margin:0 0 12px;max-width:20ch}.lp h2.stitle i{font-style:italic;color:var(--lp-accent-2)}.lp .slede{font-family:var(--lp-sans);color:var(--lp-muted);font-size:16.5px;max-width:56ch;margin:0}.lp .proof{border-top:1px solid var(--lp-rule);background:var(--lp-paper-2);padding:38px 0}.lp .proof .doc{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.lp .proof .k{font-family:var(--lp-mono);font-size:11.5px;letter-spacing:.16em;color:var(--lp-faint);text-transform:uppercase}.lp .proof .msg{font-family:var(--lp-serif);font-size:19px;font-style:italic;color:var(--lp-ink-2)}.lp .proof .msg b{font-style:normal;font-family:var(--lp-sans);font-weight:600;color:var(--lp-accent-2);font-size:15px}.lp .steps{display:grid;grid-template-columns:repeat(3,1fr)}.lp .step{padding:4px 30px 4px 0;border-right:1px solid var(--lp-rule)}.lp .step:not(:first-child){padding-left:30px}.lp .step:last-child{border-right:none;padding-right:0}.lp .snum{font-family:var(--lp-mono);font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--lp-accent-2);margin-bottom:16px}.lp .step h3{font-family:var(--lp-sans);font-weight:750;font-size:18px;margin:0 0 8px;color:var(--lp-ink);letter-spacing:-.01em}.lp .step p{color:var(--lp-muted);font-size:14.5px;margin:0;line-height:1.55}.lp .feats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--lp-rule);border:1px solid var(--lp-rule);border-radius:12px;overflow:hidden}.lp .feat{background:var(--lp-paper);padding:28px 30px;transition:.15s}.lp .feat:hover{background:var(--lp-accent-wash)}.lp .feat .idx{font-family:var(--lp-mono);font-size:11px;letter-spacing:.14em;color:var(--lp-faint);margin-bottom:14px}.lp .feat h3{font-family:var(--lp-sans);font-weight:750;font-size:16.5px;margin:0 0 8px;color:var(--lp-ink);letter-spacing:-.012em}.lp .feat p{color:var(--lp-muted);font-size:14px;margin:0;line-height:1.56}.lp .pfacts{max-width:660px;border-top:1px solid var(--lp-rule)}.lp .pfact{display:flex;align-items:center;gap:15px;padding:17px 2px;border-bottom:1px solid var(--lp-rule)}.lp .pfact svg{width:18px;height:18px;color:var(--lp-accent-2);flex:none}.lp .pfact .t{font-family:var(--lp-sans);font-weight:650;font-size:15.5px;color:var(--lp-ink)}.lp .pfact .m{margin-left:auto;font-family:var(--lp-mono);font-size:12px;color:var(--lp-faint)}.lp .plans{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--lp-rule);border-radius:12px;overflow:hidden}.lp .plan{padding:26px 22px 24px;display:flex;flex-direction:column;background:var(--lp-paper);border-right:1px solid var(--lp-rule);position:relative;font-variant-numeric:tabular-nums}.lp .plan:last-child{border-right:none}.lp .plan.hot{background:var(--lp-accent-wash)}.lp .plan.hot:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--lp-accent)}.lp .ptag{font-family:var(--lp-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-accent-2);height:18px;margin-bottom:8px}.lp .plan h3{font-family:var(--lp-sans);font-weight:750;font-size:18px;margin:0 0 6px;color:var(--lp-ink)}.lp .price{font-family:var(--lp-serif);font-weight:600;font-size:34px;letter-spacing:-.01em;color:var(--lp-ink);margin:4px 0 2px}.lp .price small{font-family:var(--lp-sans);font-weight:600}.lp .pdesc,.lp .price small{font-size:13px;color:var(--lp-muted)}.lp .pdesc{margin:0 0 20px;min-height:34px}.lp .plan ul{list-style:none;margin:0 0 22px;padding:0;flex:1}.lp .plan li{font-family:var(--lp-sans);font-size:13.5px;color:var(--lp-ink-2);padding:6px 0 6px 22px;position:relative}.lp .plan li:before{content:"";position:absolute;left:2px;top:11px;width:10px;height:5px;border-left:2px solid var(--lp-accent-2);border-bottom:2px solid var(--lp-accent-2);transform:rotate(-45deg)}.lp .plan .btn{justify-content:center;width:100%;padding:11px}.lp .final{border-top:1px solid var(--lp-rule);position:relative;overflow:hidden;padding:92px 0}.lp .final:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(620px 300px at 20% 30%,var(--lp-glow),transparent 66%);opacity:.6}.lp .final .doc{display:flex;flex-direction:column;align-items:flex-start;gap:0}.lp .final h2{font-family:var(--lp-serif);font-weight:600;font-size:clamp(30px,4vw,48px);line-height:1.05;letter-spacing:-.018em;color:var(--lp-ink);margin:0 0 16px;max-width:16ch}.lp .final h2 i{font-style:italic;color:var(--lp-accent-2)}.lp .final p{font-family:var(--lp-sans);color:var(--lp-muted);font-size:17px;margin:0 0 30px}.lp footer{border-top:1px solid var(--lp-rule);padding:40px 0;color:var(--lp-muted)}.lp footer .doc{display:flex;flex-wrap:wrap;gap:18px;align-items:center;font-size:13.5px}.lp footer .tag{color:var(--lp-faint);font-family:var(--lp-mono);font-size:12px}.lp footer .flinks{margin-left:auto;display:flex;gap:22px;font-family:var(--lp-mono);font-size:12.5px}.lp footer a:hover{color:var(--lp-ink)}@media (max-width:880px){.lp .navlinks{display:none}.lp .winbody{grid-template-columns:1fr 1fr}.lp .rail{display:none}.lp .steps{grid-template-columns:1fr}.lp .step{border-right:none;border-bottom:1px solid var(--lp-rule);padding:22px 0}.lp .step:first-child{padding-top:0}.lp .step:last-child{border-bottom:none}.lp .step:not(:first-child){padding-left:0}.lp .feats{grid-template-columns:1fr}.lp .lib-grid,.lp .studio-grid{grid-template-columns:1fr;gap:34px}.lp .plans{grid-template-columns:1fr 1fr}.lp .plan:nth-child(2n){border-right:none}.lp .plan:nth-child(-n+2){border-bottom:1px solid var(--lp-rule)}}@media (max-width:560px){.lp .winbody{grid-template-columns:1fr}.lp .pane-edit{display:none}.lp .libbody,.lp .plans,.lp .studiobody{grid-template-columns:1fr}.lp .plan{border-right:none;border-bottom:1px solid var(--lp-rule)}.lp .plan:last-child{border-bottom:none}}.lp:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}[data-theme=dark] .lp:after{mix-blend-mode:screen;opacity:.05}@media (prefers-color-scheme:dark){:not([data-theme=light]) .lp:after{mix-blend-mode:screen;opacity:.05}}.lp nav.bar{transition:background .3s,box-shadow .3s,border-color .3s}.lp nav.bar .doc{transition:height .3s cubic-bezier(.2,.7,.2,1)}.lp nav.bar.scrolled{background:color-mix(in srgb,var(--lp-paper) 90%,transparent);box-shadow:0 10px 30px -22px rgba(25,21,33,.5);border-color:var(--lp-rule-2)}.lp nav.bar.scrolled .doc{height:54px}.lp .navlinks a{position:relative}.lp .navlinks a:after{content:"";position:absolute;left:0;bottom:-5px;height:1px;width:100%;background:var(--lp-accent);transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.2,.7,.2,1)}.lp .navlinks a:hover:after{transform:scaleX(1)}.lp .btn.pri{position:relative;overflow:hidden}.lp .btn.pri:after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-18deg);opacity:0}.lp .btn.pri:hover:after{animation:lp-sheen .85s ease}@keyframes lp-sheen{0%{left:-70%;opacity:1}to{left:130%;opacity:1}}.lp .mastrule{transform:scaleX(0);transform-origin:left;animation:lp-drawrule 1s cubic-bezier(.2,.7,.2,1) .55s forwards}@keyframes lp-drawrule{to{transform:scaleX(1)}}.lp .figstage{perspective:1600px;animation:lp-float 8s ease-in-out infinite}@keyframes lp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.lp .window{transition:transform .35s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d;will-change:transform}.lp .figure:before{animation:lp-aurora 14s ease-in-out infinite alternate}@keyframes lp-aurora{0%{transform:translate(-3%,-1%) scale(1);opacity:.7}to{transform:translate(4%,3%) scale(1.12);opacity:1}}.lp .final:before{animation:lp-aurora 16s ease-in-out infinite alternate}.lp .feat{position:relative;overflow:hidden}.lp .feat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--lp-accent);transform:scaleY(0);transform-origin:top;transition:transform .28s cubic-bezier(.2,.7,.2,1)}.lp .feat:hover:before{transform:scaleY(1)}.lp .feat .idx{transition:color .2s}.lp .feat:hover .idx{color:var(--lp-accent-2)}.lp #srcbox{caret-color:transparent}.lp #srcbox:focus{caret-color:var(--lp-accent)}.lp .reveal{opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}.lp .reveal.in{opacity:1;transform:none}.lp .reveal .kick:before{transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1) .2s}.lp .reveal.in .kick:before{transform:scaleX(1)}.lp .reveal-group>*{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}.lp .reveal-group.in>*{opacity:1;transform:none}.lp .reveal-group.in>:nth-child(2){transition-delay:.07s}.lp .reveal-group.in>:nth-child(3){transition-delay:.14s}.lp .reveal-group.in>:nth-child(4){transition-delay:.21s}.lp .reveal-group.in>:nth-child(5){transition-delay:.28s}.lp .reveal-group.in>:nth-child(6){transition-delay:.35s}.lp .studio-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:52px;align-items:center}.lp .caps{list-style:none;margin:22px 0 26px;padding:0;display:grid;gap:13px}.lp .caps li{display:flex;align-items:flex-start;gap:12px;font-family:var(--lp-sans);font-size:14.5px;color:var(--lp-ink-2);line-height:1.5}.lp .caps li svg{width:18px;height:18px;color:var(--lp-accent-2);flex:none;margin-top:1px}.lp .caps li b{font-weight:700;color:var(--lp-ink)}.lp .studiowin{transition:box-shadow .3s}.lp .studiowin .winbar{gap:6px}.lp .stabs{display:flex;gap:3px;margin-left:8px}.lp .stab{font-family:var(--lp-mono);font-size:11.5px;color:var(--lp-muted);padding:5px 11px;border-radius:7px;cursor:default;transition:.15s}.lp .stab:hover{color:var(--lp-ink)}.lp .stab.on{background:var(--lp-accent-wash);color:var(--lp-accent-2);font-weight:600;box-shadow:inset 0 0 0 1px var(--lp-rule)}.lp .stitle-mono{margin-left:auto;font-family:var(--lp-mono);font-size:11.5px;color:var(--lp-faint)}.lp .studiobody{display:grid;grid-template-columns:148px 1fr;min-height:300px}.lp .sdata{background:var(--lp-paper-2);border-right:1px solid var(--lp-rule);padding:14px 12px;font-family:var(--lp-mono);font-size:12px}.lp .sdhead{color:var(--lp-faint);font-size:10px;letter-spacing:.16em;margin-bottom:10px}.lp .sdrow{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:6px;color:var(--lp-ink-2);margin-bottom:2px;transition:.14s}.lp .sdrow.on{background:var(--lp-accent-wash);color:var(--lp-accent-2);box-shadow:inset 0 0 0 1px var(--lp-rule)}.lp .sdrow span:last-child{color:var(--lp-muted);font-variant-numeric:tabular-nums}.lp .sdrow.add{color:var(--lp-faint)}.lp .scanvas{padding:16px 18px;display:flex;flex-direction:column;background:var(--lp-card)}.lp .scanvas .ctitle{font-family:var(--lp-sans);font-weight:750;font-size:14px;color:var(--lp-ink)}.lp .scanvas .csub{font-family:var(--lp-mono);font-size:11px;color:var(--lp-faint);margin:1px 0 10px}.lp .scanvas svg.chart{width:100%;height:auto;flex:1;min-height:0}.lp .sbar{transform:scaleY(0);transform-origin:bottom;transform-box:fill-box;transition:transform .75s cubic-bezier(.2,.7,.2,1)}.lp .studio-fig.in .sbar{transform:scaleY(1)}.lp .strend{stroke:var(--lp-ink);stroke-dasharray:340;stroke-dashoffset:340;transition:stroke-dashoffset 1.1s ease .45s}.lp .studio-fig.in .strend{stroke-dashoffset:0}.lp .sdot circle{fill:var(--lp-ink)}.lp .sdot{opacity:0;transition:opacity .35s ease .95s}.lp .studio-fig.in .sdot{opacity:1}.lp .sexport{grid-column:1/-1;border-top:1px solid var(--lp-rule);background:var(--lp-paper-2);padding:10px 14px;display:flex;align-items:center;gap:8px}.lp .schip{font-family:var(--lp-mono);font-size:11px;color:var(--lp-ink-2);border:1px solid var(--lp-rule-2);border-radius:7px;padding:5px 11px;cursor:default;transition:.15s}.lp .schip:hover{border-color:var(--lp-accent);color:var(--lp-accent-2)}.lp .sexport .ins{margin-left:auto;font-family:var(--lp-sans);font-weight:650;font-size:12.5px;color:#fff;background:var(--lp-accent);border-radius:8px;padding:7px 14px;box-shadow:0 8px 20px -10px rgba(124,58,237,.7);cursor:default}.lp .lib-grid{display:grid;grid-template-columns:1.14fr .86fr;gap:52px;align-items:center}.lp .libwin .winbar{gap:6px}.lp .libbody{display:grid;grid-template-columns:1fr .92fr;min-height:306px}.lp .lib-list{border-right:1px solid var(--lp-rule);padding:12px}.lp .lib-search{display:flex;align-items:center;gap:8px;border:1px solid var(--lp-rule-2);border-radius:8px;padding:8px 11px;margin-bottom:9px;color:var(--lp-faint);font-family:var(--lp-mono);font-size:12px}.lp .lib-search svg{width:13px;height:13px}.lp .lib-row{padding:9px 10px;border-radius:8px;cursor:default;transition:.14s}.lp .lib-row:hover{background:var(--lp-paper-2)}.lp .lib-row.on{background:var(--lp-accent-wash);box-shadow:inset 0 0 0 1px var(--lp-rule)}.lp .lib-row .t{font-family:var(--lp-sans);font-weight:650;font-size:12.5px;color:var(--lp-ink);line-height:1.3;margin-bottom:3px}.lp .lib-row .m{font-family:var(--lp-mono);font-size:10.5px;color:var(--lp-muted);display:flex;align-items:center;gap:7px}.lp .lib-row .m .cc{margin-left:auto;color:var(--lp-accent-2);opacity:0;transition:.15s}.lp .lib-row.on .m .cc,.lp .lib-row:hover .m .cc{opacity:1}.lp .lib-detail{padding:16px;display:flex;flex-direction:column;background:var(--lp-card)}.lp .lib-detail .dh{font-family:var(--lp-mono);font-size:10px;letter-spacing:.16em;color:var(--lp-faint);margin-bottom:9px}.lp .lib-detail .dt{font-family:var(--lp-serif);font-weight:600;font-size:16px;line-height:1.2;color:var(--lp-ink);margin-bottom:5px}.lp .lib-detail .dm{font-family:var(--lp-mono);font-size:11px;color:var(--lp-muted);margin-bottom:12px;line-height:1.5}.lp .bibtex{font-family:var(--lp-mono);font-size:10.5px;line-height:1.55;color:var(--lp-ink-2);background:var(--lp-paper-2);border:1px solid var(--lp-rule);border-radius:8px;padding:10px 11px;white-space:pre;overflow-x:auto;margin-bottom:0}.lp .bibtex .k{color:var(--lp-accent-2)}.lp .cite-preview{font-family:var(--lp-serif);font-style:italic;font-size:13px;color:var(--lp-ink-2);border-top:1px solid var(--lp-rule);margin-top:13px;padding-top:12px}.lp .cite-pop{font-style:normal;font-family:var(--lp-mono);font-size:.82em;color:var(--lp-accent-2);background:var(--lp-accent-wash);border-radius:5px;padding:1px 6px;display:inline-block;opacity:0;transform:scale(.5);transition:opacity .3s ease .55s,transform .35s cubic-bezier(.2,.9,.3,1.5) .55s}.lp .lib-fig.in .cite-pop{opacity:1;transform:none}.lp .lib-actions{display:flex;gap:8px;margin-top:14px}.lp .lib-actions .cite-btn{font-weight:650;color:#fff;background:var(--lp-accent);border-radius:8px;box-shadow:0 8px 20px -10px rgba(124,58,237,.7)}.lp .lib-actions .cite-btn,.lp .lib-actions .copy-btn{font-family:var(--lp-mono);font-size:12px;padding:8px 13px;cursor:default}.lp .lib-actions .copy-btn{color:var(--lp-ink-2);border:1px solid var(--lp-rule-2);border-radius:8px;transition:.15s}.lp .lib-actions .copy-btn:hover{border-color:var(--lp-accent);color:var(--lp-accent-2)}@media (prefers-reduced-motion:reduce){.lp .reveal,.lp .reveal-group>*{opacity:1!important;transform:none!important;transition:none!important}.lp .reveal .kick:before{transform:scaleX(1)!important}.lp .mastrule{transform:scaleX(1)}.lp .figstage,.lp .figure:before,.lp .final:before,.lp .mastrule{animation:none}.lp:after{display:none}.lp .sbar{transform:scaleY(1)!important}.lp .sbar,.lp .strend{transition:none!important}.lp .strend{stroke-dashoffset:0!important}.lp .cite-pop,.lp .sdot{opacity:1!important}.lp .cite-pop{transform:none!important}}