:root{color-scheme:dark;--brand:#818cf8;--brand-600:#a5b4fc;--brand-700:#c7d2fe;--brand-50:#1e1b4b;--brand-100:#312e81;--accent-hover:#6366f1;--nav:#0b0f1a;--nav-fg:#e5e9f2;--orange:#fb923c;--bg:#0b0f1a;--bg-app:#0b0f1a;--strong:#f8fafc;--fg:#dbe2ee;--muted:#8b96ab;--line:#1f2a3d;--line-strong:#2c3a52;--card:#111827;--soft:#172033;--accent:#6366f1;--accent-fg:#fff;--link:#a5b4fc;--ok:#4ade80;--ok-bg:rgba(34,197,94,.12);--warn:#fbbf24;--warn-bg:rgba(245,158,11,.12);--err:#f87171;--err-bg:rgba(239,68,68,.12);--info-bg:rgba(99,102,241,.12);--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);--ring:0 0 0 3px rgba(99,102,241,.35);--radius:10px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--link);text-underline-offset:2px}h1{font-size:1.5rem;line-height:1.25;margin:1.25rem 0 .9rem;font-weight:600}h2{margin:0 0 .75rem}h2,h3{font-size:1rem;font-weight:600}h3{margin:0 0 .25rem}code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}code{padding:.1em .4em;border-radius:4px;border:1px solid var(--line)}code,kbd{background:var(--soft)}kbd{border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:4px;padding:.05em .4em}pre{background:#0f172a;color:#e2e8f0;border-radius:var(--radius);padding:.85rem 1rem;overflow-x:auto;margin:0;border:1px solid #1e293b}pre code{background:none;border:0;padding:0;color:inherit}.logs{max-height:360px;overflow:auto}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:420px}.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.row.center{justify-content:center}.row.inline input{flex:1 1 160px}.spacer{flex:1 1}.stack{display:flex;flex-direction:column;gap:.85rem}.site-header{border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:30}.site-header nav{padding:0 20px;height:60px}.site-header a{text-decoration:none;color:var(--fg)}.site-header a.btn{color:var(--accent-fg)}.site-header nav>a:not(.brand):not(.btn){padding:.4rem .7rem;border-radius:6px;font-weight:500;color:var(--muted)}.site-header nav>a:not(.brand):not(.btn):hover{color:var(--fg);background:var(--soft)}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.15rem;letter-spacing:-.01em;color:var(--brand)!important}.brand-mark{width:28px;height:28px;display:inline-grid;place-items:center;color:#fff}.brand-mark svg{width:16px;height:16px}.site-footer{padding:2.5rem 20px;margin-top:3rem;font-size:.9rem}.site-footer,.site-footer a{color:var(--muted)}.topbar{background:var(--card);z-index:30}.topbar-in{display:flex;align-items:center;gap:.25rem;height:56px;max-width:1180px;margin:0 auto;padding:0 20px}.topbar .brand{margin-right:1rem}.topbar a.nav{text-decoration:none;font-weight:500;padding:.4rem .75rem;border-radius:6px}.topbar a.nav:hover{color:var(--fg);background:var(--soft)}.topbar a.nav.on{color:var(--brand);background:var(--brand-50)}.topbar .who{font-size:.88rem}.pill{display:inline-flex;align-items:center;padding:.15rem .65rem;border-radius:999px;font-size:.85rem;font-weight:600;border:1px solid var(--line-strong);background:var(--soft)}.page{max-width:1180px;margin:0 auto;padding:0 20px 3rem}.page-head{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;margin:1.6rem 0 1.1rem}.page-head h1{margin:0}.crumb{font-size:.9rem;margin-top:1.25rem}.crumb,.crumb a{color:var(--muted)}.hero-in{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:3rem;gap:3rem;align-items:center;max-width:1180px;margin:0 auto;padding:5rem 20px 5.5rem}@media (max-width:900px){.hero-in{grid-template-columns:1fr;padding:3rem 20px;gap:2rem}}.hero-band h1{font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.08;margin:0 0 1.1rem;letter-spacing:-.025em;font-weight:700}.hero-band p.lead{color:#cbd5e1;margin:0 0 1.75rem;font-size:1.15rem;max-width:34rem}.hero-band .eyebrow{display:inline-block;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#93c5fd;margin-bottom:1rem;font-weight:600}.btn.light{border-color:#fff}.btn.light:hover{background:#e5e7eb;color:#111827;border-color:#e5e7eb}.btn.outline-light{background:transparent;color:#fff;border-color:#ffffff88}.btn.outline-light:hover{background:#ffffff1a}.btn.big{padding:.75rem 1.4rem;font-size:1rem}.term{background:#0b1220;border:1px solid #1e293b;text-align:left}.term-bar{display:flex;gap:.4rem;padding:.6rem .8rem;background:#111c2e;border-bottom:1px solid #1e293b}.term-bar i{width:11px;height:11px;border-radius:50%;background:#4b3c75;display:block}.term pre{white-space:pre;background:none;border:0;color:#e2e8f0;padding:1rem 1.2rem;font-size:.9rem;line-height:1.7}.term .p{color:#60a5fa}.term .g{color:#4ade80}.term .d{color:#94a3b8}.section{max-width:1180px;margin:0 auto;padding:4.5rem 20px 0}.section-title{font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.02em;margin:0 0 .6rem;font-weight:700}.section-sub{color:var(--muted);max-width:40rem;margin:0 0 2.2rem;font-size:1.05rem}.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1.25rem;gap:1.25rem}.feat{padding:1.4rem;border:1px solid var(--line);border-radius:12px;background:var(--card);transition:border-color .15s}.feat .ico{width:42px;height:42px;border-radius:10px;background:var(--brand-50);color:var(--brand);display:grid;place-items:center;margin-bottom:.9rem}.feat .ico svg{width:22px;height:22px}.feat p{margin:0;color:var(--muted)}.steps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1.5rem;gap:1.5rem;counter-reset:s}.step{position:relative;padding-top:3rem}.step:before{counter-increment:s;content:counter(s);position:absolute;top:0;left:0;width:34px;height:34px;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:700}.step p{color:var(--muted);margin:.25rem 0 0}.cta-band{margin:5rem auto 0;max-width:1180px;padding:0 20px}.cta-box{border-radius:12px;padding:3rem 2rem;text-align:center;color:#fff}.cta-box h2{font-size:1.8rem;margin:0 0 .6rem}.cta-box p{color:#dbeafe;margin:0 0 1.5rem}.hero{text-align:center;padding:4rem 16px 3rem}.lead{color:var(--muted);max-width:640px;margin:0 auto 1.5rem;font-size:1.1rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2.5rem}.card{border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.3rem}.card p{margin:0;color:var(--muted)}.card>h2:first-child{padding-bottom:.65rem;border-bottom:1px solid var(--line);margin:-.1rem -1.3rem .35rem;padding-left:1.3rem;padding-right:1.3rem}a.card{text-decoration:none;color:inherit}a.card:hover{border-color:var(--brand)}.steps{padding-left:1.2rem}.steps li{margin-bottom:.75rem}.steps span{display:block;color:var(--muted)}.prose{max-width:740px;padding-bottom:2rem}.prose h2{margin-top:2rem;font-size:1.3rem}.btn{padding:.5rem 1rem;border:1px solid var(--accent);color:var(--accent-fg);font:inherit;text-decoration:none;line-height:1.3;transition:background .12s,border-color .12s}.btn.ghost:hover{color:var(--fg)}.btn.small{padding:.3rem .7rem;font-size:.88rem}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-600);outline-offset:1px}.danger-btn{color:#fff}.danger-btn:hover{background:#8f1a10;border-color:#8f1a10}.danger{border-color:var(--err)}input,select,textarea{padding:.5rem .7rem;border-radius:6px;border:1px solid var(--line-strong);background:var(--card);color:var(--fg);font:inherit;min-width:0}input::placeholder{color:var(--muted);opacity:.75}input:focus,select:focus{border-color:var(--brand-600)}label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.92rem}label>span{font-weight:400}.list{list-style:none;padding:0;margin:.5rem 0}.list li{padding:.7rem 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .6rem;font-size:.78rem;font-weight:600;background:var(--soft);color:var(--muted);border:1px solid var(--line)}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge.ok{color:var(--ok);background:var(--ok-bg)}.badge.ok,.badge.warn{border-color:transparent}.badge.warn{color:var(--warn);background:var(--warn-bg)}.badge.err{color:var(--err);background:var(--err-bg);border-color:transparent}.badge.muted{color:var(--muted)}a.badge{text-decoration:none}.alert{padding:.65rem .95rem;border-radius:6px;border:1px solid;white-space:pre-wrap;margin:.25rem 0}.alert.ok{color:var(--ok);background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.alert.err{color:var(--err);background:var(--err-bg);border-color:color-mix(in srgb,var(--err) 35%,transparent)}.alert.warn{color:var(--warn);background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}fieldset.plans{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}fieldset.plans legend{font-weight:600;margin-bottom:.6rem;padding:0}.plan{cursor:pointer;font-weight:400;gap:.25rem;transition:border-color .12s,box-shadow .12s}.plan:hover{border-color:var(--line-strong)}.plan input{align-self:flex-start;accent-color:var(--brand)}.plan ul{padding-left:1.1rem;margin:.5rem 0 0;color:var(--muted)}.price{font-size:1.6rem;font-weight:700;color:var(--fg)!important;margin:0;letter-spacing:-.01em}.price small{font-size:.85rem;font-weight:400;color:var(--muted)}.lead-left{color:var(--muted);margin-bottom:1.5rem}.info{display:grid;grid-template-columns:auto 1fr;grid-gap:.3rem 1.25rem;gap:.3rem 1.25rem;margin:0}.info dt{color:var(--muted)}.info dd{margin:0;font-weight:600}table{width:100%;font-size:.92rem}th{letter-spacing:.04em}td,th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--line)}.num{text-align:right}.pos{color:var(--ok)}.neg{color:var(--err)}.card.stack{align-items:stretch}.deploy-log{min-height:260px;max-height:70vh;white-space:pre-wrap;word-break:break-word}details summary{cursor:pointer;color:var(--link)}td .stack{gap:.4rem}label.check{flex-direction:row;align-items:flex-start;gap:.6rem;font-weight:400}label.check input{margin-top:.3rem;accent-color:var(--brand)}ul{padding-left:1.2rem}.prose ul li{margin-bottom:.35rem}.toast{position:fixed;top:1rem;right:1rem;z-index:50;max-width:min(92vw,420px);background:var(--card);color:var(--ok);border:1px solid var(--ok);border-radius:8px;padding:.75rem 1rem;box-shadow:0 8px 28px rgba(0,0,0,.18);font-weight:600}.spinner{display:inline-block;width:.9em;height:.9em;border:2px solid;border-right:2px solid transparent;border-radius:50%;vertical-align:-.12em;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}button:disabled{opacity:.65;cursor:progress}.pending-hint{display:block;flex-basis:100%;color:var(--muted);font-size:.9rem}.field-error{color:var(--err);font-weight:600}input[aria-invalid=true]{border-color:var(--err)}code.token{display:block;padding:.5rem .75rem;word-break:break-all;-webkit-user-select:all;-moz-user-select:all;user-select:all}details{margin:.25rem 0}.app-list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.app-item{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;flex-wrap:wrap}.app-item:last-child{border-bottom:0}.app-item:hover{background:var(--brand-50)}.app-ico{width:34px;height:34px;border-radius:8px;color:var(--brand);display:grid;place-items:center;flex:none;font-weight:700}.app-ico svg{width:18px;height:18px}.app-name{font-weight:600;color:var(--fg)}.app-meta{color:var(--muted);font-size:.88rem}.empty{padding:3rem 1rem;background:var(--card);border-radius:var(--radius)}.empty h2{margin-bottom:.4rem}.empty p{margin:0 auto 1.2rem;max-width:34rem}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin:0 0 1.25rem;overflow-x:auto}.tab{all:unset;box-sizing:border-box;cursor:pointer;padding:.65rem .9rem;color:var(--muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:var(--fg)}.tab[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.tab:focus-visible{outline:2px solid var(--brand-600);border-radius:4px}.tab-panel[hidden]{display:none}.tab-panel{display:flex;flex-direction:column;gap:1rem}.kv{display:grid;grid-template-columns:180px 1fr;grid-gap:.55rem 1rem;gap:.55rem 1rem;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0}@media (max-width:600px){.kv{grid-template-columns:1fr}}.ide-bleed{width:100%}.ide{--ide-bg:#1e1e1e;--ide-side:#252526;--ide-bar:#333333;--ide-tab:#2d2d2d;--ide-line:#3c3c3c;--ide-fg:#cccccc;--ide-dim:#8b8b8b;--ide-sel:#37373d;--ide-accent:#007acc;display:flex;flex-direction:column;height:calc(100vh - 210px);min-height:520px;background:var(--ide-bg);color:var(--ide-fg);border:1px solid var(--ide-line);border-radius:8px;overflow:hidden;font-size:13px}.ide button{font:inherit}.ide-bar{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:var(--ide-bar);flex-wrap:wrap}.ide-bar .btn{font-size:12px;padding:.25rem .7rem}.ide-bar .btn.ghost{color:var(--ide-fg);border-color:#555;background:transparent}.ide-message{flex:1 1 240px;background:#3c3c3c;color:var(--ide-fg);border:1px solid #555;border-radius:4px;padding:.25rem .5rem;font-size:12px}.ide-bar .spacer{flex:1 1}.ide .muted-text,.ide-bar .muted-text{color:var(--ide-dim)}.ide .alert{margin:0;border-radius:0;padding:.3rem .75rem;font-size:12px}.ide-body{flex:1 1;display:grid;grid-template-columns:240px 1fr;min-height:0}.ide-body.no-side{grid-template-columns:1fr}.ide-side{overflow:auto;border-right:1px solid var(--ide-line);min-width:0}.ide-side,.ide-side-head{background:var(--ide-side)}.ide-side-head{display:flex;align-items:center;gap:.15rem;padding:.4rem .5rem .4rem .75rem;text-transform:uppercase;font-size:11px;letter-spacing:.04em;color:var(--ide-dim);position:-webkit-sticky;position:sticky;top:0;z-index:1}.ide-side-head .spacer{flex:1 1}.ide-ico{all:unset;cursor:pointer;padding:0 .35rem;border-radius:4px;color:var(--ide-fg);font-size:14px;line-height:20px}.ide-ico:hover:not(:disabled){background:#4a4a4a}.ide-ico:disabled{opacity:.35;cursor:default}.ide-tree{list-style:none;margin:0;padding:0}.ide-tree .ide-tree{padding-left:12px;border-left:1px solid #3a3a3a;margin-left:11px}.ide-row{display:flex;align-items:center;gap:.35rem;padding:0 .5rem 0 .6rem;height:22px;cursor:pointer;white-space:nowrap;overflow:hidden}.ide-row:hover{background:#2a2d2e}.ide-row.active{background:var(--ide-sel);color:#fff}.ide-row .name{overflow:hidden;text-overflow:ellipsis;flex:1 1}.ide-row .acts{display:none;gap:.1rem}.ide-row:hover .acts{display:inline-flex}.ide-chev{width:12px;text-align:center;color:var(--ide-dim);font-size:10px}.ide-badge{display:inline-block;min-width:18px;text-align:center;font-size:9px;font-weight:700;border-radius:3px;padding:1px 2px;color:#1e1e1e;background:#9aa}.ide-dot{color:#e2c08d;font-size:11px}.ide-new{color:#73c991;font-size:11px}.ide-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--ide-bg)}.ide-tabs{overflow-x:auto;flex:none;scrollbar-width:thin}.ide-tab,.ide-tabs{display:flex;background:var(--ide-tab)}.ide-tab{align-items:center;gap:.45rem;padding:0 .5rem 0 .8rem;height:35px;cursor:pointer;border-right:1px solid var(--ide-bg);color:var(--ide-dim);white-space:nowrap;border-top:1px solid transparent}.ide-tab.active{background:var(--ide-bg);color:#fff;border-top-color:var(--ide-accent)}.ide-tab .x{all:unset;cursor:pointer;width:18px;height:18px;text-align:center;line-height:18px;border-radius:4px;font-size:14px}.ide-tab .x:hover{background:#4a4a4a}.ide-crumb{padding:.2rem .9rem;color:var(--ide-dim);font-size:12px;flex:none}.ide-editor{flex:1 1;min-height:0;position:relative}.ide-empty,.ide-note{padding:1.2rem 1.5rem;color:var(--ide-dim)}.ide-empty h2{color:var(--ide-fg);margin-top:0}.ide-empty .btn{font-size:13px}.ide-status{display:flex;gap:1rem;align-items:center;padding:0 .75rem;height:22px;background:var(--ide-accent);color:#fff;font-size:12px;flex:none}.ide-status .spacer{flex:1 1}.ide-modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;z-index:50}.ide-quick{width:min(560px,92vw);background:#252526;border:1px solid #454545;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.5);overflow:hidden;color:var(--ide-fg)}.ide-quick input{width:100%;box-sizing:border-box;background:#3c3c3c;color:var(--ide-fg);border:0;border-bottom:1px solid #454545;border-radius:0;padding:.55rem .8rem;font-size:14px;outline:none}.ide-quick ul{list-style:none;margin:0;padding:0;max-height:40vh;overflow:auto}.ide-quick li{padding:.3rem .8rem;cursor:pointer;display:flex;gap:.6rem}.ide-quick li.on{background:#04395e;color:#fff}.ide-history{position:fixed;right:24px;top:90px;width:min(560px,92vw);max-height:70vh;overflow:auto;z-index:40}@media (max-width:720px){.ide-body{grid-template-columns:1fr}.ide-side{max-height:30vh}}form.stack>.btn,form.stack>.row,form.stack>button.btn{align-self:flex-start}.gl-avatar{width:40px;height:40px;background:#f97316;color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.1rem}.gl-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem}.gl-tab{padding:.6rem .95rem;color:var(--muted);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}.gl-tab.on,.gl-tab:hover{color:var(--fg)}.gl-tab.on{border-bottom-color:#fc6d26;font-weight:600}.gl-toolbar{display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem;flex-wrap:wrap}.gl-branch{font-weight:600}.gl-dropdown{position:relative;margin:0}.gl-dropdown summary{list-style:none;color:var(--fg)}.gl-dropdown summary::-webkit-details-marker{display:none}.gl-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:min(420px,90vw);background:var(--card);border:1px solid var(--line-strong);border-radius:8px;padding:.9rem 1rem;box-shadow:0 10px 30px rgba(0,0,0,.18)}.gl-pop p{margin:0 0 .4rem}.gl-crumbs{margin-bottom:.6rem;font-weight:500}.gl-crumbs a{text-decoration:none}.gl-table{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}.gl-thead{display:flex;align-items:center;gap:.8rem;padding:.6rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.gl-thead a{color:var(--fg);font-weight:600}.gl-row,.gl-thead a{text-decoration:none}.gl-row{display:grid;grid-template-columns:minmax(160px,1fr) 2fr 80px 110px;grid-gap:.8rem;gap:.8rem;align-items:center;padding:.5rem 1rem;border-bottom:1px solid var(--line);color:inherit}.gl-row:last-child{border-bottom:0}.gl-row:hover{background:var(--brand-50)}.gl-name{font-weight:500;color:var(--fg);text-decoration:none}.gl-msg,.gl-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gl-msg a{color:var(--muted);text-decoration:none}.gl-msg a:hover{color:var(--link);text-decoration:underline}.gl-size,.gl-when{text-align:right;font-size:.88rem;white-space:nowrap}@media (max-width:720px){.gl-row{grid-template-columns:1fr auto}.gl-msg,.gl-size{display:none}}.gl-readme{margin-bottom:1.5rem;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}.gl-plain{background:none;color:var(--fg);border:0;white-space:pre-wrap;padding:1rem 1.2rem;font-family:inherit;font-size:.95rem}.gl-note{padding:1rem;margin:0;color:var(--muted)}.gl-code{overflow:auto;max-height:75vh;background:var(--card)}.gl-code table,.gl-diff table{width:100%;border-collapse:collapse;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem}.gl-code td,.gl-diff td{padding:0 .75rem;border:0;white-space:pre;line-height:1.55}.gl-code .ln{color:var(--muted);text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1%;background:var(--soft);border-right:1px solid var(--line)}.gl-day h3{font-size:.95rem;color:var(--muted);font-weight:600;margin:1rem 0 .5rem}.gl-commit{display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.gl-commit:last-child{border-bottom:0}.gl-subject{color:var(--fg);font-weight:600;text-decoration:none}.gl-subject:hover{text-decoration:underline}.gl-commit-head{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1rem}.gl-commit-head h2{font-size:1.2rem;margin-bottom:.6rem}.gl-stat{margin:.5rem 0 1rem}.gl-diff{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem;background:var(--card)}.gl-diff-head{padding:.55rem 1rem;background:var(--soft);border-bottom:1px solid var(--line)}.gl-diff{overflow-x:auto}.gl-diff tr.add td{background:#e6ffed;color:#0b4a1f}.gl-diff tr.del td{background:#ffeef0;color:#7a1020}.gl-diff tr.hunk td{background:var(--info-bg);color:var(--muted)}.gl-diff tr.add td{background:#11301d;color:#9be3b2}.gl-diff tr.del td{background:#36161b;color:#ffb3bd}.brand{color:var(--fg)!important;font-weight:600;font-size:1.05rem;letter-spacing:0}.brand-mark{border-radius:6px;background:#f97316;width:26px;height:26px}.topbar{background:var(--nav);border-bottom:0;position:-webkit-sticky;position:sticky;top:0;z-index:40}.topbar-in{max-width:none;gap:.5rem}.topbar .brand{color:#fff!important;margin-right:.75rem}.topbar a.nav{color:var(--nav-fg);border-radius:4px}.topbar a.nav:hover{background:#ffffff1f;color:#fff}.topbar a.nav.on{background:#ffffff2e;color:#fff}.topbar .who{color:#c7c6cc}.topbar .btn.ghost{background:transparent;color:#fff;border-color:#ffffff66}.topbar .badge,.topbar .btn.ghost:hover{background:#ffffff1f}.topbar .badge{color:#fff;border-color:transparent}.topbar .badge:before{display:none}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 48px)}.sidebar{background:var(--soft);border-right:1px solid var(--line);padding:.75rem .5rem 2rem;position:-webkit-sticky;position:sticky;align-self:start;overflow-y:auto}.sb-title{display:flex;align-items:center;gap:.6rem;padding:.35rem .6rem .75rem;font-weight:600;border-bottom:1px solid var(--line);margin-bottom:.5rem}.sb-title .gl-avatar{width:32px;height:32px;font-size:.95rem;border-radius:4px;flex:none}.sb-title span.n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-sec{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;padding:.9rem .6rem .25rem}.sb-link{display:flex;align-items:center;gap:.6rem;padding:.4rem .6rem;border-radius:4px;color:var(--fg);text-decoration:none;font-weight:500}.sb-link:hover{background:#f1f3f6;background:#3a393f}.sb-link.on{background:#f1f3f6;box-shadow:inset 3px 0 0 var(--brand);background:#3a393f}.sb-link svg{width:16px;height:16px;flex:none;color:var(--muted)}.sb-link.on svg{color:var(--brand)}.sb-back{color:var(--muted);font-size:.85rem;padding:.25rem .6rem .5rem;display:block;text-decoration:none}.sb-back:hover{color:var(--fg)}.page{max-width:1100px;padding:0 24px 3rem}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;gap:.25rem;overflow-x:auto;padding:.4rem;border-right:0;border-bottom:1px solid var(--line)}.sb-back,.sb-sec,.sb-title{display:none}.sb-link{white-space:nowrap}.page{padding:0 14px 3rem}}.page-head{margin:1.1rem 0 .9rem}.btn{border-radius:4px;padding:.45rem .8rem}.btn.ghost:hover{background:#3a393f}.danger-btn{background:var(--err);border-color:var(--err)}.danger-btn:hover{background:#c91c00;border-color:#c91c00}.card{border-radius:4px;box-shadow:none;background:var(--card)}.card>h2:first-child{font-size:1rem}input,select,textarea{border-radius:4px}th{text-transform:none;letter-spacing:0;font-size:.85rem;background:transparent;color:var(--fg);border-bottom:2px solid var(--line)}.alert,.app-list,.badge{border-radius:4px}.app-list{box-shadow:none}.app-item:hover{background:var(--soft)}.app-ico{background:var(--brand-50)}.app-ico,.empty{border-radius:4px}.empty{background:var(--soft)}.gl-tab.on{border-bottom-color:var(--orange)}.crumb{margin-top:1rem}.btn.light{background:#fff;color:#292961}.cta-box{background:#2563eb}.cta-box,.feat{border-radius:8px}.feat:hover{border-color:var(--brand)}.step:before{background:var(--brand)}.site-header{background:var(--bg)}.site-header nav>a.btn{color:#fff}.brand,.brand:hover{text-decoration:none}body:has(.topbar){background:var(--bg-app)}.topbar{background:transparent}.topbar-in{height:48px;padding:0 16px}.topbar .brand,.topbar .brand:hover{color:var(--strong)!important}.topbar a.nav{color:var(--muted)}.topbar a.nav:hover{background:#e5e7eb;color:var(--strong)}.topbar .who{color:var(--muted)}.topbar .btn.ghost{background:var(--card);color:var(--fg)}.topbar .btn.ghost:hover{background:#f1f3f6}.topbar .badge{background:var(--card);color:var(--fg);border:1px solid var(--line-strong)}.topbar-search{flex:0 1 460px;margin:0 auto;position:relative}.topbar-search input{width:100%;height:32px;border-radius:8px;background:var(--card);border:1px solid var(--line-strong);padding:0 2.2rem 0 2rem;color:var(--muted)}.topbar-search svg{position:absolute;left:10px;top:8px;width:16px;height:16px;color:var(--muted)}.topbar-search kbd{position:absolute;right:8px;top:5px;font-size:.75rem;padding:0 .4rem}.topbar-search-wrap{flex:0 1 460px;margin:0 auto;position:relative}.topbar-search-wrap .topbar-search{flex:none;width:100%;margin:0}@media (max-width:900px){.topbar-search,.topbar-search-wrap{display:none}}.shell{grid-template-columns:var(--sb-w,240px) minmax(0,1fr);padding-right:8px}.sidebar{background:transparent;border-right:0;top:48px;height:calc(100vh - 48px);padding:.25rem .5rem 1rem}.sb-title{border-bottom:0;padding:.25rem .5rem .6rem;color:var(--strong)}.sb-sec{text-transform:none;letter-spacing:0;font-size:.8rem;color:var(--muted);padding:.8rem .5rem .2rem;font-weight:600}.sb-link{padding:.3rem .5rem;font-weight:400}.sb-link.on,.sb-link:hover{background:#e5e7eb}.sb-link.on{font-weight:600;box-shadow:none}.sb-link.on svg{color:var(--strong)}.sb-link.on,.sb-link:hover{background:#3a393f}.page{background:var(--card);border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;margin:0;max-width:none;min-height:calc(100vh - 48px);padding:0 32px 3rem}@media (max-width:900px){.shell{padding-right:0}.page{border-radius:0;padding:0 14px 3rem}}.page-head h1{font-size:1.5rem}.btn{height:32px;padding:0 .85rem;font-weight:500}.btn.small{height:28px;padding:0 .65rem;font-size:.85rem}.btn.big{height:40px}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn.ghost{background:var(--card);color:var(--fg)}.btn.ghost,.btn.ghost:hover{border-color:var(--line-strong)}.btn.ghost:hover{background:#f1f3f6;color:var(--strong);background:#374151;color:#fff}.btn.light{color:#111827}input,select,textarea{height:32px;padding:0 .65rem}textarea{height:auto;padding:.5rem .65rem}.card{border-radius:8px}th{background:var(--soft);color:var(--strong);font-weight:700;border-bottom:1px solid var(--line)}.app-list,.gl-table{border-radius:8px}.app-item:hover,.gl-row:hover{background:var(--soft)}.plan:has(input:checked){background:var(--brand-50);box-shadow:0 0 0 2px var(--brand)}.badge{border-radius:999px}.gl-thead{background:var(--soft)}.gl-name,.gl-thead a{color:var(--fg)}.gl-colhead{display:grid;grid-template-columns:minmax(160px,1fr) 2fr 130px;grid-gap:.8rem;gap:.8rem;padding:.55rem 1rem;background:var(--soft);border-bottom:1px solid var(--line);font-weight:700;color:var(--strong)}.gl-row{grid-template-columns:minmax(160px,1fr) 2fr 130px}.gl-size{display:none}.gl-commitbar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;border:1px solid var(--line);border-radius:8px;margin-bottom:1rem;background:var(--card);flex-wrap:wrap}.gl-commitbar .subj{font-weight:600;color:var(--strong);text-decoration:none}.gl-commitbar .subj:hover{text-decoration:underline}.gl-pillsha{font-family:ui-monospace,monospace;border:1px solid var(--line-strong);padding:0 .5rem;height:28px;display:inline-flex;align-items:center;background:var(--card)}.gl-avatar,.gl-pillsha{border-radius:8px}@media (max-width:720px){.gl-colhead,.gl-row{grid-template-columns:1fr auto}.gl-colhead span:nth-child(2){display:none}}.auth{display:grid;grid-template-columns:minmax(340px,5fr) 6fr;min-height:100vh}.auth-side{background:#0f172a;color:#e2e8f0;padding:2rem 3rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}.auth-side .brand,.auth-side .brand:hover{color:#fff!important;font-size:1.2rem}.auth-pitch h2{color:#fff;font-size:1.9rem;line-height:1.25;font-weight:700;margin:0 0 1.5rem;letter-spacing:-.01em}.auth-pitch ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.1rem}.auth-pitch li{display:flex;gap:.8rem;color:#94a3b8;line-height:1.45}.auth-pitch li strong{color:#f1f5f9;font-weight:600}.auth-pitch .tick{flex:none;width:22px;height:22px;border-radius:50%;background:#2563eb;color:#fff;display:grid;place-items:center;font-size:.75rem;margin-top:.15rem}.auth-foot{margin:0;color:#64748b;font-size:.85rem}.auth-foot a{color:#94a3b8}.auth-main{background:#fff;display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:380px}.auth-card h1{font-size:1.6rem;margin:0 0 1.25rem}.auth-card .btn{height:40px;justify-content:center;width:100%}.auth-card input{height:40px}.auth-card form.stack{gap:1rem}.auth-card .muted-text{text-align:center;margin-top:1.25rem}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-side{padding:1.25rem}.auth-foot,.auth-pitch{display:none}}.bar{display:inline-block;width:120px;height:8px;background:var(--line);border-radius:4px;overflow:hidden;vertical-align:middle;margin-right:.5rem}.bar-fill{display:block;height:100%}.bar-fill.ok{background:var(--ok)}.bar-fill.warn{background:#d97706}.bar-fill.err{background:var(--err)}.metrics td{vertical-align:middle}.inline-num{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}.inline-num input{width:80px}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr);padding-right:0}.page{border-radius:0;padding:0 14px 3rem}.sidebar{position:static;top:auto;height:auto;display:flex;flex-direction:row;gap:.25rem;overflow-x:auto;padding:.4rem;border-bottom:1px solid var(--line)}.sb-link{white-space:nowrap;flex:none}.auth{grid-template-rows:auto 1fr;min-height:100vh}.metrics{display:block;overflow-x:auto}}.brand-mark{width:30px;height:30px;border-radius:7px;background:#2563eb}.brand-mark svg{width:20px;height:20px}.wordmark{letter-spacing:-.01em;font-weight:500}.wordmark b{font-weight:800}.brand,.brand:hover{gap:.5rem;font-size:1.15rem}.auth-side .brand-mark,.topbar .brand-mark{background:#2563eb}@media (max-width:640px){.hide-sm{display:none}.hero-band .row,.site-header nav{gap:.5rem}.hero-band .btn.big{padding:0 1rem}}.hero-band{background:#0f172a;color:#fff}.hero-band h1{color:#fff}.hero-band .btn.light{background:#fff;color:#111827;border-color:#fff}.hero-band .btn.light:hover{background:#e2e8f0;color:#111827;border-color:#e2e8f0}.hero-band .btn.outline-light{background:transparent;color:#fff;border-color:#94a3b8}.hero-band .btn.outline-light:hover{background:#1e293b;color:#fff;border-color:#e2e8f0}.cta-box h2{color:#fff}.trial-tag{margin:.5rem 0 0;color:var(--ok);font-weight:600}.bell{position:relative;display:inline-flex;align-items:center;padding:.35rem;border-radius:6px;color:var(--muted)}.bell:hover{background:var(--soft);color:var(--text,inherit)}.bell svg{width:18px;height:18px}.bell-n{position:absolute;top:-2px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#dc2626;color:#fff;font-size:.68rem;font-weight:700;line-height:16px;text-align:center}@media print{.no-print,.sidebar,.topbar{display:none!important}.shell{display:block!important}.page{border:0!important;box-shadow:none!important}}.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#111827;color:#fff;padding:.6rem 1rem;border-radius:0 0 6px 0}.skip-link:focus{left:0}:focus-visible{outline:2px solid var(--brand-600,#2563eb)}.page table,.table-wrap,main table{max-width:100%}.page .card>table,.page main>table,.page section>table{width:100%}@media (max-width:800px){.page .card>table,.page main>table,.page section>table{display:block;overflow-x:auto;white-space:nowrap}}.btn,button,input,select{min-height:36px}@media (max-width:600px){.btn,button{min-height:44px}.row.inline{flex-wrap:wrap}.row.inline>input,.row.inline>select{flex:1 1 100%;max-width:100%!important}.grid{grid-template-columns:1fr!important}.topbar .who{display:none}}.badge:after{content:""}.prose{line-height:1.7;max-width:760px}.prose h2,.prose h3,.prose h4{margin:1.6rem 0 .5rem}.prose pre{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:.8rem 1rem;overflow-x:auto;font-size:.88rem}.prose code{background:var(--soft);padding:.05rem .35rem;border-radius:4px;font-size:.9em}.prose pre code{background:none;padding:0}.prose ol,.prose ul{padding-left:1.4rem}.container.narrow{max-width:1080px;margin:0 auto;padding:2rem 20px 4rem}.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem;gap:1rem}.compare td,.compare th{vertical-align:top}html{background:var(--bg)}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-feature-settings:"cv11","ss01";letter-spacing:-.005em}body:before{content:"";position:fixed;inset:0 0 auto 0;height:520px;z-index:-1;pointer-events:none;background:radial-gradient(60% 100% at 50% 0,rgba(99,102,241,.16),transparent 70%),radial-gradient(40% 80% at 90% 0,rgba(14,165,233,.08),transparent 70%)}h1,h2,h3{color:var(--strong);letter-spacing:-.015em}::selection{background:rgba(99,102,241,.45)}.site-header,.topbar{background:rgba(11,15,26,.72);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)}.brand-mark{background:linear-gradient(135deg,#6366f1,#8b5cf6 55%,#ec4899);box-shadow:0 4px 14px -4px rgba(139,92,246,.7)}.brand,.topbar .brand{color:var(--strong)!important}.btn{background:linear-gradient(180deg,#6d70f5,#5558e8);border-color:#6366f1;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 16px -8px rgba(99,102,241,.8)}.btn:hover{background:linear-gradient(180deg,#7b7ef8,#6366f1);border-color:#818cf8;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 20px -8px rgba(99,102,241,.9)}.btn.ghost,.btn.outline-light{background:rgba(255,255,255,.03);color:var(--fg);border-color:var(--line-strong)}.btn.ghost:hover,.btn.outline-light:hover{background:rgba(255,255,255,.07);border-color:#3b4c6b;color:var(--strong)}.btn.light{background:var(--strong);color:#0b0f1a;border-color:var(--strong);box-shadow:none}.btn.light:hover{background:#fff;color:#0b0f1a}.danger-btn{background:linear-gradient(180deg,#ef4444,#dc2626);border-color:#ef4444}.danger-btn:hover{background:#dc2626;border-color:#f87171}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring)}input,select,textarea{background:#0d1424;border-color:var(--line-strong);transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:#6366f1}.card,.feat,.term{background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,0) 60%),var(--card);border-color:var(--line);box-shadow:var(--shadow)}.feat:hover,a.card:hover{border-color:#4f55c9;box-shadow:0 0 0 1px rgba(99,102,241,.25),var(--shadow);transform:translateY(-1px)}.feat,a.card{transition:border-color .15s,box-shadow .15s,transform .15s}.feat .ico{background:rgba(99,102,241,.14);color:#a5b4fc}.step:before{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.hero-band{background:transparent!important;border-bottom:1px solid var(--line)}.hero-band h1{background:linear-gradient(180deg,#fff 30%,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-band p.lead{color:var(--muted)}.hero-band .eyebrow{color:#a5b4fc}.cta-box{background:radial-gradient(80% 140% at 50% 0,rgba(99,102,241,.5),rgba(99,102,241,.08) 70%),var(--card);border:1px solid #2f3b6b}.cta-box p{color:var(--fg)}.sb-link{border-radius:8px;color:var(--muted)}.sb-link:hover{background:rgba(255,255,255,.05)}.sb-link.on{background:rgba(99,102,241,.14);color:#c7d2fe;box-shadow:inset 2px 0 0 #818cf8}.topbar a.nav:hover{background:rgba(255,255,255,.06)}.topbar a.nav.on{background:rgba(99,102,241,.16);color:#c7d2fe}.topbar .btn.ghost{border-color:var(--line-strong)}.topbar .badge{background:var(--soft);border-color:var(--line)}table{border-collapse:collapse}th{color:var(--muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover{background:rgba(255,255,255,.025)}.gl-diff tr.add td{background:rgba(34,197,94,.14);color:#86efac}.gl-diff tr.del td{background:rgba(239,68,68,.14);color:#fca5a5}pre{background:#070b14;border-color:var(--line)}.site-footer{border-top:1px solid var(--line)}@media (prefers-reduced-motion:reduce){.btn,.feat,a.card{transition:none;transform:none!important}}.sb-group{margin:.1rem 0}@media (max-width:800px){.sb-group{display:flex;gap:.25rem}.sb-group>.sb-sec{display:none}}.carousel{position:relative;display:flex;align-items:stretch;gap:.5rem;margin:1rem 0 1.5rem}fieldset.plans .carousel{margin:0}fieldset.plans{display:block;min-width:0}.carousel-track{--gap:1rem;display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;flex:1 1;min-width:0;padding:.5rem .25rem 1rem;scrollbar-width:none}.carousel-track::-webkit-scrollbar{display:none}.carousel-track>*{flex:0 0 calc((100% - 2 * var(--gap)) / 3);scroll-snap-align:start;min-width:0}@media (max-width:960px){.carousel-track>*{flex-basis:calc((100% - var(--gap)) / 2)}}@media (max-width:600px){.carousel-track>*{flex-basis:86%}}.carousel-track:focus-visible{outline:none;box-shadow:var(--ring);border-radius:12px}.carousel-btn{align-self:center;flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:var(--card);color:var(--strong);font-size:1.5rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .12s,border-color .12s,opacity .12s}.carousel-btn:hover:not(:disabled){background:var(--soft);border-color:#4f55c9}.carousel-btn:disabled{opacity:.3;cursor:default}.carousel-btn:focus-visible{outline:none;box-shadow:var(--ring)}@media (max-width:600px){.carousel-btn{width:34px;height:34px}}.plan-card,.plan-list{display:flex;flex-direction:column}.plan-list{list-style:none;padding:0!important;margin:.9rem 0 1rem!important;gap:.5rem;flex:1 1;color:var(--fg)!important}.plan-list li{position:relative;padding-left:1.5rem;font-size:.92rem;line-height:1.4}.plan-list li:before{content:"";position:absolute;left:.1rem;top:.35em;width:6px;height:11px;border-right:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(40deg)}.trial-tag{color:var(--warn);font-size:.85rem;margin:0 0 .75rem}.plan-actions{display:flex;gap:.5rem;margin-top:auto}.plan-actions .btn{flex:1 1}.plan.featured{border-color:#4f55c9;box-shadow:0 0 0 1px rgba(99,102,241,.35),var(--shadow)}.or-sep{display:flex;align-items:center;gap:.75rem;color:#fff;font-size:.85rem;margin:1.25rem 0 .25rem}.or-sep:after,.or-sep:before{content:"";flex:1 1;border-top:1px dashed #fff}body:before{display:none}.brand-mark,.btn{background:var(--accent);box-shadow:none}.btn{border-color:var(--accent);border-radius:6px}.btn:hover{background:var(--brand-700);border-color:var(--brand-700);box-shadow:none}.btn.ghost,.btn.outline-light{background:transparent;box-shadow:none}.btn.ghost:hover{background:var(--soft)}.danger-btn{background:#dc2626;border-color:#dc2626;box-shadow:none}.danger-btn:hover{background:#b91c1c;border-color:#b91c1c}.plan:has(input:checked){box-shadow:none;border-color:var(--brand);border-width:2px}.gl-pop,.toast{box-shadow:none;border:1px solid var(--line-strong)}input[type=checkbox],input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;padding:0;margin:0;background:transparent;border:2px solid var(--line-strong);border-radius:4px;display:inline-grid;place-content:center;cursor:pointer;vertical-align:middle}input[type=radio]{border-radius:50%}input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--brand)}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--brand);border-color:var(--brand)}input[type=checkbox]:checked:after{content:"";width:5px;height:9px;border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}input[type=radio]:checked:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--bg)}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.45;cursor:not-allowed}.skel{background:var(--soft);border-color:var(--line);animation:skel 1.2s ease-in-out infinite}@keyframes skel{50%{opacity:.55}}.top-progress{position:fixed;top:0;left:0;height:4px;z-index:9999;background:var(--brand);transition:width .2s ease-out,opacity .25s;pointer-events:none}.pl-head{display:flex;align-items:center;gap:.6rem;color:var(--fg)}.pl-bar{height:4px;border-radius:2px;background:var(--line);overflow:hidden;position:relative}.pl-bar i{position:absolute;inset:0 auto 0 0;width:35%;background:var(--brand);border-radius:2px;animation:pl-run 1.1s ease-in-out infinite}@keyframes pl-run{0%{left:-35%}to{left:100%}}.skel-line{height:12px;border-radius:4px;background:var(--soft);animation:skel 1.2s ease-in-out infinite}.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2rem;gap:2rem}.foot-cols nav{display:flex;flex-direction:column;gap:.5rem}.foot-cols h4{margin:0 0 .25rem;color:var(--strong);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.foot-cols a{color:var(--muted);text-decoration:none}.foot-cols a:hover{color:var(--fg)}.foot-copy{margin:2rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}@media (max-width:600px){.foot-cols{grid-template-columns:1fr;gap:1.25rem}}.lp section[id]{scroll-margin-top:70px}.lp-wrap{width:80%;max-width:none;margin:0 auto;padding:0 20px}.lp-wrap.lp-narrow{width:100%;max-width:780px}.lp svg{width:1em;height:1em}.lp-ico{display:inline-flex;font-size:1.1em}.lp-hero{padding:4.5rem 0 3.5rem;position:relative;overflow:hidden}.lp-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;opacity:.35;-webkit-mask-image:radial-gradient(70% 80% at 50% 0,#000,transparent);mask-image:radial-gradient(70% 80% at 50% 0,#000,transparent);pointer-events:none}.lp-hero-grid{position:relative;display:grid;grid-template-columns:1.05fr 1fr;grid-gap:3rem;gap:3rem;align-items:center}.lp-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .85rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-size:.85rem;background:var(--card)}.lp-badge i{width:8px;height:8px;border-radius:50%;background:#22c55e}.lp-hero h1{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.08;margin:1.1rem 0;color:var(--strong);letter-spacing:-.02em}.lp-hero h1 em{font-style:normal;color:var(--brand)}.lp-lead{font-size:1.15rem;color:var(--muted);max-width:34rem;margin:0 0 1.75rem}.lp-cta{display:flex;gap:.75rem;flex-wrap:wrap}.lp-cta .btn.big{height:48px;padding:0 1.5rem}.lp-trust{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;list-style:none;padding:0;margin:1.6rem 0 0;color:var(--muted);font-size:.92rem}.lp-trust li{display:flex;align-items:center;gap:.4rem}.lp-trust .lp-ico{color:#22c55e}.lp-stage{position:relative;padding:0 0 2.2rem}.lp-term{background:#070b14;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden}.lp-term-bar{display:flex;align-items:center;gap:.4rem;padding:.65rem .9rem;border-bottom:1px solid var(--line)}.lp-term-bar i{width:11px;height:11px;border-radius:50%;background:#334155}.lp-term-bar i:first-child{background:#ef4444}.lp-term-bar i:nth-child(2){background:#f59e0b}.lp-term-bar i:nth-child(3){background:#22c55e}.lp-term-bar span{margin-left:.6rem;color:var(--muted);font-size:.8rem}.lp-term pre{margin:0;padding:1.1rem 1.2rem 1.3rem;background:transparent;border:0;font-size:.88rem;line-height:1.7;min-height:190px}.lp-term code{background:none;border:0;padding:0;color:#e2e8f0}.lp-term .d{color:#7c8aa5}.lp-term .g{color:#4ade80}.lp-term .p{color:#a5b4fc}.lp-term code span{opacity:0;animation:lp-line .01s forwards}.lp-term .l1{animation-delay:.3s!important}.lp-term .l2{animation-delay:1.1s!important}.lp-term .l3{animation-delay:1.8s!important}.lp-term .l4{animation-delay:2.5s!important}.lp-term .l5{animation-delay:3.3s!important}.lp-term .l6{animation-delay:3.6s!important}@keyframes lp-line{to{opacity:1}}.lp-card{position:absolute;display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem;background:var(--card);border:1px solid var(--line-strong);border-radius:10px;font-size:.85rem}.lp-card strong{display:block;color:var(--strong)}.lp-card span{color:var(--muted);font-size:.78rem}.lp-card svg{font-size:1.4rem;color:var(--brand)}.lp-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;animation:lp-pulse 1.6s infinite}@keyframes lp-pulse{50%{opacity:.35}}.lp-float{left:-1.5rem;bottom:0;animation:lp-bob 5s ease-in-out infinite}.lp-float2{right:-.5rem;bottom:3.2rem;animation:lp-bob 6s ease-in-out infinite reverse}@keyframes lp-bob{50%{transform:translateY(-6px)}}.lp-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card)}.lp-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;padding-top:1.6rem;padding-bottom:1.6rem;text-align:center}.lp-stats strong{display:block;font-size:1.7rem;color:var(--strong)}.lp-stats span{color:var(--muted);font-size:.88rem}.lp-sec{padding:5rem 0}.lp-sec.alt{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lp-eyebrow{color:var(--brand);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;margin:0 0 .6rem;text-align:center}.lp-sec h2{text-align:center;font-size:clamp(1.7rem,3.5vw,2.4rem);margin:0 0 .8rem;color:var(--strong);letter-spacing:-.01em}.lp-sub{text-align:center;color:var(--muted);max-width:40rem;margin:0 auto 2.5rem;font-size:1.05rem}.lp-sub.left{text-align:left;margin:0}.lp-bento{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem}.lp-feat{padding:1.5rem;background:var(--card);border:1px solid var(--line);border-radius:12px;transition:border-color .15s,transform .15s}.lp-feat:hover{border-color:var(--brand);transform:translateY(-3px)}.lp-feat.wide{grid-column:span 2}.lp-feat h3{margin:.9rem 0 .4rem;color:var(--strong);font-size:1.1rem}.lp-feat p{margin:0;color:var(--muted);font-size:.95rem}.lp-fico{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--brand-50);color:var(--brand);font-size:1.3rem}.lp-steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.25rem;gap:1.25rem;margin-top:2.5rem;position:relative}.lp-step{padding:1.6rem;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.lp-num{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700}.lp-step h3{margin:1rem 0 .4rem;color:var(--strong)}.lp-step p{margin:0;color:var(--muted)}.lp-db{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:3rem;gap:3rem;align-items:center}.lp-db .lp-eyebrow,.lp-db h2{text-align:left}.lp-chips{display:flex;flex-wrap:wrap;gap:.6rem}.lp-chip{padding:.55rem 1.1rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);color:var(--fg);font-weight:600}.lp #pricing .carousel{margin-top:.5rem}.lp-faq{margin-top:2rem;display:flex;flex-direction:column;gap:.6rem}.lp-faq details{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:0 1.2rem}.lp-faq summary{cursor:pointer;padding:1rem 0;font-weight:600;color:var(--strong);list-style:none;display:flex;justify-content:space-between;gap:1rem}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq summary:after{content:"+";color:var(--brand);font-size:1.3rem;line-height:1}.lp-faq details[open] summary:after{content:"−"}.lp-faq p{margin:0 0 1rem;color:var(--muted)}.lp-more{text-align:center;margin-top:1.5rem}.lp-final{padding:5rem 0;text-align:center;background:var(--accent)}.lp-final h2{color:#fff;font-size:clamp(1.7rem,3.5vw,2.4rem);margin:0 0 .6rem}.lp-final p{color:#e0e7ff;margin:0 0 1.6rem;font-size:1.1rem}.lp-final .btn.big{background:#fff;border-color:#fff;color:#1e1b4b;height:48px;padding:0 1.6rem}@media (max-width:960px){.lp-db,.lp-hero-grid{grid-template-columns:1fr}.lp-bento,.lp-stats-grid{grid-template-columns:repeat(2,1fr)}.lp-float{left:0}.lp-float2{right:0}}@media (max-width:600px){.lp-hero{padding:2.5rem 0}.lp-sec{padding:3rem 0}.lp-bento,.lp-steps{grid-template-columns:1fr}.lp-feat.wide{grid-column:auto}.lp-card{display:none}}@media (prefers-reduced-motion:reduce){.lp-term code span{animation:none;opacity:1}.lp-dot,.lp-float,.lp-float2{animation:none}html{scroll-behavior:auto}}.foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}.foot-bottom p{margin:0}.lang-menu{position:relative}.lang-menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);padding:.35rem .7rem;border:1px solid var(--line-strong);border-radius:6px}.lang-menu summary::-webkit-details-marker{display:none}.lang-menu summary:hover{color:var(--fg)}.lang-menu summary svg{width:18px;height:18px}.lang-menu form{position:absolute;right:0;bottom:calc(100% + 6px);display:flex;flex-direction:column;min-width:150px;background:var(--card);border:1px solid var(--line-strong);border-radius:8px;padding:.3rem;z-index:5}.lang-menu button{background:none;border:0;color:var(--fg);text-align:left;padding:.5rem .7rem;border-radius:6px;cursor:pointer;font:inherit}.lang-menu button:hover{background:var(--soft)}.lang-menu button.on{color:var(--brand);font-weight:700}.auth{grid-template-columns:minmax(380px,5fr) 6fr}.auth-side{position:relative;background:var(--card);border-right:1px solid var(--line);overflow:hidden}.auth-side:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;opacity:.4;-webkit-mask-image:radial-gradient(80% 70% at 20% 10%,#000,transparent);mask-image:radial-gradient(80% 70% at 20% 10%,#000,transparent);pointer-events:none}.auth-side>*{position:relative}.auth-pitch h2{font-size:2rem}.auth-pitch .tick{background:var(--accent)}.auth-term{margin-top:2rem;background:#070b14;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;max-width:420px}.auth-term-bar{display:flex;gap:.35rem;padding:.55rem .8rem;border-bottom:1px solid var(--line)}.auth-term-bar i{width:10px;height:10px;border-radius:50%;background:#334155}.auth-term-bar i:first-child{background:#ef4444}.auth-term-bar i:nth-child(2){background:#f59e0b}.auth-term-bar i:nth-child(3){background:#22c55e}.auth-term pre{margin:0;padding:.9rem 1rem;background:transparent;border:0;color:#cbd5e1;font-size:.82rem;line-height:1.7}.auth-term .g{color:#4ade80}.auth-main{background:var(--bg);padding:2rem 1.25rem}.auth-card{max-width:400px}.auth-back{display:inline-block;color:var(--muted);font-size:.88rem;text-decoration:none;margin-bottom:1.6rem}.auth-back:hover{color:var(--fg)}.auth-card h1{font-size:1.9rem;margin:0 0 .4rem;color:var(--strong);letter-spacing:-.01em}.auth-sub{color:var(--muted);margin:0 0 1.5rem}.auth-card label{font-weight:600;font-size:.9rem;color:var(--fg)}.auth-card input:not([type=checkbox]){height:44px;border-radius:8px;font-size:.95rem}.auth-card .btn{height:44px;border-radius:8px}.auth-card .check{font-weight:400;color:var(--muted);font-size:.88rem;display:flex;gap:.6rem;align-items:flex-start}.auth-card .check input{margin-top:.15rem}.auth-card .or-sep{margin:1.25rem 0 .25rem}.oauth{gap:.6rem}.oauth-btn{gap:.6rem;font-weight:600}.oauth-btn svg{width:18px;height:18px;flex:none}.pw{position:relative;display:block;margin-top:.35rem}.pw input{width:100%;padding-right:4.5rem}.pw-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);min-height:0!important;height:32px;padding:0 .6rem;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:.82rem;font-weight:600}.pw-toggle:hover{color:var(--fg);background:var(--soft)}.pw-meter{display:flex;align-items:center;gap:.6rem;margin-top:.45rem;font-weight:400}.pw-bars{display:flex;gap:4px;flex:1 1}.pw-bars i{flex:1 1;height:4px;border-radius:2px;background:var(--line-strong)}.pw-bars i.on.s1{background:#ef4444}.pw-bars i.on.s2{background:#f59e0b}.pw-bars i.on.s3{background:#84cc16}.pw-bars i.on.s4{background:#22c55e}.pw-text{color:var(--muted);font-size:.8rem;min-width:7.5rem;text-align:right}.auth-links{text-align:center;margin:1.1rem 0 0!important;font-size:.9rem}.auth-switch{margin:1.5rem 0 0!important;padding-top:1.25rem;border-top:1px solid var(--line)}.auth-fine,.auth-switch{text-align:center;color:var(--muted)}.auth-fine{font-size:.78rem!important;margin:1rem 0 0!important}.container.prose{max-width:1080px}.ai-fab{position:fixed;right:16px;bottom:64px;z-index:80;display:inline-flex;align-items:center;gap:.5rem;height:42px;padding:0 1rem;border-radius:999px;border:0;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}.ai-fab:hover{background:var(--brand-700);color:#1e1b4b}.ai-fab svg{width:20px;height:20px}.ai-panel{position:fixed;right:16px;bottom:16px;z-index:85;width:min(400px,calc(100vw - 32px));height:min(600px,calc(100vh - 32px));display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line-strong);border-radius:14px;overflow:hidden}.ai-head{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);color:var(--strong)}.ai-link{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;font-size:.82rem;min-height:0!important}.ai-link:hover{color:var(--fg)}.ai-x{background:none;border:0;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;min-height:0!important}.ai-body{flex:1 1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.7rem}.ai-msg{margin:0;padding:.65rem .85rem;border-radius:12px;max-width:92%;font-size:.92rem;line-height:1.5;overflow-wrap:anywhere}.ai-msg.me{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}.ai-msg.bot{align-self:flex-start;background:var(--soft);color:var(--fg);border-bottom-left-radius:4px}.ai-msg.bot>:first-child{margin-top:0}.ai-msg.bot>:last-child{margin-bottom:0}.ai-msg.bot pre{font-size:.8rem}.ai-typing{color:var(--muted);animation:skel 1.2s ease-in-out infinite}.ai-chips{display:flex;flex-direction:column;gap:.4rem}.ai-chips button{text-align:left;background:transparent;border:1px solid var(--line-strong);border-radius:10px;color:var(--fg);padding:.5rem .75rem;cursor:pointer;font:inherit;font-size:.88rem;min-height:0!important}.ai-chips button:hover{border-color:var(--brand);color:var(--brand)}.ai-form{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--line);align-items:flex-end}.ai-form textarea{flex:1 1;resize:none;height:auto!important;padding:.5rem .7rem;border-radius:8px}.ai-hint{margin:0;padding:0 .9rem .6rem;font-size:.74rem;color:var(--muted)}@media (max-width:600px){.ai-panel{right:8px;bottom:8px;width:calc(100vw - 16px);height:calc(100vh - 16px)}}.lp-ai{display:grid;grid-template-columns:1fr 1fr;grid-gap:3rem;gap:3rem;align-items:center}.lp-ai .lp-eyebrow,.lp-ai h2{text-align:left}.lp-ai-list{list-style:none;padding:0;margin:1.4rem 0 0;display:flex;flex-direction:column;gap:.6rem;color:var(--fg)}.lp-ai-list li{display:flex;gap:.55rem;align-items:flex-start}.lp-ai-list .lp-ico{color:#22c55e;margin-top:.2rem}.lp-chat{background:var(--bg);border:1px solid var(--line-strong);border-radius:14px;padding:1.1rem;display:flex;flex-direction:column;gap:.7rem}.lp-chat-head{display:flex;align-items:center;gap:.5rem;color:var(--strong);font-weight:600;padding-bottom:.7rem;border-bottom:1px solid var(--line)}.lp-chat-head .lp-ico{color:var(--brand)}.lp-bub{margin:0;padding:.7rem .95rem;border-radius:12px;max-width:92%;font-size:.93rem;line-height:1.55}.lp-bub.me{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.lp-bub.bot{align-self:flex-start;background:var(--soft);color:var(--fg);border-bottom-left-radius:4px}@media (max-width:960px){.lp-ai{grid-template-columns:1fr}}.lang-menu .lang-list{position:absolute;right:0;bottom:calc(100% + 6px);display:flex;flex-direction:column;min-width:150px;background:var(--card);border:1px solid var(--line-strong);border-radius:8px;padding:.3rem;z-index:5}.lang-menu .lang-list a{color:var(--fg);text-decoration:none;padding:.5rem .7rem;border-radius:6px}.lang-menu .lang-list a:hover{background:var(--soft)}.lang-menu .lang-list a.on{color:var(--brand);font-weight:700}.lang-suggest{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.55rem 1rem;background:var(--brand-50);border-bottom:1px solid var(--line-strong);font-size:.9rem}.lang-suggest a{color:var(--brand);font-weight:600}.lang-suggest button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1.2rem;line-height:1;min-height:0!important}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-side{padding:1.25rem}.auth-foot,.auth-pitch{display:none}}.ai-quota{font-size:.75rem;color:var(--muted)}.app-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}.app-row:last-child{border-bottom:0}.app-row .app-item{flex:1 1;border-bottom:0;min-width:0}.app-del{flex:none;width:48px;display:grid;place-items:center;background:transparent;border:0;border-left:1px solid var(--line);color:var(--muted);cursor:pointer;min-height:0!important}.app-del:hover{color:#ef4444;background:var(--soft)}.app-del svg{width:18px;height:18px}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.6);display:grid;place-items:center;z-index:100;padding:1rem}.modal{width:min(440px,100%);background:var(--card);border:1px solid var(--line-strong);border-radius:12px;padding:1.4rem}.modal h2{margin:0}.nowrap{flex-wrap:nowrap!important}.table-card{padding:0;overflow-x:auto}.table-card table{margin:0}.table-card td,.table-card th{padding:.75rem 1rem}.table-card td.actions{white-space:nowrap}.kv-table td.val{max-width:0;width:100%;word-break:break-all}.kv-table summary{cursor:pointer;color:var(--brand)}.notice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.notice{display:flex;align-items:flex-start;gap:.9rem;padding:.9rem 1.1rem;background:var(--card);border:1px solid var(--line);border-radius:10px;position:relative}.notice.unread{border-color:var(--line-strong);box-shadow:inset 3px 0 0 var(--brand)}.notice.read{opacity:.65}.notice:hover{background:var(--soft)}.notice-ico{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--muted)}.notice-ico svg{width:18px;height:18px}.notice-ico.ok{background:rgba(34,197,94,.15);color:#4ade80}.notice-ico.warn{background:rgba(245,158,11,.15);color:#fbbf24}.notice-ico.err{background:rgba(239,68,68,.15);color:#f87171}.notice-main{flex:1 1;min-width:0}.notice-title{color:var(--strong);font-weight:600;text-decoration:none}a.notice-title:after{content:"";position:absolute;inset:0}.notice-body{margin:.15rem 0 0;color:var(--muted);font-size:.92rem;overflow-wrap:anywhere}.notice-time{flex:none;color:var(--muted);font-size:.82rem;white-space:nowrap;display:flex;align-items:center;gap:.5rem}.notice-dot{width:8px;height:8px;border-radius:50%;background:var(--brand)}@media (max-width:600px){.notice{flex-wrap:wrap}.notice-time{width:100%;padding-left:3rem}}table.card{width:100%;padding:0;border-collapse:separate;border-spacing:0}table.card thead th:first-child{border-top-left-radius:var(--radius)}table.card thead th:last-child{border-top-right-radius:var(--radius)}table.card tbody tr:last-child td{border-bottom:0}table.card tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}table.card tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}table.card td,table.card th{padding:.75rem 1rem}.header-user{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.flow{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;position:relative}.flow:before{content:"";position:absolute;top:31px;left:12.5%;right:12.5%;height:2px;background:var(--line)}.flow-step{position:relative;text-align:center;padding:0 .5rem}.flow-step h3{margin:1rem 0 .35rem;color:var(--strong);font-size:1.05rem}.flow-step h3 code{font-size:.95rem}.flow-step p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}.flow-node{position:relative;width:62px;height:62px;margin:0 auto;border-radius:18px;display:grid;place-items:center;background:var(--card,var(--soft));border:1px solid var(--line);color:var(--muted);animation:flow-dim 8s infinite}.flow-node svg{width:26px;height:26px}.flow-node b{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;font-size:.72rem;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);color:var(--muted)}.flow-pulse{position:absolute;top:25px;left:12.5%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--brand,#7c83ff);box-shadow:0 0 0 6px color-mix(in srgb,var(--brand,#7c83ff) 25%,transparent),0 0 18px var(--brand,#7c83ff);animation:flow-move 8s infinite}.flow-step.s0 .flow-node{animation-name:lit0}.flow-step.s1 .flow-node{animation-name:lit1}.flow-step.s2 .flow-node{animation-name:lit2}.flow-step.s3 .flow-node{animation-name:lit3}@keyframes flow-move{0%{left:12.5%;opacity:1}75%{left:87.5%;opacity:1}90%,to{left:87.5%;opacity:0}}@keyframes lit0{0%,90%{color:#fff;background:var(--brand,#7c83ff);border-color:var(--brand,#7c83ff);box-shadow:0 8px 24px color-mix(in srgb,var(--brand,#7c83ff) 40%,transparent);transform:translateY(-3px)}95%,to{color:var(--muted);background:var(--soft);border-color:var(--line);box-shadow:none;transform:none}}@keyframes lit1{0%,22%{color:var(--muted);background:var(--soft);border-color:var(--line);transform:none}27%,90%{color:#fff;background:var(--brand,#7c83ff);border-color:var(--brand,#7c83ff);box-shadow:0 8px 24px color-mix(in srgb,var(--brand,#7c83ff) 40%,transparent);transform:translateY(-3px)}95%,to{color:var(--muted);background:var(--soft);border-color:var(--line);box-shadow:none;transform:none}}@keyframes lit2{0%,47%{color:var(--muted);background:var(--soft);border-color:var(--line);transform:none}52%,90%{color:#fff;background:var(--brand,#7c83ff);border-color:var(--brand,#7c83ff);box-shadow:0 8px 24px color-mix(in srgb,var(--brand,#7c83ff) 40%,transparent);transform:translateY(-3px)}95%,to{color:var(--muted);background:var(--soft);border-color:var(--line);box-shadow:none;transform:none}}@keyframes lit3{0%,72%{color:var(--muted);background:var(--soft);border-color:var(--line);transform:none}77%,90%{color:#fff;background:var(--ok,#22c55e);border-color:var(--ok,#22c55e);box-shadow:0 8px 24px color-mix(in srgb,var(--ok,#22c55e) 40%,transparent);transform:translateY(-3px)}95%,to{color:var(--muted);background:var(--soft);border-color:var(--line);box-shadow:none;transform:none}}@media (max-width:760px){.flow{grid-template-columns:1fr;gap:1.6rem}.flow-pulse,.flow:before{display:none}}@media (prefers-reduced-motion:reduce){.flow-pulse{display:none}.flow-node,.flow-step .flow-node{animation:none;color:#fff;background:var(--brand,#7c83ff);border-color:var(--brand,#7c83ff)}}.lp-hero{padding:5rem 0 4rem}.lp-hero:after{content:"";position:absolute;inset:-20% -10% auto -10%;height:90%;pointer-events:none;z-index:0;background:radial-gradient(40% 50% at 18% 30%,color-mix(in srgb,var(--brand) 32%,transparent),transparent 70%),radial-gradient(35% 45% at 82% 20%,rgba(34,197,94,.14),transparent 70%),radial-gradient(40% 50% at 70% 80%,rgba(168,85,247,.16),transparent 70%);filter:blur(30px)}.lp-hero-grid{z-index:1}.lp-badge{background:color-mix(in srgb,var(--card) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 10%,transparent)}.lp-badge i{box-shadow:0 0 0 3px rgba(34,197,94,.25);animation:lp-pulse 1.6s infinite}.lp-hero h1{font-size:clamp(2.4rem,5.4vw,4.1rem);line-height:1.04;letter-spacing:-.035em;font-weight:800}.lp-hero h1 em{background:linear-gradient(100deg,#a5b4fc,#818cf8 35%,#c084fc 70%,#f0abfc);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.05em}.lp-lead{font-size:1.2rem;line-height:1.6}.lp-cta .btn.big{box-shadow:0 10px 30px -8px color-mix(in srgb,var(--brand) 70%,transparent);transition:transform .15s,box-shadow .15s}.lp-cta .btn.big:hover{transform:translateY(-2px)}.lp-price{margin:1.1rem 0 0;color:var(--muted);font-size:.95rem}.lp-price strong{color:var(--strong);font-size:1.05rem}.lp-price span{margin:0 .35rem;opacity:.5}.lp-stage{padding:4.6rem 1.6rem 3.4rem 0}.lp-stage:before{content:"";position:absolute;inset:8% 0 6% 6%;border-radius:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 45%,transparent),rgba(168,85,247,.25));filter:blur(46px);opacity:.55;z-index:0}.lp-term{position:relative;z-index:1;border-radius:14px;box-shadow:0 30px 70px -20px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.04);transform:perspective(1400px) rotateY(-4deg) rotateX(2deg);transition:transform .4s}.lp-stage:hover .lp-term{transform:none}.lp-term pre{font-size:.92rem;min-height:215px}.lp-card{z-index:2;background:color-mix(in srgb,var(--card) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 16px 40px -12px rgba(0,0,0,.6)}.lp-float{left:-1.2rem;bottom:.3rem}.lp-float2{right:0;bottom:5rem}.lp-float3{right:-.4rem;top:0;max-width:270px;align-items:flex-start;animation:lp-bob 7s ease-in-out infinite}.lp-float3 strong{font-size:.84rem}.lp-float3 span:not(.lp-aibub){display:block;margin-top:.15rem;line-height:1.4}.lp-aibub{display:grid!important;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff!important;font-size:1rem!important}.lp-aibub svg{color:#fff;font-size:1rem}.lp-stack{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem .9rem;padding-top:0;padding-bottom:2.4rem;color:var(--muted);font-size:.9rem}.lp-stack b{padding:.3rem .8rem;border:1px solid var(--line);border-radius:999px;color:var(--fg);font-weight:600;font-size:.85rem;background:var(--card)}.lp-stats{background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 70%,var(--bg)))}.lp-stats-grid{padding-top:2.2rem;padding-bottom:2.2rem}.lp-stats strong{font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:800;letter-spacing:-.02em;background:linear-gradient(180deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;color:transparent}.lp-stats-grid>div+div{border-left:1px solid var(--line)}.lp-sec{padding:6rem 0}.lp-eyebrow{display:table;margin:0 auto 1rem;padding:.3rem .8rem;border-radius:999px;background:color-mix(in srgb,var(--brand) 14%,transparent)}.lp-db .lp-eyebrow{margin-left:0}.lp-sec h2{letter-spacing:-.025em;font-weight:800}.lp-feat{background:linear-gradient(180deg,color-mix(in srgb,var(--card) 100%,#fff 3%),var(--card));position:relative;overflow:hidden}.lp-feat:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--brand),transparent);opacity:0;transition:opacity .2s}.lp-feat:hover:before{opacity:1}.lp-feat:hover{box-shadow:0 18px 40px -18px color-mix(in srgb,var(--brand) 60%,transparent)}.lp-feat.ai{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:radial-gradient(120% 90% at 0 0,color-mix(in srgb,var(--brand) 22%,transparent),var(--card))}.lp-feat.ai .lp-fico{background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff}.lp #pricing .plan-card{position:relative;transition:transform .2s,box-shadow .2s}.lp #pricing .plan-card:hover{transform:translateY(-4px)}.lp #pricing .plan-card .price{font-size:2.1rem;font-weight:800;letter-spacing:-.02em;color:var(--strong)}.lp #pricing .plan-card .price small{font-size:.9rem;font-weight:500;color:var(--muted)}.lp #pricing .plan-card.featured{box-shadow:0 24px 60px -20px color-mix(in srgb,var(--brand) 70%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 12%,var(--card)),var(--card))}.plan-pop{position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:.22rem .8rem;border-radius:999px;background:linear-gradient(90deg,#6366f1,#a855f7);color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.lp-final{background:radial-gradient(60% 120% at 50% 0,#4f46e5,#312e81 70%,#1e1b4b);position:relative;overflow:hidden}.lp-final:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 0);background-size:48px 48px;-webkit-mask-image:radial-gradient(60% 100% at 50% 0,#000,transparent);mask-image:radial-gradient(60% 100% at 50% 0,#000,transparent)}.lp-final .lp-wrap,.lp-final>*{position:relative}.lp-final h2{font-size:clamp(2rem,4.2vw,3rem);letter-spacing:-.03em;font-weight:800}@keyframes lp-rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){.flow-step,.lp #pricing .plan-card,.lp-ai>*,.lp-card-rise,.lp-db>*,.lp-faq details,.lp-feat,.lp-step{animation:lp-rise linear both;animation-timeline:view();animation-range:entry 0 entry 35%}}@media (max-width:960px){.lp-stage{padding:2.4rem 0 3rem}.lp-term{transform:none}.lp-float{left:0}.lp-float3{right:0;max-width:240px}.lp-stats-grid>div+div{border-left:0}}@media (max-width:560px){.lp-float2{display:none}.lp-hero{padding:3rem 0 2.5rem}}@media (prefers-reduced-motion:reduce){.lp-term{transform:none;transition:none}.flow-step,.lp #pricing .plan-card,.lp-ai>*,.lp-db>*,.lp-faq details,.lp-feat,.lp-step{animation:none!important}}.lp #pricing .carousel-track{padding-top:18px}.lp-hero-center{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center}.lp-hero-center .lp-cta{justify-content:center;margin-top:1.4rem}.lp-hero-center .lp-trust{justify-content:center}.lp-h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}.lp-lead-m,.lp-stage-m{display:none}.pd{width:100%;margin-top:1.8rem;filter:drop-shadow(0 30px 60px rgba(0,0,0,.35))}.pd svg{width:100%;height:auto;display:block;overflow:visible;font-family:inherit}.pd-project{fill:color-mix(in srgb,var(--brand) 6%,transparent);stroke:var(--brand);stroke-width:1.5;stroke-dasharray:7 6;animation:pd-dash 24s linear infinite}@keyframes pd-dash{to{stroke-dashoffset:-260}}.pd-card{fill:var(--card);stroke:var(--line-strong);stroke-width:1}.pd-card.ai{stroke:color-mix(in srgb,var(--brand) 60%,var(--line));fill:color-mix(in srgb,var(--brand) 10%,var(--card))}.pd-term{fill:#070b14;stroke:var(--line-strong)}.pd-ico{fill:color-mix(in srgb,var(--brand) 22%,transparent)}.pd-ai-ico{fill:url(#none);fill:#7c6af7}.pd-stroke{stroke:var(--brand);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.pd-ok{fill:#22c55e;animation:lp-pulse 1.8s infinite}.pd-link{stroke:color-mix(in srgb,var(--brand) 55%,var(--line));stroke-width:1.6}.pd-link.dashed{stroke-dasharray:4 5}.pd-dot{filter:drop-shadow(0 0 5px currentColor)}.pd-t1{fill:var(--strong);font-size:15px;font-weight:700}.pd-t2{fill:var(--fg);font-size:13px;font-weight:600}.pd-t3{fill:var(--muted);font-size:12px}.pd-t3.q{fill:var(--strong);font-weight:600}.pd-mono{fill:#e2e8f0;font:13px ui-monospace,SFMono-Regular,Menlo,monospace}.pd-mono.dim{fill:#7c8aa5}.pd-mono.ok{fill:#4ade80}.pd-pill-brand{fill:var(--brand)}.pd-pill-text{fill:#fff;font-size:13px;font-weight:700}.pd-chip{fill:var(--card);stroke:var(--line-strong)}.pd-chip.ok{fill:rgba(34,197,94,.12);stroke:rgba(34,197,94,.4)}.pd .okc{fill:#4ade80;font-size:11.5px}.pd-price{fill:color-mix(in srgb,var(--brand) 18%,var(--card));stroke:color-mix(in srgb,var(--brand) 60%,transparent)}.pd-price-text{fill:var(--strong);font-size:14px;font-weight:800}.pd-bubble{fill:var(--bg);stroke:var(--line)}.pd-globe{fill:color-mix(in srgb,#22c55e 14%,var(--card));stroke:rgba(34,197,94,.55);stroke-width:1.5}.pd-globe+g{stroke:#4ade80;stroke-width:1.6;stroke-linecap:round}.pd-users{fill:var(--muted)}.pd-m{display:none;width:100%;margin-top:.6rem;filter:drop-shadow(0 20px 40px rgba(0,0,0,.35))}.pd-m svg{width:100%;max-width:420px;height:auto;display:block;margin:0 auto;overflow:visible;font-family:inherit}@media (max-width:760px){.pd{display:none}.pd-m{display:block}.lp-hero{padding:1.2rem 0 1.6rem}}@media (prefers-reduced-motion:reduce){.pd-ok,.pd-project{animation:none}.pd-dot{display:none}}.pd-t3.sm{font-size:10.5px}.sb-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-count{font-size:.72rem;font-weight:600;color:var(--muted);background:rgba(255,255,255,.06);border-radius:999px;padding:0 .45rem}.sb-app{margin-left:1.55rem;padding-left:.8rem;border-left:1px solid var(--line);border-radius:0 8px 8px 0;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.sb-new{color:var(--brand);font-weight:600}.sb-sub{margin:.5rem 0 .1rem;padding:0 .6rem;font-size:.75rem;color:var(--muted)}.site-footer.container.home,.site-header.home nav.container{width:80%;max-width:none}@media (max-width:1100px){.lp-wrap,.site-footer.container.home,.site-header.home nav.container{width:100%}}.sb-add{color:var(--brand);font-size:.85rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}.grid-3 .card{display:block}.stat{margin:.25rem 0 0;font-size:1.9rem;font-weight:800;letter-spacing:-.02em;color:var(--strong)}@media (max-width:760px){.grid-3{grid-template-columns:1fr}}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.todo-list li{display:flex;align-items:center;gap:.8rem;padding:.55rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.todo-list li.done .todo-text{text-decoration:line-through;color:var(--muted)}.todo-text{flex:1 1;overflow-wrap:anywhere}.todo-check{all:unset;cursor:pointer;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line-strong);color:var(--muted);font-size:.9rem}.todo-list li.done .todo-check{background:var(--ok,#22c55e);border-color:var(--ok,#22c55e);color:#fff}.todo-check:hover{border-color:var(--brand)}pre.code{margin:0;padding:.9rem 1rem;border:1px solid var(--line);border-radius:10px;background:#070b14;overflow-x:auto;font-size:.88rem}label.radio{display:flex;align-items:center;gap:.5rem;font-weight:400;color:var(--fg);cursor:pointer;width:auto;margin:.15rem 0}label.radio input[type=radio]{width:18px;height:18px;flex:none;margin:0;padding:0;accent-color:var(--brand)}.sb-sec-row{justify-content:space-between}.sb-prow,.sb-sec-row{display:flex;align-items:center}.sb-prow{gap:.15rem}.sb-prow .sb-link{flex:1 1;min-width:0}.sb-plus{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;color:var(--muted);text-decoration:none}.sb-plus svg{width:14px;height:14px}.sb-plus.on,.sb-plus:hover{background:color-mix(in srgb,var(--brand) 22%,transparent);color:#fff}.sb-sec.sb-sec-row{padding-right:0;padding-top:.55rem;padding-bottom:.15rem}.ctx-back{position:fixed;inset:0;z-index:90}.ctx-menu{position:fixed;z-index:91;min-width:210px;padding:.35rem;border:1px solid var(--line-strong);border-radius:12px;background:color-mix(in srgb,var(--card) 94%,#000);box-shadow:0 18px 50px -10px rgba(0,0,0,.7)}.ctx-title{padding:.35rem .6rem .45rem;font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.ctx-menu button{all:unset;box-sizing:border-box;display:block;width:100%;padding:.42rem .6rem;border-radius:8px;cursor:pointer;color:var(--fg);font-size:.9rem}.ctx-menu button:focus-visible,.ctx-menu button:hover{background:color-mix(in srgb,var(--brand) 22%,transparent);color:#fff}.ctx-menu hr{border:0;border-top:1px solid var(--line);margin:.3rem 0}.sb-app{display:flex;align-items:center;gap:.5rem}.sb-app .sb-name{flex:1 1;min-width:0}.sb-app.warn{color:#fbbf24}.sb-warn{flex:none;width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.25);animation:lp-pulse 1.4s infinite}.sb-pending .sb-name{font-style:italic;opacity:.85}.lp-flow-in{width:100%;margin-top:1.2rem}.lp-flow-in .flow{margin-top:0}.lp-flow-in .flow-step h3{margin-top:.8rem;font-size:1rem}.lp-flow-in .flow-step p{font-size:.86rem}.lp-hero-center .lp-cta{margin-top:2rem}.pd-ci{fill:color-mix(in srgb,var(--brand) 12%,var(--card));stroke:color-mix(in srgb,var(--brand) 55%,var(--line));stroke-width:1.2}.pd-ci-label{fill:var(--brand);font-size:15px;font-weight:800;letter-spacing:.02em}.pd-stage{fill:var(--card);stroke:var(--line-strong)}.pd-tick{stroke:#22c55e;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.lp-hero .lp-wrap.lp-hero-center{width:90%;max-width:1600px}@media (max-width:1100px){.lp-hero .lp-wrap.lp-hero-center{width:100%}}.site-header.home nav.container{width:90%;max-width:1600px}@media (max-width:1100px){.site-header.home nav.container{width:100%}}.container.narrow.blog-wide{width:90%;max-width:1600px}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:1.2rem;gap:1.2rem;align-items:start}.blog-grid .card h2{font-size:1.2rem;margin:0}@media (max-width:1100px){.container.narrow.blog-wide{width:100%}}.auth-side .brand-mark,.brand-mark,.topbar .brand-mark{background:none;box-shadow:none;width:30px;height:30px;border-radius:9px}.brand-mark svg{width:100%;height:100%;display:block}@media (min-width:761px){.lp-hero{padding:1rem 0 1.4rem}.pd{margin-top:0}.pd svg{max-height:calc(100vh - 235px);min-height:340px}.lp-hero-center .lp-cta{margin-top:.6rem}.lp-hero .lp-price{margin-top:.7rem}.lp-stack{padding-bottom:1.6rem}}.ctx-menu button.danger{color:#f87171}.ctx-menu button.danger:focus-visible,.ctx-menu button.danger:hover{background:rgba(239,68,68,.2);color:#fecaca}.modal.guide{width:min(520px,100%)}.guide-tag{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}.guide-steps{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.55rem;color:var(--fg);line-height:1.5}.guide-dots{display:flex;gap:.35rem}.guide-dots i{flex:1 1;height:4px;border-radius:4px;background:var(--line-strong);transition:background .2s}.guide-dots i.on{background:var(--brand)}.guide-html{min-height:7rem;line-height:1.6;color:var(--fg)}.guide-html p{margin:0 0 .7rem}.guide-html p:last-child{margin-bottom:0}.guide-html ol,.guide-html ul{margin:0 0 .7rem;padding-left:1.3rem}.guide-html h3,.guide-html h4{margin:.2rem 0 .5rem;color:var(--strong)}.guide-html pre{margin:0 0 .7rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;background:#070b14;overflow-x:auto}.guide-html blockquote{margin:0 0 .7rem;padding:.4rem .9rem;border-left:3px solid var(--brand);color:var(--muted)}.guide-html img{max-width:100%;height:auto;border-radius:8px}.guide-html a{color:var(--brand);text-decoration:underline}.tab-panel.tab-split:not([hidden]){display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:1.4rem;gap:1.4rem;align-items:stretch}.sec-body{display:flex;flex-direction:column;gap:1rem;min-width:0}.sec-body>.sec-off{display:none!important}.sec-nav{align-self:start;position:-webkit-sticky;position:sticky;top:60px;max-height:calc(100vh - 76px);overscroll-behavior:contain;scrollbar-width:thin;overflow-y:auto;align-content:start;display:flex;flex-direction:column;gap:.15rem;padding:.35rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}.sec-item{all:unset;box-sizing:border-box;cursor:pointer;padding:.5rem .7rem;border-radius:8px;color:var(--muted);font-size:.92rem;line-height:1.3}.sec-item:hover{background:rgba(255,255,255,.05);color:var(--fg)}.sec-item.on{background:color-mix(in srgb,var(--brand) 18%,transparent);color:#fff;font-weight:600;box-shadow:inset 2px 0 0 var(--brand)}.sec-item:focus-visible{outline:2px solid var(--brand)}@media (max-width:960px){.tab-panel.tab-split:not([hidden]){grid-template-columns:1fr;gap:.8rem}.sec-nav{position:static;max-height:none;flex-direction:row;overflow-x:auto;white-space:nowrap}}.sec-row{display:flex;align-items:center;gap:.15rem;border-radius:8px}.sec-row .sec-item{flex:1 1;min-width:0}.sec-row.on{background:color-mix(in srgb,var(--brand) 18%,transparent);box-shadow:inset 2px 0 0 var(--brand)}.sec-row.on .sec-item{background:none;box-shadow:none;color:#fff;font-weight:600}.sec-edit{all:unset;box-sizing:border-box;cursor:pointer;flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;color:var(--muted);font-size:.85rem;opacity:.6}.sec-edit.has{color:#fbbf24;opacity:1}.sec-edit:focus-visible,.sec-edit:hover{background:rgba(255,255,255,.1);color:#fff;opacity:1}.sec-edit-solo{width:auto;padding:0 .6rem;height:28px;justify-self:end;border:1px dashed var(--line-strong)}.modal.guide-editor{width:min(680px,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.sub-h{margin:.4rem 0 0;font-size:.95rem;color:var(--muted);font-weight:600}details.adv>summary{cursor:pointer;color:var(--brand);font-weight:600}.sec-body>section:not(.sec-off){flex:1 1 auto}label.row:has(input[type=checkbox]):not(.card),label:has(>input[type=checkbox]):not(.card),label:has(>input[type=radio]):not(.card):not(.plan){flex-direction:row;align-items:center;justify-content:flex-start;gap:.55rem;font-weight:400;cursor:pointer}label>input[type=checkbox],label>input[type=radio]{flex:none;margin:0}.row label>input,.row label>select,.row.inline label>input,.row.inline label>select{flex:0 0 auto}progress.meter{width:100%;height:10px;border-radius:999px;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--line);border:0}progress.meter::-webkit-progress-bar{background:var(--line)}progress.meter::-webkit-progress-value{background:var(--brand)}progress.meter::-moz-progress-bar{background:var(--brand)}progress.meter.near::-webkit-progress-value{background:#f59e0b}progress.meter.near::-moz-progress-bar{background:#f59e0b}progress.meter.over::-webkit-progress-value{background:#ef4444}progress.meter.over::-moz-progress-bar{background:#ef4444}.sort-link{color:inherit;text-decoration:none;white-space:nowrap}.sort-link:hover{color:var(--brand)}.pager{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;justify-content:center;margin-top:.4rem}.btn.disabled{opacity:.45;pointer-events:none}.list li.dim{opacity:.5}.list li.dim span:first-child{text-decoration:line-through}.article-page{padding:1.5rem 20px 4rem}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:3rem;gap:3rem;max-width:1120px;margin:0 auto;align-items:start}.article-main{min-width:0}.article-title{font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1.2;letter-spacing:-.02em;margin:.4rem 0 1rem;color:var(--strong)}.article-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}.article-meta>div{display:flex;flex-direction:column;font-size:.92rem}.article-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;font-weight:800}.article-tags{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 1.2rem;padding:0}.article-tags li{padding:.2rem .65rem;border-radius:6px;background:color-mix(in srgb,var(--brand) 16%,transparent);color:#c7d2fe;font-size:.82rem;font-weight:600}.article-lead{font-size:1.15rem;color:var(--muted);line-height:1.6;border-left:3px solid var(--brand);padding-left:1rem;margin:0 0 1.4rem}.article-cover{width:100%;border-radius:12px;margin-bottom:1.6rem}.article-side{position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto}.toc-side{border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;background:var(--card)}.toc-title{margin:0 0 .6rem;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.toc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.toc-list a{display:block;padding:.28rem .6rem;border-left:2px solid transparent;color:var(--muted);text-decoration:none;font-size:.9rem;line-height:1.4;border-radius:0 6px 6px 0}.toc-list a:hover{color:var(--fg);background:rgba(255,255,255,.04)}.toc-list a.on{color:#fff;border-left-color:var(--brand);background:color-mix(in srgb,var(--brand) 14%,transparent);font-weight:600}.toc-inline{display:none;border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;margin-bottom:1.2rem;background:var(--card)}.toc-inline summary{cursor:pointer;font-weight:700}.article-main .prose{max-width:none;font-size:1.06rem;line-height:1.8;color:var(--fg);padding-bottom:1rem}.article-main .prose h2,.article-main .prose h3,.article-main .prose h4,.article-main .prose h5{position:relative;scroll-margin-top:84px;color:var(--strong);letter-spacing:-.01em}.article-main .prose h2{font-size:1.65rem;margin:2.4rem 0 1rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}.article-main .prose h3{font-size:1.3rem;margin:2rem 0 .7rem}.article-main .prose h4{font-size:1.1rem;margin:1.6rem 0 .6rem}.article-main .prose .anchor{margin-left:.5rem;color:var(--muted);text-decoration:none;opacity:0;font-weight:400}.article-main .prose h2:hover .anchor,.article-main .prose h3:hover .anchor,.article-main .prose h4:hover .anchor{opacity:1}.article-main .prose p{margin:0 0 1.15rem}.article-main .prose a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}.article-main .prose ol,.article-main .prose ul{margin:0 0 1.2rem;padding-left:1.5rem}.article-main .prose li{margin-bottom:.4rem}.article-main .prose blockquote{margin:0 0 1.2rem;padding:.7rem 1.1rem;border-left:4px solid var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent);border-radius:0 10px 10px 0;color:var(--muted)}.article-main .prose hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.article-main .prose img{max-width:100%;height:auto;border-radius:10px;margin:.4rem 0 1.2rem;display:block}.article-main .prose :not(pre)>code{padding:.12em .4em;border-radius:5px;background:rgba(255,255,255,.08);font-size:.9em}.codeblock{margin:0 0 1.3rem;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;background:#070b14}.codeblock-bar{display:flex;justify-content:space-between;align-items:center;padding:.35rem .8rem;background:rgba(255,255,255,.05);font-size:.78rem;color:var(--muted);text-transform:lowercase}.codeblock-bar button{all:unset;cursor:pointer;padding:.15rem .55rem;border-radius:6px;color:var(--fg)}.codeblock-bar button:hover{background:rgba(255,255,255,.1)}.codeblock pre{margin:0;padding:.9rem 1rem;overflow-x:auto;font-size:.9rem;line-height:1.6;background:transparent;border:0}.codeblock pre code{background:none;padding:0;color:#e2e8f0}@media (max-width:960px){.article-grid{grid-template-columns:minmax(0,1fr);gap:0}.article-side{display:none}.toc-inline{display:block}}.plan-edit{display:grid;grid-gap:14px;gap:14px;padding:16px}.plan-edit-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.plan-edit-head>input{flex:0 1 220px;min-width:0;font-weight:600}.plan-edit-flags{display:flex;flex-wrap:wrap;gap:6px 18px;margin-left:auto}.plan-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}.plan-edit-grid label,.plan-edit-langs label{display:grid;grid-gap:4px;gap:4px;font-size:.85rem;color:var(--muted,inherit);min-width:0}.plan-edit-grid input,.plan-edit-langs textarea{width:100%;min-width:0;box-sizing:border-box}.plan-edit-desc summary{cursor:pointer;font-size:.9rem}.plan-edit-langs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin:10px 0}@media (max-width:800px){.plan-edit-langs{grid-template-columns:1fr}.plan-edit-flags{margin-left:0}}.back-top{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;border:1px solid var(--border,#334);background:var(--accent,#4f8cff);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.35);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s,transform .2s;z-index:50}.back-top.on{opacity:1;transform:none;pointer-events:auto}.proj-hero{border:1px solid var(--line);border-radius:10px;padding:1.4rem 1.5rem;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#4f8cff) 14%,var(--card)),var(--card) 65%);display:grid;grid-gap:1.1rem;gap:1.1rem}.proj-hero.empty{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;border-color:color-mix(in srgb,var(--accent,#4f8cff) 55%,var(--line))}.proj-kicker{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent,#4f8cff)}.proj-hero h2{margin:.2rem 0 .5rem;font-size:1.35rem;border:0;padding:0}.proj-hero-copy{display:grid;grid-gap:.6rem;gap:.6rem;justify-items:start}.proj-hero-copy p{max-width:52ch;line-height:1.55}.proj-steps{list-style:none;margin:0;padding:0;display:grid;grid-gap:.6rem;gap:.6rem}.proj-steps li{display:flex;gap:.8rem;align-items:center;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;background:var(--card)}.proj-steps b{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent,#4f8cff);color:#fff;font-size:.85rem}.proj-steps span{display:grid;font-size:.85rem;color:var(--muted)}.proj-steps strong{color:inherit;font-size:.95rem}.proj-hero-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.proj-hero-head h2{margin-bottom:0}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:.8rem;gap:.8rem}.proj-card{position:relative;display:grid;grid-gap:.3rem;gap:.3rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--card);text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.proj-card:hover{border-color:var(--accent,#4f8cff);transform:translateY(-1px)}.proj-card strong{font-size:1rem}.proj-cost{font-weight:700;margin-top:.2rem}.proj-cost small{font-weight:400;color:var(--muted);margin-left:2px}.proj-card .sb-warn{position:absolute;top:12px;right:12px}.proj-new{place-content:center;justify-items:center;border-style:dashed;color:var(--accent,#4f8cff);font-weight:600;min-height:96px}.proj-new span{font-size:1.6rem;line-height:1}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:.8rem;gap:.8rem}.card.stat{display:grid;grid-gap:.25rem;gap:.25rem;text-decoration:none;color:inherit;padding:.9rem 1rem;transition:border-color .15s}.card.stat:hover{border-color:var(--accent,#4f8cff)}.stat-label{font-size:.78rem;color:var(--muted)}.stat-val{font-size:1.45rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:860px){.proj-hero.empty{grid-template-columns:1fr}}.sb-sec-row>span{color:var(--text,inherit);font-weight:700}.sb-start{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:2px .5rem;gap:2px .5rem;margin:.3rem .4rem .5rem;padding:.6rem .7rem;border-radius:8px;background:var(--accent,#4f8cff);color:#fff;text-decoration:none;font-weight:600;font-size:.85rem}.sb-start svg{width:16px;height:16px}.sb-start small{grid-column:2;font-weight:400;opacity:.85;font-size:.72rem}.sb-start:hover{filter:brightness(1.08)}.proj-hero,.proj-hero *{text-align:left}.proj-hero .proj-new{text-align:center}.term{background:#0b0f17;border:1px solid var(--line);border-radius:8px;overflow:hidden}.term-screen{margin:0;padding:.8rem 1rem;height:380px;overflow:auto;font:.82rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:#d6e2f0;white-space:pre-wrap;word-break:break-all;background:transparent}.term-line{display:flex;align-items:center;gap:.5rem;padding:.45rem 1rem;border-top:1px solid var(--line);font-family:ui-monospace,Menlo,monospace;color:#7ee787}.term-line input{flex:1 1;min-width:0;background:transparent;border:0;outline:0;color:#d6e2f0;font:inherit;padding:.2rem 0}.http-bar{display:grid;grid-template-columns:auto auto minmax(0,1fr) minmax(0,2fr) auto;grid-gap:.5rem;gap:.5rem;align-items:center}.http-bar input,.http-bar select{min-width:0;width:100%}@media (max-width:800px){.http-bar{grid-template-columns:1fr 1fr}.http-bar input{grid-column:1/-1}}.http-res .logs{max-height:420px;overflow:auto}.cookie-bar{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);width:min(720px,calc(100vw - 32px));z-index:90;display:flex;gap:1.2rem;align-items:flex-start;padding:1.5rem 1.6rem;background:var(--card);border:2px solid var(--accent,#6366f1);border-radius:16px;box-shadow:0 0 0 100vmax rgba(5,8,16,.55),0 24px 70px rgba(0,0,0,.6);animation:cookie-in .35s ease-out}@keyframes cookie-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}.cookie-ico{flex:none;font-size:2.6rem;line-height:1}.cookie-body h2{margin:0 0 .4rem;font-size:1.3rem;border:0;padding:0}.cookie-bar p{margin:0;font-size:.98rem;line-height:1.6;color:var(--muted)}.cookie-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.1rem}.cookie-actions .btn{min-width:160px}@media (max-width:640px){.cookie-bar{flex-direction:column;gap:.6rem;padding:1.2rem;bottom:12px}.cookie-actions .btn{flex:1 1 100%}}.diag{border-color:color-mix(in srgb,var(--accent,#6366f1) 50%,var(--line))}.diag-fix{padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.diag-fix h3{margin:0 0 .4rem;font-size:.95rem}.diag-fix ol{margin:0;padding-left:1.2rem;display:grid;grid-gap:.25rem;gap:.25rem}.student-promo{display:flex;align-items:center;gap:1.1rem;margin:0 auto 1.6rem;max-width:920px;padding:1.1rem 1.4rem;border:2px solid var(--accent,#6366f1);border-radius:14px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent,#6366f1) 22%,var(--card)),var(--card) 70%);text-align:left}.student-promo-ico{font-size:2.4rem;line-height:1;flex:none}.student-promo>div{flex:1 1;min-width:0}.student-promo h3{margin:.15rem 0 .3rem;font-size:1.2rem}.student-promo p{margin:0;color:var(--muted);line-height:1.5}.student-promo .btn{flex:none}@media (max-width:700px){.student-promo{flex-direction:column;align-items:flex-start}}.plan.student{border-color:color-mix(in srgb,var(--accent,#6366f1) 70%,var(--line))}.plan-student{background:var(--accent,#6366f1);color:#fff}.student-promo-html h3{margin:.15rem 0 .3rem;font-size:1.2rem}.student-promo-html p{margin:0 0 .3rem;color:var(--muted);line-height:1.5}.student-promo-html strong{color:var(--text,inherit)}.student-promo-html a{color:var(--link,#a5b4fc);text-decoration:underline}.lp-hero .student-promo{margin:1.4rem auto 0}.student-promo.clickable{position:relative;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.student-promo-cover{position:absolute;inset:0;border-radius:inherit;z-index:1}.student-promo-cover:focus-visible{outline:3px solid var(--link,#a5b4fc);outline-offset:3px}.student-promo.clickable .student-promo-html a{position:relative;z-index:2}.student-promo.clickable .btn{transition:transform .18s ease,filter .18s ease}.student-promo.clickable:focus-within,.student-promo.clickable:hover{transform:translateY(-3px);border-color:var(--link,#a5b4fc);box-shadow:0 14px 40px rgba(99,102,241,.35)}.student-promo.clickable:hover .btn{filter:brightness(1.12);transform:translateX(3px)}.student-promo.clickable:hover .student-promo-ico{animation:promo-hop .5s ease}@keyframes promo-hop{0%,to{transform:translateY(0)}40%{transform:translateY(-6px) rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.student-promo.clickable,.student-promo.clickable .btn{transition:none}.student-promo.clickable:hover{transform:none}.student-promo.clickable:hover .student-promo-ico{animation:none}}.job-toasts{position:fixed;left:1rem;bottom:1rem;z-index:60;display:flex;flex-direction:column;gap:.4rem;max-width:min(24rem,calc(100vw - 2rem))}.job-toast{padding:.55rem .8rem;border-radius:8px;border:1px solid var(--border,#8884);background:var(--card,#222);color:inherit;box-shadow:0 4px 16px #0004;font-size:.9rem}.job-toast.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.job-toast.err{color:var(--err);border-color:color-mix(in srgb,var(--err) 45%,transparent)}.form-actions{display:flex;gap:.5rem;align-items:center;justify-content:flex-start;flex-wrap:wrap}:root{--ease:cubic-bezier(.2,.7,.2,1);--dur:140ms;--ctl-h:36px;--shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 1px 2px rgba(0,0,0,.35),0 10px 28px -14px rgba(0,0,0,.7);--surface-hi:color-mix(in srgb,var(--card) 88%,white)}html{scroll-behavior:smooth;scroll-padding-top:64px}body{font-feature-settings:"cv02","cv03","cv04","cv11";text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--brand) 40%,transparent);color:#fff}h1{letter-spacing:-.015em;font-weight:650}h2{letter-spacing:-.005em}a{-webkit-text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);transition:color var(--dur) var(--ease)}a:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.muted-text{color:var(--muted);line-height:1.55}code{font-feature-settings:none;font-variant-ligatures:none}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box;border:2px solid transparent}main{animation:page-in .28s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.badge,.btn,.card,.sb-link,.tab,button,input,select,textarea,tr{transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}.btn{min-height:var(--ctl-h);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:8px;font-weight:600;letter-spacing:.005em;box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.12);cursor:pointer}.btn:not(.ghost):hover{transform:translateY(-1px);box-shadow:0 6px 16px -8px color-mix(in srgb,var(--accent) 70%,transparent),inset 0 1px 0 rgba(255,255,255,.16)}.btn:active{transform:translateY(0) scale(.98)}.btn.small{min-height:30px;padding:.25rem .7rem;border-radius:7px}.btn.ghost{box-shadow:none}.btn.ghost:hover{border-color:var(--muted);transform:none}.btn:disabled,button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}button[aria-busy=true]{cursor:progress}input,select,textarea{min-height:var(--ctl-h);border-radius:8px;background:color-mix(in srgb,var(--bg) 70%,var(--card))}textarea{min-height:5.5rem;line-height:1.5}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-600);box-shadow:var(--ring)}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--accent)}label{color:var(--strong)}::placeholder{color:var(--muted);opacity:.7}.card{border-radius:12px;box-shadow:var(--shadow-sm);background-image:linear-gradient(180deg,rgba(255,255,255,.02),transparent 60%)}.card>h2:first-child{font-size:.98rem;border-bottom-color:color-mix(in srgb,var(--line) 80%,transparent)}.app-item:hover,a.card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-md)}.empty{border:1px dashed var(--line-strong);border-radius:12px;padding:2rem 1.25rem;text-align:center;background:color-mix(in srgb,var(--card) 60%,transparent)}table{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-card{border-radius:12px;overflow:auto;box-shadow:var(--shadow-sm)}.table-card thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--soft) 92%,black);border-bottom:1px solid var(--line-strong);white-space:nowrap}th{font-size:.72rem;letter-spacing:.06em;padding-top:.7rem;padding-bottom:.7rem}tbody tr{transition:background-color var(--dur) var(--ease)}tbody tr:hover{background:color-mix(in srgb,var(--brand) 7%,transparent)}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}th button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit}th button:hover{color:var(--strong)}th[aria-sort]{color:var(--brand-600)}.badge{font-size:.74rem;padding:.1rem .55rem;letter-spacing:.01em}.sb-link{min-height:32px;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}.sb-link:hover{color:var(--strong);transform:translateX(1px)}.sb-link.on{color:var(--strong);background:color-mix(in srgb,var(--brand) 16%,transparent);box-shadow:inset 2px 0 0 var(--brand)}.tab{transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.tab[aria-selected=true]{border-bottom-width:2px}.topbar{-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);background:color-mix(in srgb,var(--nav) 88%,transparent);border-bottom:1px solid var(--line)}.alert{border-radius:10px;animation:page-in .22s var(--ease) both}.job-toast{animation:toast-in .24s var(--ease) both;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.skel-line{background:linear-gradient(90deg,var(--soft) 25%,color-mix(in srgb,var(--soft) 70%,white) 50%,var(--soft) 75%);background-size:200% 100%;animation:shimmer 1.3s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px;border-radius:6px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}@media (max-width:720px){.btn,input,select{min-height:40px}.btn.small{min-height:34px}.page-head{margin:1rem 0 .8rem}.card{padding:.95rem 1rem}.card>h2:first-child{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.badge,.btn,.kv-table td.actions,.kv-table td.num,th{white-space:nowrap}.icon-btn{position:relative;width:34px;min-width:34px;padding:0}[data-tip]:focus-visible:after,[data-tip]:hover:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);right:0;z-index:50;max-width:260px;width:max-content;padding:.35rem .55rem;border-radius:6px;background:var(--fg);color:var(--bg);font-size:.78rem;font-weight:500;line-height:1.3;white-space:normal;pointer-events:none;box-shadow:0 4px 14px rgb(0 0 0/.25)}.ctx-back{z-index:1000}.ctx-menu{z-index:1001}.sb-handle{position:fixed;top:48px;left:var(--sb-w,240px);width:6px;height:calc(100vh - 48px);cursor:col-resize;z-index:40;touch-action:none}.sb-handle:after{content:"";position:absolute;left:2px;top:0;bottom:0;width:2px;background:transparent;transition:background .15s}.sb-handle.drag:after{background:var(--brand)}.sb-handle.collapsed{left:0}.sb-toggle{position:absolute;top:50%;left:-11px;transform:translateY(-50%);width:28px;height:28px;box-shadow:0 2px 8px rgba(0,0,0,.5);padding:0;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;border:2px solid var(--bg,#0b1020);cursor:pointer;opacity:.9;transition:opacity .15s,background .15s}.sb-handle.collapsed .sb-toggle,.sb-handle:hover .sb-toggle,.sb-toggle:focus-visible{opacity:1}.sb-toggle:hover{filter:brightness(1.2);transform:translateY(-50%) scale(1.08)}.sb-toggle svg{width:16px;height:16px}.sb-handle.collapsed .sb-toggle{left:6px}html[data-sb=collapsed] .sidebar{display:none}body:has(.sb-handle.drag){-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:col-resize}@media (max-width:900px){.sb-handle{display:none}html[data-sb=collapsed] .sidebar{display:flex}}.sidebar{scrollbar-width:thin;scrollbar-gutter:stable}.row:has(>label:not(.check):not(.radio))>.btn,.row:has(>label:not(.check):not(.radio))>a.btn,.row:has(>label:not(.check):not(.radio))>button{align-self:flex-end}@media (min-width:901px){body:has(.shell),html:has(.shell){height:100%;overflow:hidden}.shell{height:calc(100vh - 48px);min-height:0;overflow:hidden;padding-bottom:0}.shell>.sidebar{position:static;height:100%;min-height:0;align-self:stretch}.shell>.page{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scroll-padding-top:16px}.shell .sec-nav{top:12px;max-height:calc(100vh - 48px - 28px)}}@media (min-width:901px){.shell>.page:has(.sec-nav){overflow:hidden;padding-bottom:0}.shell>.page:has(.sec-nav)>main{height:100%;min-height:0;display:flex;flex-direction:column}.shell>.page:has(.sec-nav)>main>*{flex:none}.shell>.page:has(.sec-nav)>main>.tab-panel.tab-split:not([hidden]){flex:1 1;min-height:0;overflow:hidden;grid-template-rows:minmax(0,1fr);margin-bottom:12px}.shell>.page:has(.sec-nav) .sec-nav{position:static;top:auto;height:100%;max-height:none;min-height:0}.shell>.page:has(.sec-nav) .sec-body{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-bottom:2rem}}@media (min-width:901px){.shell>.page{grid-column:2}}@media (min-width:901px){.shell>.page:has(.sec-nav) main div:has(.tab-split:not([hidden])){flex:1 1;min-height:0;display:flex;flex-direction:column}.shell>.page:has(.sec-nav) main div:has(.tab-split:not([hidden]))>*{flex:none}.shell>.page:has(.sec-nav) main .tab-split:not([hidden]){flex:1 1!important;min-height:0!important;overflow:hidden;grid-template-rows:minmax(0,1fr)}}form.row:has(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea):not([method=get i]):not(.nowrap){align-items:flex-end;justify-content:flex-start}form.row:has(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea):not([method=get i]):not(.nowrap):after{content:"";flex:0 0 100%;order:98;height:0;margin-top:-.75rem}form.row:has(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea):not([method=get i]):not(.nowrap)>:is(button,.btn,a.btn){order:99;align-self:flex-start}form.row.inline>input:not([type=checkbox]):not([type=radio]){max-width:560px}.modal .row:has(>.btn,>button){justify-content:flex-start!important}.topbar .lang-menu summary{padding:.25rem .55rem;font-size:.85rem;border-color:transparent;background:#ffffff14;color:#e5e7eb}.topbar .lang-menu .lang-list,.topbar .lang-menu form{bottom:auto;top:calc(100% + 6px);z-index:60}@media (min-width:901px){body:has(.shell),html:has(.shell){overflow:clip}.shell{overflow:clip}.shell>.page:has(.sec-nav){overflow:clip}.shell>.page:has(.sec-nav) main .tab-split:not([hidden]),.shell>.page:has(.sec-nav)>main>.tab-panel.tab-split:not([hidden]){overflow:clip}}[data-i18n-wait]{color:transparent!important}@media (min-width:901px){html:has(.shell){overflow:hidden}body:has(.shell){position:fixed;inset:0;width:100%;height:100%;overflow:hidden}}.row.inline .stack>input,.row.inline .stack>select,.row.inline .stack>textarea{flex:0 0 auto}.lp-sec-pill{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .2rem;padding:.35rem .85rem;border-radius:999px;font-size:.84rem;font-weight:600;color:#86efac;background:rgb(34 197 94/.1);border:1px solid rgb(34 197 94/.35)}.lp-sec-pill svg{width:16px;height:16px}.pd-secbar-bg{fill:rgb(34 197 94/.08);stroke:rgb(34 197 94/.4);stroke-width:1.5}.pd-shield-body{fill:rgb(34 197 94/.18);stroke:#22c55e;stroke-width:2.4;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgb(34 197 94/.55))}.pd-shield-lock{fill:#22c55e}.pd-shield-shackle{fill:none;stroke:#86efac;stroke-width:3.2;stroke-linecap:round}.pd-secico{stroke:#4ade80}.pd-secm{list-style:none;margin:1rem auto 0;padding:.8rem;max-width:420px;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;border-radius:16px;border:1px solid rgb(34 197 94/.35);background:rgb(34 197 94/.07)}.pd-secm li{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:999px;font-size:.8rem;font-weight:600;color:#86efac;background:rgb(34 197 94/.12);border:1px solid rgb(34 197 94/.3)}.pd-secm svg{width:14px;height:14px}.pd-sec-panel{fill:rgb(34 197 94/.06);stroke:rgb(34 197 94/.35);stroke-width:1.2;stroke-dasharray:5 4}.pd-sec-chip{filter:drop-shadow(0 0 6px rgb(34 197 94/.35))}.pd-solid{fill:var(--bg,#0b1020)}.lp-hero .lp-hero-split{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:clamp(1.5rem,3vw,3rem);gap:clamp(1.5rem,3vw,3rem);align-items:center;width:100%;max-width:none;padding:0 clamp(1rem,2.5vw,3rem);text-align:left}.lp-hero-left{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;min-width:0}.lp-hero .lp-h1-big{margin:0;font-size:clamp(2.2rem,3.6vw,3.8rem)}.lp-hero-left .lp-lead{margin:0;max-width:34rem}.lp-hero-left .lp-lead strong{color:var(--strong)}.lp-bonus{margin:0;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;font-weight:700;color:#fde68a;background:linear-gradient(100deg,rgb(245 158 11/.22),rgb(236 72 153/.18));border:1px solid rgb(245 158 11/.5);box-shadow:0 0 28px -8px rgb(245 158 11/.55)}.lp-hero-left .lp-price{margin:0;justify-content:flex-start;text-align:left}.lp-hero-left .lp-cta{justify-content:flex-start;margin:.4rem 0 0}.lp-hero-left .student-promo{margin:0;width:100%;max-width:34rem}.lp-hero-right{min-width:0}.lp-hero-right .pd{margin-top:0}@media (max-width:1100px){.lp-hero .lp-hero-split{grid-template-columns:1fr;text-align:center}.lp-hero-left{align-items:center}.lp-hero-left .lp-cta,.lp-hero-left .lp-price{justify-content:center}}.site-header.home nav.container{width:100%;max-width:none;padding-left:clamp(1rem,2.5vw,3rem);padding-right:clamp(1rem,2.5vw,3rem)}.lp-hero-left{container-type:inline-size}.lp-hero .lp-h1-big{text-wrap:balance}@media (min-width:1101px){.lp-hero .lp-h1-big{font-size:clamp(1.7rem,5.7cqw,3.8rem);white-space:nowrap}html[lang=vi] .lp-hero .lp-h1-big{font-size:clamp(1.6rem,4.9cqw,3.4rem)}}.lp-bonus.db{color:#a7f3d0;background:linear-gradient(100deg,rgb(16 185 129/.2),rgb(99 102 241/.14));border-color:rgb(16 185 129/.5);box-shadow:0 0 28px -8px rgb(16 185 129/.5)}.lp-bonus.db a{color:inherit;text-decoration:none}.lp-freedb{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:1rem;gap:1rem;align-items:center;width:100%;padding:1.1rem 1.3rem;border-radius:18px;border:1px solid rgb(16 185 129/.55);background:linear-gradient(120deg,rgb(16 185 129/.22),rgb(99 102 241/.16) 70%);box-shadow:inset 0 0 0 1px rgb(255 255 255/.03),0 20px 50px -22px rgb(16 185 129/.6);transition:transform .15s,box-shadow .15s}.lp-freedb:hover{transform:translateY(-2px);box-shadow:0 24px 56px -20px rgb(16 185 129/.75)}.lp-freedb-ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:#6ee7b7;background:rgb(16 185 129/.18);border:1px solid rgb(16 185 129/.5)}.lp-freedb-ico svg{width:28px;height:28px}.lp-freedb h3{margin:.15rem 0 .2rem;font-size:1.15rem;color:var(--strong);line-height:1.25}.lp-freedb p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.4}.lp-freedb .proj-kicker{color:#6ee7b7}@media (max-width:560px){.lp-freedb{grid-template-columns:auto minmax(0,1fr)}.lp-freedb .btn{grid-column:1/-1;justify-self:stretch;text-align:center}}.lp-hero .lp-hero-split{gap:clamp(1rem,1.6vw,1.75rem)}.lp-hero-left .lp-freedb,.lp-hero-left .lp-lead,.lp-hero-left .student-promo{max-width:none}.lp-hero-left{align-items:stretch}.lp-hero-left>*{width:100%;max-width:none;box-sizing:border-box}.lp-hero-left .lp-bonus,.lp-hero-left .lp-price{display:flex;justify-content:center;border-radius:14px}.lp-hero-left .lp-price{text-align:center;padding:.55rem 1rem;border:1px dashed var(--line-strong,var(--line))}.lp-hero-left .lp-cta{display:grid;grid-template-columns:1fr 1fr;grid-gap:.8rem;gap:.8rem}.lp-hero-left .lp-cta .btn{width:100%;justify-content:center;text-align:center}@media (max-width:1100px){.lp-hero-left{align-items:stretch}}@media (max-width:480px){.lp-hero-left .lp-cta{grid-template-columns:1fr}}.lp-hero .lp-hero-split{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.lp-hero-left .lp-cta{display:flex;justify-content:center;gap:.7rem;width:100%}.lp-hero-left .lp-cta .btn{width:auto;padding:.6rem 1.2rem;font-size:.95rem}@media (max-width:1100px){.lp-hero .lp-hero-split{grid-template-columns:1fr}}.btn:not(.ghost):not(.danger-btn):hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.lp-final .btn.big:hover{background:#e0e7ff;border-color:#e0e7ff;color:#1e1b4b}.lp-promo{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:.9rem;gap:.9rem;align-items:center;width:100%;padding:.85rem 1.1rem;border-radius:16px;border:1px solid rgb(99 102 241/.4);background:linear-gradient(120deg,rgb(99 102 241/.16),rgb(99 102 241/.05));transition:transform .15s,box-shadow .15s}.lp-promo:hover{transform:translateY(-2px)}.lp-promo.green{border-color:rgb(16 185 129/.55);background:linear-gradient(120deg,rgb(16 185 129/.22),rgb(99 102 241/.14) 70%);box-shadow:0 18px 44px -22px rgb(16 185 129/.6)}.lp-promo.amber{border-color:rgb(245 158 11/.5);background:linear-gradient(120deg,rgb(245 158 11/.2),rgb(236 72 153/.1) 70%)}.lp-promo-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.45rem;color:var(--brand);background:rgb(255 255 255/.07);border:1px solid rgb(255 255 255/.12)}.lp-promo h3{margin:.1rem 0 .15rem;font-size:1.02rem;color:var(--strong);line-height:1.25}.lp-promo p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.4}.lp-promo.green .proj-kicker{color:#6ee7b7}.lp-promo.amber .proj-kicker{color:#fcd34d}.lp-promo .btn{padding:.45rem .9rem;font-size:.88rem;white-space:nowrap}@media (max-width:560px){.lp-promo{grid-template-columns:auto minmax(0,1fr)}.lp-promo .btn{grid-column:1/-1;text-align:center}}@property --lp-ang{syntax:"<angle>";initial-value:0deg;inherits:false}.lp-promo.hot{padding:1.15rem 1.3rem;border:2px solid transparent;background:linear-gradient(var(--bg,#0b1020),var(--bg,#0b1020)) padding-box,conic-gradient(from var(--lp-ang),#22c55e,#818cf8,#f0abfc,#fbbf24,#22c55e) border-box;animation:lp-spin 4s linear infinite,lp-pulse-glow 2.2s ease-in-out infinite}.lp-promo.hot:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,rgb(255 255 255/.08),transparent 60%);pointer-events:none}.lp-promo.hot h3{font-size:1.2rem}.lp-promo.hot p{font-size:.9rem;color:var(--fg,#e5e7eb)}.lp-promo.hot .lp-promo-ico{width:54px;height:54px;font-size:1.8rem;background:rgb(255 255 255/.12);animation:lp-bounce 2.2s ease-in-out infinite}.lp-promo.hot .proj-kicker{display:inline-block;padding:.1rem .55rem;border-radius:999px;color:#1e1b4b;background:linear-gradient(100deg,#fde68a,#fbbf24);font-weight:800;letter-spacing:.06em;animation:lp-blink 1.6s ease-in-out infinite}.lp-promo.hot .btn{padding:.6rem 1.2rem;font-size:.95rem;font-weight:700;box-shadow:0 0 0 0 rgb(129 140 248/.7);animation:lp-ring 1.8s ease-out infinite}@keyframes lp-spin{to{--lp-ang:360deg}}@keyframes lp-pulse-glow{0%,to{box-shadow:0 0 18px -4px rgb(129 140 248/.55)}50%{box-shadow:0 0 38px 2px rgb(34 197 94/.55)}}@keyframes lp-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px) scale(1.06)}}@keyframes lp-blink{0%,to{opacity:1}50%{opacity:.65}}@keyframes lp-ring{0%{box-shadow:0 0 0 0 rgb(129 140 248/.7)}to{box-shadow:0 0 0 14px rgb(129 140 248/0)}}@media (prefers-reduced-motion:reduce){.lp-promo.hot,.lp-promo.hot .btn,.lp-promo.hot .lp-promo-ico,.lp-promo.hot .proj-kicker{animation:none}}#free-database .lp-cta{justify-content:center;margin-top:2.2rem}.ug{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:2.5rem;gap:2.5rem;padding-top:2rem;padding-bottom:4rem;align-items:start}.ug-toc{position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}.ug-body{max-width:860px}.ug-body h1{margin:0 0 .5rem}.ug-sub{color:var(--muted);font-size:1.05rem;margin:0 0 2rem}.ug-sec{scroll-margin-top:80px;padding:2rem 0;border-top:1px solid var(--line)}.ug-sec h2{display:flex;align-items:center;gap:.7rem;margin:0 0 .6rem;font-size:1.5rem}.ug-num{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--brand);color:#fff;font-size:.95rem;flex:none}.ug-lead{color:var(--muted);font-size:1.05rem;margin:0 0 1.2rem}.ug-steps{list-style:none;counter-reset:ug;margin:0;padding:0;display:flex;flex-direction:column;gap:1.4rem}.ug-steps>li{counter-increment:ug;position:relative;padding-left:2.6rem}.ug-steps>li:before{content:counter(ug);position:absolute;left:0;top:.05rem;width:1.8rem;height:1.8rem;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--strong);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.ug-steps h3{margin:0 0 .25rem;font-size:1.05rem;color:var(--strong)}.ug-steps p{margin:0 0 .6rem}.ug-shot{margin:.8rem 0 0}.ug-shot a{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.25)}.ug-shot img{display:block;width:100%;height:auto}.ug-shot figcaption{margin-top:.4rem;font-size:.85rem;color:var(--muted)}.ug-extra{margin-top:1.6rem;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}.ug-extra h3{margin:0 0 .3rem;font-size:1.05rem}.ug-tip{margin:1.4rem 0 .4rem;padding:.8rem 1rem;border-left:3px solid #22c55e;background:rgba(34,197,94,.08);border-radius:0 8px 8px 0}.ug-open{margin:.6rem 0 0;font-size:.95rem}.lp-feat{display:block;text-decoration:none;color:inherit}.lp-feat-more{display:inline-block;margin-top:.8rem;font-size:.85rem;font-weight:600;color:var(--brand)}.lp-feat:hover .lp-feat-more{text-decoration:underline}.nav-guide{white-space:nowrap}@media (min-width:0){.ug-toc-m{display:none}}@media (max-width:900px){.ug{grid-template-columns:minmax(0,1fr);gap:1rem}.ug-body,.ug-steps>li{min-width:0}.ug-toc{display:none}.ug-toc-m{display:block}}.container.narrow.blog-wide,.container.prose,.lp-hero .lp-hero-split,.lp-hero .lp-wrap.lp-hero-center,.lp-wrap,.site-footer.container,.site-footer.container.home,.site-header nav.container,.site-header.home nav.container,main.container,main.container.narrow{width:82%;max-width:1500px;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.container.prose>:not(.wide){max-width:860px}.article-grid{max-width:none}@media (max-width:1100px){.container.narrow.blog-wide,.container.prose,.lp-hero .lp-hero-split,.lp-hero .lp-wrap.lp-hero-center,.lp-wrap,.site-footer.container,.site-footer.container.home,.site-header nav.container,.site-header.home nav.container,main.container,main.container.narrow{width:100%;padding-left:20px;padding-right:20px}}#free-database .lp-bento{grid-template-columns:repeat(3,1fr)}@media (max-width:960px){#free-database .lp-bento{grid-template-columns:1fr}}.lp-sec h2,.lp-sub{text-wrap:balance}.lp-steps2{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.4rem;gap:1.4rem;margin-top:2.8rem;position:relative}.lp-steps2:before{content:"";position:absolute;left:12%;right:12%;top:3.15rem;height:2px;background:linear-gradient(90deg,transparent,var(--brand),#22c55e,transparent);opacity:.55}.lp-step2{position:relative;padding:1.8rem 1.6rem 1.6rem;border:1px solid var(--line-strong);border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 10%,var(--card)),var(--card) 60%);overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.lp-step2:hover{transform:translateY(-4px);border-color:var(--brand);box-shadow:0 24px 48px -24px color-mix(in srgb,var(--brand) 70%,transparent)}.lp-step2-num{position:absolute;right:1rem;top:-.6rem;font-size:6.5rem;font-weight:900;line-height:1;color:var(--brand);opacity:.09;pointer-events:none}.lp-step2-ico{position:relative;width:3rem;height:3rem;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--brand),#8b5cf6);box-shadow:0 10px 24px -8px color-mix(in srgb,var(--brand) 80%,transparent)}.lp-step2-ico svg{width:22px;height:22px}.lp-step2 h3{margin:1.1rem 0 .4rem;font-size:1.25rem;color:var(--strong)}.lp-step2 p{margin:0 0 1.1rem;color:var(--muted)}.lp-step2-vis{display:flex;flex-wrap:wrap;gap:.4rem}.lp-step2-vis span{padding:.25rem .7rem;border-radius:999px;font-size:.82rem;font-weight:600;color:var(--strong);background:var(--soft);border:1px solid var(--line-strong)}.lp-step2-term{margin:0;padding:.7rem .9rem;font-size:.85rem;line-height:1.6;border-radius:10px;background:#070b14;border:1px solid var(--line-strong);color:#cbd5e1}.lp-step2-term b{color:#4ade80;font-weight:600}.lp-steps2-cta{justify-content:center;margin-top:2.4rem}@media (max-width:960px){.lp-steps2{grid-template-columns:1fr}.lp-steps2:before{display:none}}.lp-db2{display:grid;grid-template-columns:1fr 1fr;grid-gap:3.5rem;gap:3.5rem;align-items:center}.lp-db2 .lp-eyebrow,.lp-db2 h2{text-align:left}.lp-db2 .lp-eyebrow{margin-left:0}.lp-db2 .lp-sub{margin-bottom:1.6rem}.lp-engines{display:flex;flex-wrap:wrap;gap:.55rem}.lp-engines .lp-chip{padding:.4rem .95rem;font-size:.9rem;transition:transform .15s,border-color .15s}.lp-engines .lp-chip:hover{transform:translateY(-2px);border-color:var(--brand)}.lp-engines .lp-chip.more{border-style:dashed;color:var(--muted);font-weight:500}.lp-dbcard{position:relative;padding:1.3rem;border-radius:20px;border:1px solid color-mix(in srgb,var(--brand) 45%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 14%,var(--card)),var(--card) 65%);box-shadow:0 30px 70px -30px color-mix(in srgb,var(--brand) 70%,transparent);display:grid;grid-gap:.85rem;gap:.85rem}.lp-dbcard:after{content:"";position:absolute;inset:-1px;border-radius:20px;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 80%,transparent),transparent 40%,rgb(34 197 94/.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.lp-dbcard-head{display:flex;align-items:center;gap:.8rem}.lp-dbcard-head strong{display:block;color:var(--strong);font-size:1.1rem}.lp-dbcard-head small{color:var(--muted)}.lp-dbcard-ico{width:2.8rem;height:2.8rem;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--brand),#8b5cf6)}.lp-dbcard-ico svg{width:22px;height:22px}.lp-dbcard-live{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .7rem;border-radius:999px;font-size:.8rem;font-weight:700;color:#4ade80;background:rgb(34 197 94/.12);border:1px solid rgb(34 197 94/.4)}.lp-dbcard-live i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgb(34 197 94/.7);animation:lp-live 1.8s infinite}@keyframes lp-live{70%{box-shadow:0 0 0 8px rgb(34 197 94/0)}to{box-shadow:0 0 0 0 rgb(34 197 94/0)}}.lp-dbcard-row{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-radius:12px;background:var(--soft);border:1px solid var(--line);color:var(--fg);font-size:.95rem}.lp-dbcard-row b{color:var(--strong)}.lp-dbcard-row .lp-ico{color:#4ade80;display:inline-flex;width:1.1rem;flex:none}.lp-dbcard-btn{margin-left:auto;padding:.2rem .7rem;border-radius:8px;font-size:.8rem;font-weight:600;background:color-mix(in srgb,var(--brand) 20%,transparent);color:var(--strong)}.lp-dbcard-code{padding:.8rem .9rem;border-radius:12px;background:#070b14;border:1px solid var(--line-strong)}.lp-dbcard-code small{display:block;color:#4ade80;margin-bottom:.3rem;font-size:.78rem}.lp-dbcard-code code{display:block;overflow-x:auto;white-space:nowrap;background:none;border:0;padding:0;color:#e2e8f0;font-size:.85rem}@media (max-width:960px){.lp-db2{grid-template-columns:1fr;gap:2rem}}.lp-ai2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-gap:1.6rem;gap:1.6rem;align-items:stretch;margin-top:2.6rem}.lp-aicaps{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1rem;gap:1rem}.lp-aicap{padding:1.3rem;border-radius:16px;border:1px solid var(--line-strong);background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 9%,var(--card)),var(--card) 65%);transition:transform .18s,border-color .18s}.lp-aicap:hover{transform:translateY(-3px);border-color:var(--brand)}.lp-aicap h3{margin:.8rem 0 .3rem;font-size:1.05rem;color:var(--strong)}.lp-aicap p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}.lp-chat2{height:100%;box-shadow:0 30px 70px -34px color-mix(in srgb,var(--brand) 70%,transparent);border-color:color-mix(in srgb,var(--brand) 45%,var(--line))}.lp-chat2 .lp-bub pre{margin:.6rem 0 0;padding:.6rem .8rem;font-size:.78rem;line-height:1.5;border-radius:8px}.lp-aibadges{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.6rem;margin-top:2rem;color:var(--fg);font-weight:600}.lp-aibadges>span{display:inline-flex;align-items:center;gap:.45rem}.lp-aibadges .lp-ico{color:#22c55e;display:inline-flex;width:1.1rem}@media (max-width:1100px){.lp-ai2{grid-template-columns:1fr}}@media (max-width:640px){.lp-aicaps{grid-template-columns:1fr}}main.container.pg{padding-top:3.2rem;padding-bottom:4.5rem}.pg>h1{text-align:center;margin:0 auto .8rem;font-size:clamp(2rem,4.2vw,2.9rem);font-weight:800;letter-spacing:-.025em;line-height:1.15;color:var(--strong);max-width:none}.pg>h1+.muted-text,.pg>h1+p,.pg>p.muted-text:first-of-type{text-align:center;max-width:44rem;margin:0 auto 2.4rem;color:var(--muted);font-size:1.05rem;line-height:1.6}.container.narrow.pg>:not(h1):not(script),.container.prose.pg>:not(h1):not(script){max-width:920px;margin-left:auto;margin-right:auto}.container.pg.pg-wide>:not(h1):not(script):not(p),.container.pg.pg-wide>p{max-width:none}.container.pg.pg-wide>h1+p{max-width:44rem}.pg.prose h2{margin:2.4rem auto 0;padding-top:1.5rem;border-top:1px solid var(--line);font-size:1.35rem;color:var(--strong)}.pg.prose ol,.pg.prose ul{padding-left:1.3rem}.pg details.card{transition:border-color .15s}.pg details.card:hover,.pg details.card[open]{border-color:var(--brand)}.pg details.card summary{cursor:pointer;padding:.2rem 0}.container.pg>:not(h1):not(script){width:100%;box-sizing:border-box}.container.pg>h1+p,.container.pg>p.muted-text:first-of-type{width:auto}.rb{flex-direction:column;gap:1.2rem}.rb,.rb-bar{display:flex}.rb-bar{align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}.rb-branch{display:inline-flex;gap:.6rem;margin:0;font-weight:600}.rb-branch select{width:auto;min-width:11rem;margin:0}.rb-path{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem;min-width:0;padding-left:1rem;border-left:1px solid var(--line)}.rb-path span{display:inline-flex;align-items:center}.rb-path i{font-style:normal;color:var(--muted);padding:0 .1rem}.rb-path button{border:0;background:none;color:var(--muted);padding:.3rem .6rem;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}.rb-path button:hover{background:var(--soft);color:var(--fg)}.rb-path button.on{color:var(--strong);background:var(--soft)}.rb-explorer{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:stretch}.rb-files,.rb-view{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden;display:flex;flex-direction:column;min-height:220px}.rb-head{display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:var(--soft)}.rb-file-head{text-transform:none;letter-spacing:0;font-size:.9rem}.rb-file-head strong{color:var(--strong)}.rb-file-head small{color:var(--muted);font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rb-list{max-height:420px;overflow:auto;padding:.35rem;display:flex;flex-direction:column;gap:2px}.rb-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.5rem .65rem;border:0;border-radius:8px;background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.rb-item:hover{background:var(--soft)}.rb-item.on{background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--strong)}.rb-item small{color:var(--muted);white-space:nowrap}.rb-note{padding:.8rem .9rem;margin:0}.rb-empty{flex:1 1;display:grid;place-content:center;justify-items:center;grid-gap:.4rem;gap:.4rem;padding:2rem 1rem;text-align:center;color:var(--muted)}.rb-empty span{font-size:2rem;opacity:.6}.rb-empty p{margin:0;line-height:1.6}.rb-code{margin:0;flex:1 1;overflow:auto;max-height:460px;border:0;border-radius:0;font-size:.82rem;line-height:1.55;padding:.6rem 0}.rb-code div{white-space:pre;padding:0 .9rem 0 0}.rb-code div:hover{background:rgb(255 255 255/.04)}.rb-code span{display:inline-block;width:3.4em;margin-right:.8em;text-align:right;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.rb-versions{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}.rb-vhead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1rem;border-bottom:1px solid var(--line)}.rb-vhead h3{margin:0 0 .15rem}.rb-vhead p{margin:0;font-size:.9rem}.rb-table{overflow:auto}.rb-table table{width:100%;border:0;border-radius:0}.rb-table tr.on{background:color-mix(in srgb,var(--brand) 12%,transparent)}.rb-pager{display:flex;align-items:center;justify-content:center;gap:.8rem;padding:.7rem 1rem;border-top:1px solid var(--line)}.rb-trim{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:.8rem 1rem}.rb-trim summary{cursor:pointer;font-weight:600}@media (max-width:800px){.rb-explorer{grid-template-columns:1fr}.rb-path{padding-left:0;border-left:0}}.bsel{position:relative;display:inline-block;min-width:14rem}.bsel-btn{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;padding:.55rem .8rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--fg);font:inherit;font-weight:600;cursor:pointer}.bsel-btn:hover,.bsel-btn[aria-expanded=true]{border-color:var(--brand)}.bsel-btn i{font-style:normal;color:var(--muted)}.bsel-pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:22rem;padding:.4rem;border:1px solid var(--line-strong);border-radius:12px;background:var(--card);box-shadow:0 18px 40px rgba(0,0,0,.45)}.bsel-q{width:100%;margin:0 0 .35rem}.bsel-pop ul{list-style:none;margin:0;padding:0;max-height:15rem;overflow:auto}.bsel-pop li{padding:.45rem .65rem;border-radius:8px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bsel-pop li.hi{background:var(--soft)}.bsel-pop li.on{color:var(--strong);font-weight:700}.bsel-pop li.none{color:var(--muted);cursor:default}.field-label{font-weight:600;color:var(--strong)}.bsel-btn{min-height:2.6rem}.stack>.bsel{display:block;max-width:22rem}.rb-branch{flex-direction:row!important;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;flex:none;border:1px solid var(--line);border-radius:8px;background:none;color:var(--muted);font-size:.95rem;cursor:pointer}.icon-btn:hover{color:var(--strong);border-color:var(--brand);background:var(--soft)}.icon-btn.danger:hover{color:#f87171;border-color:#f87171}.env-key,.env-valrow{display:flex;align-items:center;gap:.5rem;min-width:0}.env-valrow .env-val{flex:1 1;min-width:0}.env-adder{display:flex;flex-direction:column;gap:.6rem}.env-add-row{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(0,3fr) auto;grid-gap:.6rem;gap:.6rem;align-items:center}.env-add-row input{margin:0;width:100%}.env-verify{padding:.8rem 1rem;border:1px solid var(--line-strong);border-radius:12px;background:var(--card);max-width:28rem}.env-verify input{max-width:10rem}@media (max-width:720px){.env-add-row{grid-template-columns:1fr auto}.env-add-row input:nth-child(2){grid-column:1/-1;grid-row:2}}.set-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}.set-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:1rem 2rem;gap:1rem 2rem;align-items:center;padding:1rem 1.2rem;margin:0}.set-row+.set-row{border-top:1px solid var(--line)}.set-info strong{display:block;color:var(--strong);margin-bottom:.2rem}.set-info small{display:block;color:var(--muted);font-size:.88rem;line-height:1.5;max-width:44rem}.set-ctl{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.set-ctl input,.set-ctl select{margin:0}.set-ctl select{min-width:9rem}.set-unit{display:inline-flex;align-items:center;gap:.4rem}.set-unit input{width:6.5rem}.set-unit i{font-style:normal;color:var(--muted)}@media (max-width:720px){.set-row{grid-template-columns:1fr}.set-ctl{justify-content:flex-start}}.mon{display:flex;flex-direction:column;gap:1.2rem}.mon-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.mon-health{display:flex;flex-direction:column;gap:.15rem;padding:.7rem 1rem;border-radius:12px;border:1px solid var(--line);background:var(--soft);min-width:0;flex:1 1}.mon-health b{color:var(--strong)}.mon-health span{color:var(--muted);font-size:.88rem}.mon-health.ok{border-color:rgb(34 197 94/.5);background:rgb(34 197 94/.1)}.mon-health.ok b{color:#4ade80}.mon-health.warn{border-color:rgb(245 158 11/.5);background:rgb(245 158 11/.1)}.mon-health.warn b{color:#fbbf24}.mon-health.err{border-color:rgb(239 68 68/.55);background:rgb(239 68 68/.1)}.mon-health.err b{color:#f87171}.mon-range{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.mon-range button{border:0;background:none;color:var(--muted);padding:.4rem .9rem;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}.mon-range button.on{background:var(--brand);color:#fff}.mon-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:.8rem;gap:.8rem}.mon-kpi{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.mon-kpi>span{color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.mon-kpi>strong{color:var(--strong);font-size:1.35rem;line-height:1.2}.mon-kpi small{color:var(--muted);font-size:.8rem}.mon-kpi.warn{border-color:rgb(245 158 11/.5)}.mon-kpi.warn>strong{color:#fbbf24}.mon-kpi.err{border-color:rgb(239 68 68/.55)}.mon-kpi.err>strong,.mon-trend.bad{color:#f87171}.mon-trend.good{color:#4ade80}.mon-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1.2rem;gap:1.2rem}.mon-panel{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:.9rem 1rem 1rem;min-width:0;overflow:hidden}.mon-panel>header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.6rem}.mon-panel h3{margin:0;font-size:1rem}.mon-legend{display:inline-flex;gap:.9rem;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}.mon-legend span{display:inline-flex;align-items:center;gap:.35rem}.mon-legend i{width:.7rem;height:.7rem;border-radius:3px;display:inline-block}.mon-svg{display:block;width:100%;height:auto}.mon-ax{fill:var(--muted);font-size:10px}.mon-empty{display:grid;place-items:center;min-height:120px;color:var(--muted);font-size:.9rem;text-align:center}.mon-table{width:100%;border:0;font-size:.88rem}.mon-table td code{word-break:break-all}.mon-foot{margin:0}@media (max-width:960px){.mon-grid2{grid-template-columns:1fr}}.extras-pick{display:flex;flex-direction:column;gap:1rem;max-width:46rem}.extras-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.extras-grid select{width:100%}.extras-sum{display:flex;flex-direction:column;margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.extras-sum>div{display:grid;grid-template-columns:11rem minmax(0,1fr);grid-gap:.8rem;gap:.8rem;padding:.7rem 1rem;align-items:baseline}.extras-sum>div+div{border-top:1px solid var(--line)}.extras-sum dt{color:var(--muted);font-weight:600;margin:0}.extras-sum dd{margin:0}@media (max-width:640px){.extras-grid,.extras-sum>div{grid-template-columns:1fr}.extras-sum>div{gap:.2rem}}.ide.ide-full{position:fixed;inset:0;z-index:200;height:100vh;min-height:0;border-radius:0;border:0}.ide:-webkit-full-screen{height:100vh;min-height:0;border-radius:0;border:0;width:100vw}.ide:fullscreen{height:100vh;min-height:0;border-radius:0;border:0;width:100vw}.ide-ai{padding:.7rem .8rem;background:var(--ide-side);border-bottom:1px solid var(--ide-line);display:flex;flex-direction:column;gap:.55rem;max-height:46%;overflow:auto}.ide-ai-row{display:flex;gap:.6rem;align-items:stretch}.ide-ai textarea{flex:1 1;min-height:4.2rem;resize:vertical;background:var(--ide-bg);color:var(--ide-fg);border:1px solid var(--ide-line);border-radius:6px;padding:.5rem .6rem;font:inherit}.ide-ai-actions{display:flex;flex-direction:column;gap:.4rem;justify-content:flex-start}.ide-ai-result .ide-ai-actions{flex-direction:row;align-items:center;flex-wrap:wrap}.ide-ai-hint{margin:0;color:var(--ide-dim);font-size:.85em;line-height:1.5}.ide-ai-result p{margin:0 0 .4rem;line-height:1.5}.ide-ai-result ul{margin:.2rem 0 .5rem;padding-left:1.2rem}.ide-ai-tag{margin-left:.4rem;padding:0 .45rem;border-radius:999px;font-size:.85em;background:rgb(34 197 94/.18);color:#4ade80}.ide-ai-tag.delete{background:rgb(239 68 68/.18);color:#f87171}.ide-ai-notes,.ide-ai-skip{color:var(--ide-dim)}@media (max-width:720px){.ide-ai-row{flex-direction:column}.ide-ai-actions{flex-direction:row}}.blog2{padding-top:3rem;padding-bottom:4rem}.blog2-head{text-align:center;max-width:46rem;margin:0 auto 2rem}.blog2-eyebrow{display:inline-block;margin:0 0 .8rem;padding:.3rem .8rem;border-radius:999px;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}.blog2-head h1{margin:0 0 .7rem;font-size:clamp(2.1rem,4.4vw,3.1rem);font-weight:800;letter-spacing:-.025em;line-height:1.12;color:var(--strong)}.blog2-head p:last-child{margin:0;color:var(--muted);font-size:1.1rem;line-height:1.6}.blog2-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 0 2.2rem}.blog2-tags a{padding:.4rem .95rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-weight:600;font-size:.9rem;text-decoration:none;transition:border-color .15s,color .15s}.blog2-tags a:hover{color:var(--fg);border-color:var(--brand)}.blog2-tags a.on{background:var(--brand);border-color:var(--brand);color:#fff}.blog2 a{text-decoration:none}.blog2-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--soft)}.blog2-ph{display:grid;place-items:center;background:linear-gradient(135deg,#312e81,#6d28d9 55%,#0ea5e9)}.blog2-ph span{font-size:3.4rem;font-weight:800;color:rgb(255 255 255/.85)}.blog2-tag{display:inline-block;margin-bottom:.5rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}.blog2-meta{margin:.8rem 0 0;color:var(--muted);font-size:.85rem}.blog2-feature{display:grid;grid-template-columns:30% minmax(0,1fr);grid-gap:0;gap:0;margin-bottom:2rem;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);color:inherit;transition:border-color .18s,transform .18s}.blog2-feature:hover{border-color:var(--brand);transform:translateY(-3px)}.blog2-feature .blog2-cover{height:100%;aspect-ratio:auto;min-height:220px}.blog2-ph span{font-size:2.6rem}.blog2-feature-body{padding:1.6rem 1.8rem;display:flex;flex-direction:column;justify-content:center;gap:.2rem}.blog2-badge{align-self:flex-start;padding:.2rem .7rem;margin-bottom:.6rem;border-radius:999px;background:rgb(34 197 94/.15);color:#4ade80;font-size:.78rem;font-weight:700}.blog2-feature h2{margin:.1rem 0 .5rem;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.2;letter-spacing:-.02em;color:var(--strong)}.blog2-feature p{margin:0;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.blog2-feature .blog2-meta,.blog2-more{margin-top:1rem}.blog2-more{font-weight:700;color:var(--brand)}.blog2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.4rem;gap:1.4rem}.blog2-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);color:inherit;transition:border-color .18s,transform .18s,box-shadow .18s}.blog2-card:hover{border-color:var(--brand);transform:translateY(-4px);box-shadow:0 22px 44px -26px color-mix(in srgb,var(--brand) 70%,transparent)}.blog2-card-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;flex:1 1}.blog2-card h3{margin:0 0 .5rem;font-size:1.2rem;line-height:1.3;letter-spacing:-.01em;color:var(--strong)}.blog2-card h3,.blog2-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog2-card p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.55}.blog2-card .blog2-meta{margin-top:auto;padding-top:.9rem}.blog2-pager{display:flex;align-items:center;justify-content:space-between;margin-top:2.2rem}.blog2-pager a{padding:.5rem 1rem;border:1px solid var(--line-strong);border-radius:10px;color:var(--fg);font-weight:600}.blog2-pager a:hover{border-color:var(--brand)}.blog2-none{text-align:center;padding:3rem 0}.blog2-cta{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-top:3.5rem;padding:2rem 2.2rem;border-radius:20px;border:1px solid color-mix(in srgb,var(--brand) 45%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 22%,var(--card)),var(--card) 70%)}.blog2-cta h2{margin:0 0 .3rem;font-size:1.5rem;color:var(--strong)}.blog2-cta p{margin:0;color:var(--muted)}@media (max-width:1000px){.blog2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.blog2-feature{grid-template-columns:1fr}.blog2-feature .blog2-cover{min-height:0;aspect-ratio:16/9;height:auto}.blog2-grid{grid-template-columns:1fr}.blog2-feature-body{padding:1.3rem}.blog2-cta{padding:1.4rem}}.article-page{width:82%;max-width:1500px;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.article-page .article-grid{max-width:none}@media (max-width:1100px){.article-page{width:100%;padding-left:20px;padding-right:20px}}.blog2-layout{display:block}.blog2-layout.has-side{display:grid;grid-template-columns:minmax(0,1fr) var(--side,30%);grid-gap:2rem;gap:2rem;align-items:start}.blog2-mainCol{min-width:0}.blog2-layout.has-side .blog2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog2-side{position:-webkit-sticky;position:sticky;top:76px;display:flex;flex-direction:column;gap:1rem;min-width:0}.blog2-side .lp-promo{grid-template-columns:1fr;justify-items:start;gap:.6rem;padding:1rem 1.1rem}.blog2-side .lp-promo .btn{width:100%;text-align:center;justify-content:center}.blog2-widget{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:1rem 1.1rem}.blog2-widget h3{margin:0 0 .7rem;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.blog2-widget ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}.blog2-widget li a{display:block;color:var(--strong);font-weight:600;line-height:1.35}.blog2-widget li a:hover{color:var(--brand)}.blog2-widget small{display:block;margin-top:.15rem;color:var(--muted)}.blog2-widget-tags{display:flex;flex-wrap:wrap;gap:.4rem}.blog2-widget-tags a{padding:.25rem .7rem;border:1px solid var(--line-strong);border-radius:999px;font-size:.85rem;color:var(--muted)}.blog2-widget-tags a.on,.blog2-widget-tags a:hover{border-color:var(--brand);color:var(--fg)}@media (max-width:1100px){.blog2-layout.has-side{grid-template-columns:1fr}.blog2-side{position:static}.blog2-layout.has-side .blog2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.blog2-layout.has-side .blog2-grid{grid-template-columns:1fr}}.md-block>span{font-weight:600}.md-field .w-md-editor{background:var(--card,var(--soft));border:1px solid var(--border,rgba(127,127,127,.35));border-radius:10px;box-shadow:none}.md-field .w-md-editor-toolbar{border-radius:10px 10px 0 0;padding:4px 6px}.md-field .w-md-editor textarea.w-md-editor-text-input{width:100%;min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none}.md-field .w-md-editor .w-md-editor-text-input,.md-field .w-md-editor .w-md-editor-text-pre>code{font-size:14px!important;line-height:1.6!important}.md-field .w-md-editor-fullscreen{border-radius:0}.md-field .wmde-markdown{background:transparent;font-size:14px}.md-loading{padding:24px;text-align:center}.md-field .w-md-editor-fullscreen{position:fixed!important;inset:0!important;height:100vh!important;z-index:2147483000!important}main:has(.w-md-editor-fullscreen){animation:none;transform:none}.icon-btn.app-ctl{width:44px;min-width:44px;height:44px;border-radius:10px}.tc{position:relative;width:100%}.tc-bar{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.tc-bar,.tc-legend{flex-wrap:wrap;align-items:center}.tc-legend{display:inline-flex;gap:.35rem .5rem;font-size:.82rem}.tc-legend button{display:inline-flex;align-items:center;gap:.35rem;padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--fg);cursor:pointer;font:inherit}.tc-legend button:hover{border-color:var(--brand)}.tc-legend button.off{opacity:.45;text-decoration:line-through}.tc-legend i,.tc-tip i{display:inline-block;width:10px;height:10px;border-radius:3px}.tc-lim{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted)}.tc-lim i{background:repeating-linear-gradient(90deg,#ef4444 0 4px,transparent 4px 7px);height:2px;width:16px;border-radius:0}.tc-zoom{display:inline-flex;gap:4px}.tc-zoom button{height:26px;min-width:28px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:var(--soft);color:var(--fg);cursor:pointer;font:inherit;font-size:.82rem}.tc-zoom button:hover:not(:disabled){border-color:var(--brand)}.tc-zoom button:disabled{opacity:.4;cursor:default}.tc-svg{display:block;touch-action:pan-y;cursor:crosshair;background:var(--soft);border-radius:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tc-tx{fill:var(--muted);font-size:11px}.tc-tx.d{fill:var(--fg);opacity:.75;font-weight:600}.tc-ttl{fill:var(--muted);font-size:11px;letter-spacing:.02em}.tc-grid{stroke:var(--line);stroke-dasharray:3 4;opacity:.7}.tc-grid.v{opacity:.35}.tc-axis{stroke:var(--muted);opacity:.6}.tc-cross{stroke:var(--fg);stroke-dasharray:2 3;opacity:.55}.tc-sel{fill:var(--brand);opacity:.18;stroke:var(--brand)}.tc-tip{position:absolute;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:2px;min-width:150px;max-width:280px;padding:8px 10px;border-radius:8px;background:var(--fg);color:var(--bg);font-size:.8rem;line-height:1.35;box-shadow:0 6px 20px rgba(0,0,0,.35)}.tc-tip b{font-size:.8rem;margin-bottom:2px}.tc-tip span{display:flex;align-items:center;gap:6px}.tc-tip .tot{border-top:1px solid rgba(127,127,127,.4);margin-top:3px;padding-top:3px}.tc-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;margin-top:.3rem;font-size:.76rem;color:var(--muted)}.tc-empty{padding:28px;text-align:center;color:var(--muted);background:var(--soft);border-radius:8px}@media (max-width:640px){.tc-hint{display:none}}.lp-promo.green .lp-promo-ico{color:#34d399}.lp-promo.amber .lp-promo-ico{color:#fbbf24}.lp-promo.hot .lp-promo-ico{color:#fff}