.en-tag{letter-spacing:.05em;vertical-align:.12em;opacity:.72;border:1px solid;border-radius:5px;margin-left:.45em;padding:1px 5px;font-size:.68em;font-weight:800;line-height:1.3;display:inline-block}.approach h2,.section-title{letter-spacing:-.015em;max-width:20ch;font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:800;line-height:1.1}.page-band{padding:44px 0 52px}.page-band h1{letter-spacing:-.015em;max-width:24ch;margin-top:16px;font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.08}.page-band .meta{color:var(--on-dark-muted);margin:14px 0 0;font-size:.92rem}.page-band .byline a{color:var(--on-dark);text-decoration:underline;text-decoration-color:var(--on-dark-muted);text-underline-offset:.18em}.page-band .byline a:hover{text-decoration-color:currentColor}.privacy{color:var(--muted);max-width:34em;margin:0;font-size:.88rem}.pc-hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:32px 56px;display:grid}.pc-toc{border-bottom:1px solid var(--line);background:#fff}.pc-toc .wrap{flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:14px;padding-bottom:14px;display:flex}.pc-toc-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.pc-toc ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pc-toc a{background:var(--soft);min-height:44px;color:var(--ink);border-radius:999px;align-items:center;padding:0 16px;font-size:.95rem;font-weight:700;display:inline-flex}.pc-toc a:hover{background:var(--soft-2);color:var(--ink);text-decoration:none}.pc-section{padding:80px 0;overflow-x:clip}.pc-section .section-title{max-width:26ch}.pc-gray{background:var(--gray)}.pc-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.8rem;font-weight:800}.tcode{background:var(--soft);color:var(--ink);font:600 .9rem/1.2 var(--font-mono);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.tcode code{font:inherit}.tcode .tag{font:800 .72rem/1 var(--font);letter-spacing:.05em;text-transform:uppercase;color:#4a5668}@media (width<=1000px){.pc-hero-grid,.pc-overview,.pc-cards{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.pc-section{padding:56px 0}}.uk-topics{flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none;display:flex}.uk-topics li{color:#fff;border:1px solid #dce4ff59;border-radius:999px;padding:6px 12px;font-size:.9rem;font-weight:700}.ai-pill{letter-spacing:.04em;text-transform:uppercase;background:var(--soft);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;font-size:.74rem;font-weight:800;display:inline-flex}.ai-pill[data-kind=genai]{color:#3d2a8c;background:#eee8ff}.ai-pill[data-kind=agent]{background:var(--ink);color:#fff}.ai-pill[data-kind=ml]{background:var(--soft);color:var(--ink)}.ai-pill[data-kind=embedded]{color:#1c5a36;background:#e3f4ea}.ai-pill[data-kind=side]{color:#6b4e08;background:#fff1c7}@media (width<=600px){.header-inner{gap:12px}.site-header.search-open .logo{display:none}.site-header.search-open .search-close{margin-left:0}.search-list a{flex-direction:column;gap:0}.search-field{padding-right:12px}.ai-tip:before{right:50px}.page-band{padding:32px 0 40px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;transition-delay:0s!important}}[data-win=dev]{--so-c:var(--so-dev);--so-ink:var(--so-dev-ink)}[data-win=qas]{--so-c:var(--so-qas);--so-ink:var(--so-qas-ink)}[data-win=prd]{--so-c:var(--so-prd);--so-ink:var(--so-prd-ink)}.sg{border:1px solid var(--line);border-radius:var(--r);background:#fff;max-width:1040px;overflow:hidden;box-shadow:0 18px 40px -28px #0b223973}.sg-slides{margin:0;padding:0;list-style:none}.sg-slide+.sg-slide{border-top:1px solid var(--line)}.sg-slide[hidden]{display:none}.sg-stage{margin:12px 14px 0;position:relative}.sg-shot{background:#eef1f5;border:1px solid #e3e8ee;border-radius:10px;line-height:0;position:relative}.sg-shot img{border-radius:9px;width:100%;height:auto;display:block}.sg-marks{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.sg-mark circle{fill:var(--gold-light);stroke:#fff;stroke-width:3px;filter:drop-shadow(0 4px 6px #0b223959)}.sg-mark text{fill:var(--ink);font:800 14px var(--font)}.sg-zoom{border:1px solid var(--line);min-height:36px;color:var(--ink);font:700 .875rem var(--font);cursor:pointer;background:#fffffff2;border-radius:8px;align-items:center;gap:6px;padding:0 12px;display:inline-flex;position:absolute;top:10px;right:10px}.sg-zoom:hover{background:var(--soft)}.sg-zoom[hidden]{display:none}.sg-zoom svg{width:16px;height:16px}.sg-caption{flex-direction:column;gap:8px;padding:18px 20px 16px;display:flex}.sg-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 20px;display:grid}.sg-title{flex-wrap:wrap;align-items:center;gap:8px 14px;min-width:0;display:flex}.sg-count{letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin:0;font-size:.8rem;font-weight:800}.sg-title .tcode{padding:3px 8px;font-size:.85rem}.sg-title h3{font-size:1.3rem;font-weight:800;line-height:1.25}.sg-nav,.sg-dialog-nav{flex:none;gap:8px;display:flex}.sg-nav button,.sg-dialog-nav button,.sg-close{border:1.5px solid var(--blue);width:44px;height:44px;color:var(--blue);cursor:pointer;background:#fff;border-radius:50%;place-items:center;padding:0;display:grid}.sg-nav button:disabled,.sg-dialog-nav button:disabled{opacity:.35;cursor:default}.sg-nav svg,.sg-dialog-nav svg,.sg-close svg{width:20px;height:20px}.sg-body{flex-direction:column;gap:8px;display:flex}.sg-text{max-width:72ch;margin:0;font-size:1rem;line-height:1.55}.sg-legend{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sg-legend li{background:var(--gray);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:.875rem;font-weight:600;line-height:1.3;display:inline-flex}.sg-dot{background:var(--gold-light);width:22px;height:22px;color:var(--ink);text-align:center;border-radius:50%;flex:none;font-size:.75rem;font-weight:800;line-height:22px}.sg-strip{align-items:center;gap:10px;padding:12px 14px 0;display:flex}.sg-strip[hidden]{display:none}.sg-strip>button{border:1.5px solid var(--blue);width:40px;height:40px;color:var(--blue);cursor:pointer;background:#fff;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.sg-strip>.sg-next{background:var(--blue);color:#fff}.sg-strip>button:disabled{opacity:.35;cursor:default}.sg-strip>button svg{width:18px;height:18px}.sg-strip-view{flex:auto;min-width:0;overflow:hidden}.sg-strip-track{transition:transform .4s;display:flex}.sg-mini{flex:0 0 calc(100% / var(--sg-per,8));box-sizing:border-box;cursor:pointer;opacity:.75;background:0 0;border:0;padding:0 4px}.sg-mini[aria-current=step],.sg-mini:hover{opacity:1}.sg-mini-img{aspect-ratio:16/10;background:#fff;border-radius:6px;display:block;position:relative;overflow:hidden}.sg-mini-img:after{content:"";border:1px solid var(--line);border-radius:6px;position:absolute;inset:0}.sg-mini[aria-current=step] .sg-mini-img:after{border:3px solid var(--blue)}.sg-mini-img img{object-fit:cover;object-position:left top;width:100%;height:100%;display:block}.sg-mini-n{box-sizing:border-box;background:var(--ink);color:#fff;text-align:center;border-radius:5px;min-width:20px;height:20px;padding:0 3px;font-size:.7rem;font-weight:800;line-height:20px;position:absolute;bottom:4px;left:4px}.sg-mini[aria-current=step] .sg-mini-n{background:var(--blue)}.sg-caps{display:grid}.sg-caps>.sg-caption{grid-area:1/1}.sg-caps>.sg-caption.is-off{visibility:hidden}@media (prefers-reduced-motion:reduce){.sg-strip-track{transition:none}}.sg-dialog{box-sizing:border-box;background:var(--night-a);width:min(1320px,100vw - 24px);max-width:none;max-height:calc(100vh - 24px);color:var(--on-dark);border:0;border-radius:14px;padding:18px 22px}.sg-dialog::backdrop{background:#061740d9}.sg-dialog-head,.sg-dialog-foot{justify-content:space-between;align-items:flex-start;gap:16px 20px;display:flex}.sg-dialog-head{align-items:center;margin-bottom:14px}.sg-dialog .sg-title h3{color:#fff}.sg-dialog .sg-count{color:var(--gold-light)}.sg-dialog .sg-title .tcode{color:#fff;background:#ffffff1f}.sg-dialog-shot{text-align:center;line-height:0}.sg-dialog-shot .sg-shot{border:0;max-width:100%;display:inline-block}.sg-dialog-shot img{width:auto;max-width:100%;max-height:calc(100vh - 250px)}.sg-dialog-shot .sg-mark circle{r:15px}.sg-dialog-shot .sg-mark text{font-size:16px}.sg-dialog-foot{margin-top:14px}.sg-dialog-body{flex-direction:column;gap:8px;min-width:0;display:flex}.sg-dialog .sg-legend li{color:var(--on-dark);background:#ffffff14}.sg-dialog-nav button,.sg-close{color:#fff;background:#ffffff14;border-color:#dce4ff59}.sg-dialog :focus-visible{outline-color:#fff}@media (width<=640px){.sg-stage{margin:10px 10px 0}.sg-caption{padding:16px 14px 14px}.sg-mark{transform:scale(.8)}.sg-zoom{padding:0 10px}.sg-title h3{font-size:1.15rem}.sg-dialog{padding:14px}.sg-dialog-foot{flex-direction:column}}.tp-stack{flex-direction:column;gap:32px;display:flex}.tp-intro{flex-direction:column;gap:14px;max-width:760px;display:flex}.tp-intro p,.tp-intro .pc-label{margin:0}.tp-table-box{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow-x:auto}.tp-table{border-collapse:collapse;width:100%;min-width:520px;font-size:.95rem}.tp-table th,.tp-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eef1f4;padding:14px 18px}.tp-table thead th{border-bottom-color:var(--line);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.tp-table tbody th{color:var(--ink);font-weight:700}.tp-table tbody tr:nth-child(2n){background:#fafbfc}.tp-table tbody tr:last-child>*{border-bottom:0}.tp-code{background:var(--soft);color:var(--ink);font:600 .88rem/1.3 var(--font-mono);white-space:nowrap;border-radius:6px;padding:3px 8px;display:inline-block}.cqc-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px 40px}.cqc-sub{max-width:34em;color:var(--on-dark);margin:14px 0 0;font-size:clamp(1.1rem,1.6vw,1.3rem);font-weight:600;line-height:1.45}.cqc-build{background:#ffffff0f;border:1px solid #dce4ff47;border-radius:18px;flex-direction:column;justify-self:end;gap:14px;width:100%;max-width:540px;margin:0;padding:20px;display:flex}.cqc-build-label{letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-muted);margin:0;font-size:.8rem;font-weight:800}.cqc-build-box{background:#fff;border-radius:10px;overflow:hidden}.cqc-build table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;color:var(--ink);font-size:clamp(.625rem,.95vw,.8125rem)}.cqc-build th{text-align:right;white-space:nowrap;background:#eef2f8;padding:9px;font-weight:800}.cqc-build td{text-align:right;white-space:nowrap;border-top:1px solid #e3e8ef;padding:9px}.cqc-build th:first-child,.cqc-build td:first-child{text-align:left}.cqc-build td:first-child{font-family:var(--font-mono);font-size:.95em}.cqc-build td:last-child{color:var(--blue);font-weight:800}.cqc-dyn{background:var(--gold-light);color:var(--ink);border-radius:6px;padding:3px 7px}.cqc-build figcaption{color:var(--on-dark);font-size:.88rem;line-height:1.5}.cqc-build figcaption strong{color:var(--gold-light)}.cqc-needs{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.cqc-need{border:1px solid var(--line);border-radius:var(--r);background:#fff;flex-direction:column;gap:10px;min-width:0;padding:24px;display:flex}.cqc-need-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.cqc-need-code{background:var(--soft);color:var(--ink);font:700 .92rem/1.3 var(--font-mono);word-break:break-word;border-radius:8px;align-self:flex-start;padding:4px 10px}.cqc-need h3{color:var(--ink);margin:0;font-size:1.15rem;font-weight:800;line-height:1.3}.cqc-need p{margin:0;font-size:1rem;line-height:1.55}.tp-intro .cqc-tip{color:var(--ink);background:#fdf7e8;border-radius:12px;margin:0;padding:14px 16px}.cqc-seq{font-family:var(--font-mono);color:var(--muted)}.cqc-name{white-space:nowrap}@media (width<=1100px){.cqc-build th,.cqc-build td{padding:7px 6px}}@media (width<=899px){.cqc-hv{display:none}}@media (width<=680px){.cqc-hero-grid{grid-template-columns:minmax(0,1fr)}.cqc-build{justify-self:start}.cqc-build table{font-size:.75rem}}