:root{--sx-kw:#c792ea;--sx-fn:#82aaff;--sx-str:#c3e88d;--sx-cm:#5a6e72;--sx-nb:#f78c6c;--sx-tag:#f07178;--sx-attr:#ffcb6b}[data-theme=light]{--sx-kw:#7c3aed;--sx-fn:#2563eb;--sx-str:#16a34a;--sx-cm:#6b7280;--sx-nb:#ea580c;--sx-tag:#dc2626;--sx-attr:#b45309}.svc-hero-eyebrow,.svc-hero-title,.svc-hero-sub,.hero-ctas{opacity:1}.hw-branch-badge{font-family:var(--font-m);font-size:10px;color:var(--brand);letter-spacing:.08em;padding:3px 8px;border:1px solid var(--brand-border);border-radius:3px;background:var(--brand-glow)}.hw-pipeline-body{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.hw-commit-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg-e);border:1px solid var(--border);border-radius:6px}.hw-commit-branch{font-family:var(--font-m);font-size:10px;color:var(--brand);flex-shrink:0}.hw-commit-hash{font-family:var(--font-m);font-size:10px;color:var(--t3);flex-shrink:0}.hw-commit-msg{font-family:var(--font-m);font-size:11px;color:var(--t1);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-steps{display:flex;flex-direction:column;gap:5px}.hw-step{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:5px;background:var(--bg-e);border:1px solid var(--border-s);transition:border-color .3s,background .3s}.hw-step.running{border-color:#20d0db59;background:#20d0db08}.hw-step.done{border-color:#22c55e40;background:#22c55e05}.hw-step-icon{width:14px;flex-shrink:0;font-family:var(--font-m);font-size:11px;text-align:center;color:var(--t4)}.hw-step.running .hw-step-icon{color:var(--brand)}.hw-step.done .hw-step-icon{color:#22c55e}.hw-step-name{font-family:var(--font-m);font-size:11px;color:var(--t2);flex:1}.hw-step.running .hw-step-name,.hw-step.done .hw-step-name{color:var(--t1)}.hw-step-time{font-family:var(--font-m);font-size:10px;color:var(--t4);flex-shrink:0;min-width:28px;text-align:right}.hw-step.done .hw-step-time{color:#22c55e}.hw-deploy-bar{height:2px;border-radius:1px;background:var(--border);margin:0 11px 2px;overflow:hidden;display:none}.hw-deploy-bar.show{display:block}.hw-deploy-fill{height:100%;background:var(--brand);width:0%;transition:width .12s linear}.hw-deploy-out{font-family:var(--font-m);font-size:10px;color:var(--t3);padding:6px 11px 4px;opacity:0;transition:opacity .4s}.hw-deploy-out.show{opacity:1;color:#22c55e}.topo-section{border-top:1px solid var(--border-s)}.topo-header{max-width:660px;margin-bottom:52px}.topo-canvas-wrap{background:var(--bg-r);border:1px solid var(--border);border-radius:16px;overflow:hidden;position:relative}.topo-chrome{background:var(--bg);border-bottom:1px solid var(--border);padding:12px 18px;display:flex;align-items:center;gap:8px}.topo-title-bar{font-family:var(--font-m);font-size:11px;color:var(--t3);margin-left:8px;flex:1}.topo-meta{font-family:var(--font-m);font-size:10px;color:var(--t3);letter-spacing:.1em;text-transform:uppercase}.topo-meta .b{color:var(--brand)}.stack-body{padding:32px 30px 36px;background:var(--bg)}.stacks{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:28px}.stk{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 8px 12px;background:var(--bg-r);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:border-color .2s,background .2s,transform .15s;color:var(--t2)}.stk:hover{border-color:var(--t3);color:var(--t1);transform:translateY(-1px)}.stk.active{border-color:var(--brand);background:#20d0db0d;color:var(--brand)}.stk-ico{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:inherit}.stk-ico svg{width:28px;height:28px;color:currentColor}.stk-name{font-family:var(--font-d);font-size:12px;font-weight:600;letter-spacing:-.01em;color:inherit}.panel{background:var(--bg-r);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.panel-head{padding:12px 18px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--border);background:var(--bg)}.ph-file{font-family:var(--font-m);font-size:11px;color:var(--t2);letter-spacing:.02em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ph-file .x{color:var(--t4);margin:0 8px}.ph-file .b{color:var(--brand)}.ph-copy{font-family:var(--font-m);font-size:10px;color:var(--t3);background:transparent;border:1px solid var(--border);border-radius:3px;padding:5px 10px;letter-spacing:.06em;transition:color .15s,border-color .15s,background .15s;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.ph-copy:hover{color:var(--brand);border-color:var(--brand-border);background:var(--brand-glow)}.ph-copy.done{color:#22c55e;border-color:#22c55e66}.code-zone{padding:18px 0;font-family:var(--font-m);font-size:13.5px;line-height:1.65;min-height:148px;position:relative;overflow:hidden}.code-line{display:flex;align-items:flex-start;padding:0 18px;white-space:pre}.code-ln{flex-shrink:0;width:30px;color:var(--t4);font-family:var(--font-m);font-size:11.5px;user-select:none;text-align:right;padding-right:14px;padding-top:2px}.code-text{color:var(--t1);flex:1;min-width:0;white-space:pre-wrap;word-break:normal}.kw{color:var(--sx-kw)}.fn{color:var(--sx-fn)}.str{color:var(--sx-str)}.cm{color:var(--sx-cm);font-style:italic}.nb{color:var(--sx-nb)}.tg{color:var(--sx-tag)}.at{color:var(--sx-attr)}.code-cur{display:inline-block;width:7px;height:13px;background:var(--brand);vertical-align:middle;animation:blink 1s step-end infinite;margin-left:1px}.code-cur.off{display:none}.prose-zone{padding:24px 28px 22px;border-top:1px dashed var(--border);background:#20d0db04}.pz-lead{display:flex;align-items:center;gap:12px;font-family:var(--font-m);font-size:10px;font-weight:600;color:var(--t3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}.pz-lead .b{color:var(--brand)}.pz-lead .bar{flex:1;height:1px;background:var(--border)}.pz-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 28px;margin-bottom:18px}.pz-item{display:flex;align-items:flex-start;gap:10px;font-family:var(--font-b);font-size:14px;color:var(--t1);line-height:1.5}.pz-item:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brand);flex-shrink:0;margin-top:9px}.pz-foot{padding-top:14px;border-top:1px dashed var(--border);display:flex;align-items:baseline;gap:14px}.pz-foot-tag{font-family:var(--font-m);font-size:10px;color:var(--t3);letter-spacing:.14em;text-transform:uppercase;flex-shrink:0}.pz-foot-line{font-family:var(--font-d);font-size:15px;font-weight:500;color:var(--t1);letter-spacing:-.01em;font-style:italic}.pz-foot-line .b{color:var(--brand);font-style:normal}.dev-cta .cta-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:stretch}.cta-left{padding:60px 0}.cta-title{font-family:var(--font-d);font-size:clamp(30px,3.8vw,48px);font-weight:700;letter-spacing:-.03em;color:var(--t1);line-height:1.05;margin-bottom:20px}.cta-title em{font-style:normal;color:var(--brand)}.cta-sub{font-size:17px;color:var(--t2);line-height:1.7;margin-bottom:12px}.cta-note{font-family:var(--font-m);font-size:11px;color:var(--t3);letter-spacing:.06em;margin-bottom:32px}.cta-term{border:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;align-self:stretch;border-radius:var(--r-md);overflow:hidden}.cta-term-head{padding:10px 14px;border-bottom:1px solid var(--border);font-family:var(--font-m);font-size:10px;color:var(--t3);display:flex;justify-content:space-between;align-items:center;letter-spacing:.1em;text-transform:uppercase;background:var(--bg-r)}.cta-term-head .ct-open{color:#22c55e}.cta-term-body{padding:22px 20px;font-family:var(--font-m);font-size:12px;flex:1;display:flex;flex-direction:column;gap:0;line-height:1.9}.ct-blank{height:8px}.ct-cmd{color:var(--brand)}.ct-ok{color:#22c55e}.ct-active{color:var(--t1);font-weight:500}@media (max-width:1024px){.dev-cta .cta-inner{grid-template-columns:1fr;gap:48px}.cta-left{padding:48px 0 0}}@media (max-width:900px){.stack-body{padding:22px 18px 26px}.stacks{grid-template-columns:repeat(4,1fr);gap:8px}.pz-list{grid-template-columns:1fr;gap:8px}.code-zone{font-size:12.5px;min-height:130px}}@media (max-width:640px){.stacks{grid-template-columns:repeat(4,1fr)}.stk-name{font-size:11px}}@media (max-width:768px){.dev-cta .cta-term{display:none}.dev-cta .cta-left{padding-top:0}}
