.container{max-width:1200px;margin:0 auto;padding-inline:24px}.topbar{z-index:var(--z-sticky);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--ed-line);background:#fafafad1;position:sticky;top:0}.topbar-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:32px;max-width:1200px;margin:0 auto;padding:14px 24px;display:grid}.brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-wm{font-family:var(--ed-mono);letter-spacing:-.02em;color:var(--ed-ink);font-size:16px;font-weight:500;line-height:1}.brand-wm .dot{color:var(--ed-signal);margin:0 1px;font-weight:700}.nav{justify-self:center;align-items:center;gap:4px;display:flex}.nav>a,.nav .nav-item{font-family:var(--ed-sans);color:var(--ed-mute);cursor:pointer;letter-spacing:-.005em;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:8px 14px;font-size:14px;font-weight:500;line-height:20px;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.nav>a:hover,.nav .nav-item:hover{color:var(--ed-ink);background:var(--ed-line-soft)}.nav>a.current,.nav .nav-item.current{color:var(--ed-ink)}.nav-chev{opacity:.6;flex:none;transition:transform .15s}.nav-dropdown[data-open] .nav-chev{transform:rotate(180deg)}@media (max-width:1240px){.nav>a,.nav .nav-item{padding-inline:10px}}.nav-dropdown{position:relative}.nav-dropdown[data-open] .nav-menu{display:block}.nav button.nav-item{background:0 0;border:0;margin:0;font-family:inherit}.nav-menu{top:100%;background:var(--ed-card);border:1px solid var(--ed-line);border-radius:12px;min-width:320px;margin-top:8px;padding:8px;display:none;position:absolute;inset-inline-start:0;box-shadow:0 12px 32px -18px #0a0a0a1f}.nav-menu a{color:inherit;border-radius:8px;padding:10px 12px;text-decoration:none;transition:background .12s;display:block}.nav-menu a:hover{background:var(--ed-paper-warm)}.ndm-h{font-family:var(--ed-sans);color:var(--ed-ink);letter-spacing:-.005em;font-size:14px;font-weight:500;display:block}.ndm-p{font-family:var(--ed-mono);color:var(--ed-mute);letter-spacing:-.005em;margin-top:2px;font-size:11px;display:block}.nav-menu-foot{font-family:var(--ed-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ed-mute);padding:8px 12px 4px;font-size:10px}.nav-menu-sep{background:var(--ed-line);height:1px;margin:6px 0}.cta-row{justify-self:end;align-items:center;gap:10px;display:flex}.btn{font-family:var(--ed-sans);letter-spacing:-.005em;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s,opacity .15s,transform .1s;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:active{transform:translateY(.5px)}.btn .arr{transition:transform .15s;display:inline-block}.btn:hover .arr{transform:translate(3px)}.btn-sm{padding:7px 13px;font-size:13px}.btn-lg{padding:13px 22px;font-size:14px}.btn-primary{background:var(--ed-ink);color:var(--ed-paper);border-color:var(--ed-ink)}.btn-primary:hover{opacity:.88}.btn-secondary{background:var(--ed-card);color:var(--ed-ink);border-color:var(--ed-line)}.btn-secondary:hover{border-color:var(--ed-mute-3);background:var(--ed-paper)}.btn-ghost{color:var(--ed-ink);background:0 0}.btn-ghost:hover{background:var(--ed-line-soft)}.btn-on-dark-primary{background:var(--ed-paper);color:var(--ed-ink);border-color:var(--ed-paper)}.btn-on-dark-primary:hover{opacity:.92}.btn-on-dark-ghost{color:var(--ed-paper);background:0 0;border-color:#ffffff2e}.btn-on-dark-ghost:hover{background:#ffffff0f}.page-hero{border-bottom:1px solid var(--ed-line);padding:96px 0 64px;position:relative;overflow:hidden}.page-hero.dark{background:var(--ed-ink);color:var(--ed-paper);border-bottom-color:var(--ed-ink-2)}.page-hero .bg-grid{pointer-events:none;background-image:linear-gradient(90deg,#0a0a0a07 1px,#0000 1px),linear-gradient(#0a0a0a07 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 40%,#000 25%,#0000 75%);mask-image:radial-gradient(80% 60% at 50% 40%,#000 25%,#0000 75%)}.page-hero.dark .bg-grid{background-image:linear-gradient(90deg,#ffffff0a 1px,#0000 1px),linear-gradient(#ffffff0a 1px,#0000 1px)}.page-hero .container{position:relative}.ph-eyebrow{font-family:var(--ed-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ed-mute);border:1px solid var(--ed-line);border-radius:var(--p-radius-full);background:var(--ed-card);padding:5px 12px;font-size:11px;display:inline-block}.page-hero.dark .ph-eyebrow{color:var(--ed-mute-3);background:#ffffff0a;border-color:#ffffff1f}.page-hero h1{font-family:var(--ed-sans);letter-spacing:-.035em;color:var(--ed-ink);text-wrap:balance;max-width:920px;margin:22px 0 0;font-size:56px;font-weight:500;line-height:1.05}.page-hero.dark h1{color:var(--ed-paper)}.page-hero h1 .accent{color:var(--ed-signal-2);font-style:italic;font-weight:400}.page-hero.dark h1 .accent{color:var(--ed-signal)}@media (max-width:768px){.page-hero{padding:64px 0 48px}.page-hero h1{font-size:36px}}.ph-lede{font-family:var(--ed-sans);color:var(--ed-mute);letter-spacing:-.005em;max-width:680px;margin:22px 0 0;font-size:18px;line-height:1.6}.page-hero.dark .ph-lede{color:var(--ed-mute-3)}.ph-cta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px;display:flex}.s-block{border-bottom:1px solid var(--ed-line);padding:96px 0}.s-block.dark{background:var(--ed-ink);color:var(--ed-paper);border-bottom-color:var(--ed-ink-2)}@media (max-width:768px){.s-block{padding:64px 0}}.s-head{max-width:720px;margin-bottom:16px}.eyebrow{font-family:var(--ed-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ed-mute);align-items:center;gap:10px;margin-bottom:6px;font-size:11px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--ed-ink);opacity:.6;width:18px;height:1px;display:inline-block}.eyebrow.on-dark{color:var(--ed-mute-2)}.eyebrow.on-dark:before{background:var(--ed-paper);opacity:.55}.section-h2{font-family:var(--ed-sans);letter-spacing:-.028em;color:var(--ed-ink);text-wrap:balance;margin:8px 0 12px;font-size:38px;font-weight:500;line-height:1.15}.s-block.dark .section-h2{color:var(--ed-paper)}@media (max-width:768px){.section-h2{font-size:28px}}.section-lede{font-family:var(--ed-sans);color:var(--ed-mute);max-width:620px;margin:0;font-size:16px;line-height:1.65}.s-block.dark .section-lede{color:var(--ed-mute-2)}.steps{border:1px solid var(--ed-line);background:var(--ed-card);border-radius:16px;flex-direction:column;gap:0;margin-top:32px;display:flex;overflow:hidden}.step{border-bottom:1px solid var(--ed-line);grid-template-columns:64px 1fr;align-items:start;gap:24px;padding:26px 28px;display:grid}.step:last-child{border-bottom:none}.step .n{font-family:var(--ed-mono);color:var(--ed-mute-3);letter-spacing:-.04em;font-size:24px;font-weight:600;line-height:1}.step.done .n{color:var(--ed-ink)}.step h4{font-family:var(--ed-sans);color:var(--ed-ink);letter-spacing:-.015em;margin:0 0 6px;font-size:17px;font-weight:500}.step p{font-family:var(--ed-sans);color:var(--ed-mute);max-width:720px;margin:0;font-size:14px;line-height:1.6}.step .ex{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.chip{font-family:var(--ed-mono);color:var(--ed-ink-2);background:var(--ed-paper-2);letter-spacing:.005em;border-radius:4px;padding:4px 10px 3px;font-size:11px}.faq{flex-direction:column;gap:0;margin-top:24px;display:flex}.faq details{border-bottom:1px solid var(--ed-line);padding:18px 0}.faq details[open] summary{color:var(--ed-ink)}.faq summary{font-family:var(--ed-sans);color:var(--ed-ink-2);letter-spacing:-.01em;cursor:pointer;padding-inline-end:24px;font-size:16px;font-weight:500;list-style:none;transition:color .15s;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";inset-inline-end:0;font-family:var(--ed-mono);color:var(--ed-mute);font-size:18px;position:absolute;top:50%;transform:translateY(-50%)}.faq details[open] summary:after{content:"−";color:var(--ed-ink)}.faq summary:hover{color:var(--ed-ink)}.faq .a{font-family:var(--ed-sans);color:var(--ed-mute);max-width:720px;margin:12px 0 0;font-size:14px;line-height:1.7}.faq .a strong{color:var(--ed-ink);font-weight:500}.faq .a code{font-family:var(--ed-mono);background:var(--ed-paper-2);color:var(--ed-ink);border-radius:4px;padding:1px 5px;font-size:13px}.final{background:var(--ed-ink);color:var(--ed-paper);padding:120px 0;position:relative;overflow:hidden}.final .bg-grid{pointer-events:none;background-image:linear-gradient(90deg,#ffffff0a 1px,#0000 1px),linear-gradient(#ffffff0a 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60%,#000 25%,#0000 75%);mask-image:radial-gradient(70% 60%,#000 25%,#0000 75%)}.final .container{text-align:center;position:relative}.final h2{font-family:var(--ed-sans);letter-spacing:-.035em;color:var(--ed-paper);text-wrap:balance;margin:22px 0 0;font-size:56px;font-weight:500;line-height:1.05}.final h2 .accent{color:var(--ed-signal);font-style:italic;font-weight:400}@media (max-width:768px){.final{padding:72px 0}.final h2{font-size:34px}}.final p{font-family:var(--ed-sans);color:var(--ed-mute-2);max-width:580px;margin:22px auto 0;font-size:17px;line-height:1.6}.final-cta{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:32px;display:flex}.final-meta{font-family:var(--ed-mono);color:var(--ed-mute-2);letter-spacing:.04em;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:24px;font-size:12px;display:inline-flex}.final-meta .sep{opacity:.4}footer{background:var(--ed-paper);border-top:1px solid var(--ed-line);padding:64px 0 36px}.footer-grid{grid-template-columns:2.2fr repeat(4,1fr);gap:36px;display:grid}.footer-beta{font-family:var(--ed-mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.footer-brand-block .footer-tag{font-family:var(--ed-sans);color:var(--ed-mute);max-width:280px;margin-top:12px;font-size:13px;line-height:1.6}.footer-col h4,.footer-col-title{font-family:var(--ed-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ed-mute);margin:0 0 14px;font-size:11px;font-weight:500}.footer-col ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.footer-col a{font-family:var(--ed-sans);color:var(--ed-ink-2);letter-spacing:-.005em;font-size:14px;text-decoration:none;transition:color .15s}.footer-col a:hover{color:var(--ed-signal-2)}.footer-bottom{border-top:1px solid var(--ed-line);font-family:var(--ed-mono);color:var(--ed-mute);letter-spacing:.02em;justify-content:space-between;align-items:center;margin-top:56px;padding-top:24px;font-size:12px;display:flex}.footer-bottom .status{align-items:center;gap:8px;display:inline-flex}.footer-bottom .pip{background:var(--ed-signal);border-radius:60%;width:7px;height:7px}.footer-bottom a{color:var(--ed-mute);text-underline-offset:2px;text-decoration:underline;transition:color .15s}.footer-bottom a:hover{color:var(--ed-ink)}.footer-legal{border-top:1px solid var(--ed-line);flex-direction:column;gap:8px;margin-top:18px;padding-top:18px;display:flex}.footer-legal p{font-family:var(--ed-sans);color:var(--ed-mute);max-width:920px;margin:0;font-size:12px;line-height:1.65}.footer-legal a{color:var(--ed-mute);text-underline-offset:2px;text-decoration:underline}.footer-legal a:hover{color:var(--ed-ink)}@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-brand-block{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:10px}}.ed-badge{font-family:var(--ed-mono);letter-spacing:.08em;text-transform:uppercase;vertical-align:2px;white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 7px 2px;font-size:10px;font-weight:600;display:inline-flex}.ed-badge:before{content:"";border-radius:60%;flex:none;width:5px;height:5px}.ed-badge.live{background:var(--ed-signal-dim);color:var(--ed-signal-2)}.ed-badge.live:before{background:var(--ed-signal)}.ed-badge.beta{background:var(--ed-warn-dim);color:var(--ed-warn)}.ed-badge.beta:before{background:var(--ed-warn);animation:1.6s ease-in-out infinite ed-pulse}.ed-badge.roadmap{background:var(--ed-paper-2);color:var(--ed-mute);border:1px solid var(--ed-line)}.ed-badge.roadmap:before{background:var(--ed-mute)}@keyframes ed-pulse{0%,to{opacity:1}50%{opacity:.35}}.ed-on-dark .brand-wm{color:var(--ed-paper)}.ed-on-dark .brand svg circle{stroke:var(--ed-paper)}.ed-codetabs{background:var(--bg-dark);border:1px solid var(--line-dark);border-radius:12px;overflow:hidden;box-shadow:0 24px 48px -28px #00000080}.ed-codetabs-bar{border-bottom:1px solid var(--line-dark);padding:0;background:var(--bg-dark-raised);justify-content:space-between;align-items:center;padding-inline-end:14px;display:flex}.ed-codetabs-tabs{scrollbar-width:none;align-items:stretch;display:flex;overflow-x:auto}.ed-codetabs-tabs::-webkit-scrollbar{display:none}.ed-codetabs-tab{font-family:var(--ed-mono);color:var(--ed-mute-2);cursor:pointer;letter-spacing:-.005em;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 16px 11px;font-size:12px;transition:color .15s,border-color .15s}.ed-codetabs-tab:hover{color:var(--ed-paper)}.ed-codetabs-tab.on{color:var(--ed-paper);border-bottom-color:var(--ed-signal)}.ed-codetabs-right{align-items:center;gap:12px;display:flex}.ed-codetabs-file{font-family:var(--ed-mono);color:var(--ed-mute);letter-spacing:.02em;font-size:11px}.ed-codetabs-copy{color:var(--ed-mute-2);font-family:var(--ed-mono);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:1px solid #ffffff1f;border-radius:4px;padding:5px 9px 4px;font-size:11px;transition:color .15s,border-color .15s}.ed-codetabs-copy:hover{color:var(--ed-paper);border-color:#ffffff3d}.ed-codetabs-pre{font-family:var(--ed-mono);color:var(--ed-paper);tab-size:2;margin:0;padding:22px 24px;font-size:13px;line-height:1.75;overflow-x:auto}.ed-codetabs-pre .c{color:var(--code-com)}.ed-codetabs-pre .k{color:#bae6fd}.ed-codetabs-pre .s{color:#86efac}.ed-codetabs-pre .f{color:#fcd34d}.ed-codetabs-pre .p{color:var(--code-com)}.ed-codetabs-pre .n{color:#fcd34d}.ed-codetabs-pre .g{color:var(--ed-signal)}.ed-codetabs-pre .r{color:var(--ed-error)}.pricing-grid{grid-template-columns:repeat(var(--pg-cols,5), 1fr);gap:14px;margin-top:32px;display:grid}.tier{background:var(--ed-card);border:1px solid var(--ed-line);border-radius:16px;flex-direction:column;gap:12px;padding:26px 22px 24px;display:flex;position:relative}.tier.featured{background:var(--ed-ink);color:var(--ed-paper);border-color:var(--ed-ink)}.tier-tag{top:-10px;font-family:var(--ed-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--ed-paper-warm);color:var(--ed-ink);border:1px solid var(--ed-line);border-radius:4px;padding:4px 8px 3px;font-size:10px;font-weight:700;position:absolute;inset-inline-start:22px}.tier-name{font-family:var(--ed-sans);color:var(--ed-ink);letter-spacing:-.01em;font-size:16px;font-weight:500}.tier.featured .tier-name{color:var(--ed-paper)}.tier-price{font-family:var(--ed-mono);letter-spacing:-.05em;color:var(--ed-ink);margin-top:4px;font-size:42px;font-weight:500;line-height:1}.tier.featured .tier-price{color:var(--ed-paper)}.tier-price .sym{color:var(--ed-mute);margin-inline-end:1px;font-size:22px}.tier.featured .tier-price .sym{color:var(--ed-mute-2)}.tier-price .per{color:var(--ed-mute);font-size:12px;font-weight:400}.tier.featured .tier-price .per{color:var(--ed-mute-2)}.tier-cta{margin-top:6px}.tier-cta .btn{justify-content:center;width:100%}.tier-features{font-family:var(--ed-sans);color:var(--ed-ink-2);letter-spacing:-.005em;flex-direction:column;gap:9px;margin:14px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.tier.featured .tier-features{color:var(--ed-mute-2)}.tier-features li{gap:8px;display:flex}.tier-features li:before{content:"·";color:var(--ed-mute);flex:none;width:8px}.tier.featured .tier-features li:before{color:var(--ed-mute-2)}.tier-features .k{color:var(--ed-mute)}.tier.featured .tier-features .k{color:var(--ed-mute-2)}.pricing-note{font-family:var(--ed-mono);color:var(--ed-mute);letter-spacing:.02em;text-align:center;margin-top:28px;font-size:12px}.pricing-note strong{color:var(--ed-ink);font-weight:500}@media (max-width:1100px){.pricing-grid{grid-template-columns:1fr 1fr}}@media (max-width:600px){.pricing-grid{grid-template-columns:1fr}}.nav-toggle{appearance:none;border:1px solid var(--ed-line);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:38px;height:34px;padding:0;display:none}.nav-toggle:hover{border-color:var(--ed-mute-3)}.nav-toggle-bars{width:16px;height:10px;display:block;position:relative}.nav-toggle-bars span{background:var(--ed-ink);width:16px;height:1.5px;transition:transform .16s,opacity .16s;position:absolute;inset-inline-start:0}.nav-toggle-bars span:first-child{top:0}.nav-toggle-bars span:last-child{bottom:0}.nav-toggle-bars[data-open] span:first-child{transform:translateY(4.25px)rotate(45deg)}.nav-toggle-bars[data-open] span:last-child{transform:translateY(-4.25px)rotate(-45deg)}.mobile-panel{top:100%;background:var(--ed-card);border-bottom:1px solid var(--ed-line);box-shadow:var(--ed-shadow-2);max-height:calc(100dvh - 64px);display:none;position:absolute;inset-inline:0;overflow-y:auto}.mobile-panel>nav{flex-direction:column;max-width:1200px;margin:0 auto;padding:12px 24px 20px;display:flex}.mobile-panel a{font-family:var(--ed-sans);color:var(--ed-ink);border-bottom:1px solid var(--ed-line);padding:11px 0;font-size:15px;text-decoration:none}.mobile-panel a:last-child{border-bottom:0}.mobile-panel a:hover{color:var(--ed-accent)}.mp-label{font-family:var(--ed-mono);text-transform:uppercase;letter-spacing:.11em;color:var(--ed-mute);margin-top:16px;margin-bottom:2px;font-size:11px}.mp-label:first-child{margin-top:4px}.mp-sep{background:var(--ed-line);height:1px;margin:14px 0 2px}@media (max-width:1023px){.topbar{position:relative}.topbar-inner{grid-template-columns:auto 1fr auto;gap:12px;padding:12px 20px}.nav,.cta-row .btn-ghost{display:none}.nav-toggle{display:inline-flex}.mobile-panel[data-open]{display:block}}.cta-short{display:none}@media (max-width:479px){.topbar-inner{gap:10px;padding-inline:16px}.cta-long{display:none}.cta-short{display:inline}.topbar-cta .arr{display:none}}.section-stack{flex-direction:column;align-items:stretch;display:flex}.section-stack>*{margin:0}.section-stack>.eyebrow{align-self:flex-start}.section-stack>.eyebrow+.section-h2{margin-block-start:var(--p-space-3h)}.section-stack>.section-h2+*{margin-block-start:var(--p-space-3)}.section-stack>.section-lede+.section-lede{margin-block-start:var(--p-space-4)}.section-stack>.section-lede+:not(.section-lede),.section-stack>:not(.eyebrow,.section-h2,.section-lede)+.section-lede{margin-block-start:var(--p-space-8)}.tool-shell{width:100%;max-width:56rem;padding-block:var(--p-space-12);padding-inline:var(--p-space-6);flex:1;margin-inline:auto}.tool-shell.wide{max-width:80rem}@media (min-width:768px){.tool-shell{padding-block:var(--p-space-16)}}.tool-shell-head{margin-block-end:var(--p-space-10)}.tool-shell-eyebrow{align-items:center;gap:var(--p-space-2h);font-family:var(--ed-mono);font-size:var(--p-size-2);letter-spacing:.1em;text-transform:uppercase;color:var(--ed-mute);font-weight:500;display:inline-flex}.tool-shell-eyebrow:before{content:"";width:var(--p-space-4h);background:var(--ed-ink);opacity:.6;height:1px;display:inline-block}.tool-shell-title{margin-block:var(--p-space-5) 0;font-family:var(--ed-sans);font-weight:500;font-size:var(--p-size-12);letter-spacing:-.035em;color:var(--ed-ink);text-wrap:balance;margin-inline:0;line-height:1.08}@media (max-width:768px){.tool-shell-title{font-size:var(--p-size-10)}}.tool-shell-lede{margin-block:var(--p-space-4) 0;max-width:42rem;font-family:var(--ed-sans);font-size:var(--p-size-7);color:var(--ed-mute);margin-inline:0;line-height:1.55}.tool-shell-panel{gap:var(--p-space-3);padding:var(--p-space-4);background:var(--ed-card);border:1px solid var(--ed-line);border-radius:var(--r-lg);flex-direction:column;display:flex}.tool-shell-label{font-family:var(--ed-mono);font-size:var(--p-size-2);letter-spacing:.1em;text-transform:uppercase;color:var(--ed-mute);margin-block-end:var(--p-space-1);font-weight:500;display:block}
