.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}.section-head{margin-bottom:30px}.section-head p{color:var(--muted);max-width:44em;margin:8px 0 0}.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 .intro{max-width:44em;color:var(--on-dark);margin:16px 0 0;font-size:clamp(1.05rem,1.5vw,1.2rem)}.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}.fact-icon{background:var(--soft);width:52px;height:52px;color:var(--blue);border-radius:14px;flex:none;place-items:center;display:grid}.fact-icon svg{width:30px;height:30px}.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}.pc-table{border:1px solid var(--line);border-radius:var(--r);background:#fff;margin-top:32px;overflow-x:auto}.pc-table table{border-collapse:collapse;width:100%;min-width:480px}.pc-table caption{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:18px 20px 6px;font-size:.8rem;font-weight:800}.pc-table th,.pc-table td{text-align:left;border-bottom:1px solid var(--line);padding:14px 20px}.pc-table thead th{color:var(--ink);font-weight:800}.pc-table tbody th{color:var(--ink);font-weight:700}.pc-table tbody tr:last-child>*{border-bottom:0}.pc-list{gap:6px;margin:0;padding-left:1.2em;list-style:outside;display:grid}.pc-list li::marker{color:var(--blue)}.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}.pc-switch{border:1px solid var(--line);background:#fff;border-radius:999px;flex-wrap:wrap;gap:4px;margin:0;padding:4px;display:flex}.pc-switch input{opacity:0;width:1px;height:1px;position:absolute}.pc-switch label{min-height:44px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;padding:0 20px;font-weight:700;display:inline-flex}.pc-switch label:hover{color:var(--ink)}.pc-switch input:checked+label{background:var(--ink);color:#fff}.pc-switch input:focus-visible+label{outline:3px solid var(--blue);outline-offset:2px}.pc-refs-title{font-size:1.6rem;font-weight:800}.pc-refs{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.pc-refs a{border:1px solid var(--line);height:100%;color:var(--ink);border-radius:12px;align-items:center;gap:14px;padding:18px 20px;display:flex}.pc-refs a:hover{background:var(--soft);color:var(--ink);border-color:#b9c8f0;text-decoration:none}.pc-refs svg{width:26px;height:26px;color:var(--blue);flex:none}.pc-refs b,.pc-refs a span span{display:block}.pc-refs a span span{color:var(--muted);font-size:.9rem}@media (width<=1000px){.pc-hero-grid,.pc-overview,.pc-cards{grid-template-columns:minmax(0,1fr)}.pc-refs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.pc-section{padding:56px 0}.pc-strategies,.pc-notes,.pc-refs{grid-template-columns:minmax(0,1fr)}.pc-switch{width:100%}.pc-table table{min-width:0;font-size:.95rem}.pc-table th,.pc-table td{padding:12px 14px}.pc-table caption{padding:16px 14px 4px}.pc-switch label{flex:1;justify-content:center;padding:0 12px}}.fi-cols{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:start;gap:40px 48px;display:grid}.fi-lead{margin:16px 0 0;font-size:1.125rem}.fi-lead strong{color:var(--ink)}.fi-table-tight{margin-top:0}.fi-cards{gap:24px;margin:0;padding:0;list-style:none;display:grid}.fi-cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}.fi-cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fi-card{border-radius:var(--r);background:#fff;border:1px solid #e3e8ee;flex-direction:column;gap:14px;min-width:0;padding:28px;display:flex}.fi-card>p{margin:0}.fi-card h3{font-size:1.35rem;font-weight:800}.fi-card h4{font-size:1.25rem;font-weight:800}.fi-card strong{color:var(--ink)}.fi-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.fi-card-top .pc-label{margin:0}.fi-card .pc-label{font-size:.8rem;font-weight:800}.fi-muted{color:var(--muted);font-size:.95rem}.fi-small{gap:10px;padding:22px 24px}.fi-small h4{font-size:1.1rem}.fi-small>p{font-size:.95rem}.fi-cards-3{margin-top:24px}.fi-callout{border-radius:10px;align-items:flex-start;gap:12px;margin:0;padding:14px 16px;font-size:.95rem;line-height:1.6;display:flex}.fi-callout>svg{flex:none;width:24px;height:24px}.fi-warn{color:#5c3d00;background:#fff4dc;border:1px solid #f0d9a0}.fi-note{background:var(--soft);color:var(--ink);border-radius:14px;margin-top:24px;padding:18px 20px}.fi-note>svg{color:var(--blue)}.fi-note p{margin:0}.fi-note p+p{margin-top:8px}.pc-gray .pc-refs a{background:#fff}.pc-gray .pc-refs a:hover{background:var(--soft)}@media (width<=1000px){.fi-cols,.fi-cards-3{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.fi-cards-2,.fi-oi{grid-template-columns:minmax(0,1fr)}.fi-card{padding:22px 20px}}.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}.lv-related{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.lv-related a{border:1px solid var(--line);height:100%;color:var(--ink);border-radius:12px;flex-direction:column;gap:4px;padding:18px 20px;display:flex}.lv-related a:hover{background:var(--soft);color:var(--ink);border-color:#b9c8f0;text-decoration:none}.lv-related span{color:var(--muted);font-size:.9rem}.lv-refs-title{margin-top:56px}.sh-hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.sh-mock{width:100%;max-width:500px;color:var(--ink);background:#fff;border-radius:14px;justify-self:end;margin:0;overflow:hidden;box-shadow:0 24px 60px #02082480}.sh-mock-bar{background:#e8edf5;border-bottom:1px solid #cfd8e3;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:.92rem;font-weight:800;display:flex}.sh-mock-bar code{font:700 .75rem/1 var(--font-mono);color:#fff;background:var(--ink);border-radius:6px;padding:4px 8px}.sh-mock-body{gap:14px;padding:16px;display:grid}.sh-mock-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:.8rem;display:grid}.sh-mock-fields div{gap:4px;display:grid}.sh-mock-fields div>span:first-child{color:#4a5668;font-weight:700}.sh-mock-input{min-height:28px;font:700 .8rem/1.3 var(--font-mono);color:var(--ink);border:1px solid #b9c4d2;border-radius:6px;padding:5px 8px;display:block}.sh-mock-grid{border:1px solid #cfd8e3;border-radius:8px;overflow:hidden}.sh-mock-row{border-top:1px solid #e3e8ef;grid-template-columns:2.3fr 1fr .7fr .7fr .7fr .7fr;align-items:center;font-size:.8rem;line-height:1.3;display:grid}.sh-mock-row>*{padding:8px 6px}.sh-mock-row>:first-child{padding-left:10px}.sh-mock-row code{font:.78rem var(--font-mono)}.sh-mock-row span code{color:#4a5668;font-size:.7rem}.sh-mock-head{color:#4a5668;background:#f1f4f8;border-top:0;font-size:.75rem;font-weight:800}.sh-mock-head>:nth-child(n+3){text-align:center}.sh-mock-row>.sh-box{background:#fff;border:1.6px solid #9aa7b8;border-radius:5px;justify-self:center;width:18px;height:18px;padding:0;position:relative}.sh-mock-row>.sh-box.on{background:var(--blue);border-color:var(--blue)}.sh-mock-row>.sh-box.on:after{content:"";border:2.4px solid #fff;border-width:0 2.4px 2.4px 0;width:4px;height:9px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.sh-mock-row>.sh-box.sort{background:var(--gold);border-color:var(--gold)}.sh-mock-row>.sh-box.sort:after{content:"↓";color:#fff;font:800 13px/1 var(--font);place-items:center;display:grid;position:absolute;inset:0}.sh-mock-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.sh-mock-foot code{font:.72rem/1.4 var(--font-mono);color:#4a5668}.sh-mock-exec{background:var(--blue);color:#fff;border-radius:8px;padding:7px 14px;font-size:.8rem;font-weight:800}.sh-code-text code,.sh-steps code,.sh-overview .fi-lead code{font:600 .9em var(--font-mono);color:var(--ink);background:var(--soft);overflow-wrap:anywhere;border-radius:5px;padding:1px 4px}.fi-note.sh-code-text code{background:#fff}.sh-code{background:var(--soft);color:var(--ink);font:600 .88rem/1.3 var(--font-mono);white-space:nowrap;border-radius:6px;margin:2px 6px 2px 0;padding:4px 8px;display:inline-block}.sh-sql-cell>span{margin-right:6px}.sh-mono{font:600 .85rem/1.5 var(--font-mono);color:var(--ink);overflow-wrap:anywhere}.sh-overview{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.sh-overview .fi-lead strong{color:var(--ink)}.sh-facts{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:20px 22px 22px}.sh-facts dl{margin:4px 0 16px}.sh-facts dl div{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:12px;padding:12px 0;display:grid}.sh-facts dl div:last-child{border-bottom:0}.sh-facts dt{color:var(--ink);font-weight:800}.sh-facts dd{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;display:flex}.sh-facts .tcode{padding:3px 8px}.sh-evo{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 32px;padding:0;list-style:none;display:grid}.sh-evo li{border-radius:var(--r);background:#fff;border:1px solid #e3e8ee;flex-direction:column;gap:8px;padding:22px;display:flex}.sh-evo-era{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.sh-evo-code{font:800 1.6rem/1.1 var(--font-mono);color:var(--ink)}.sh-evo li.is-current{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.sh-evo li.is-current .sh-evo-era{color:var(--gold-light)}.sh-evo li.is-current .sh-evo-code{color:#fff}.sh-features{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.sh-features h3{font-size:1.2rem}.sh-switch{border-radius:28px;display:inline-flex}.sh-recipes:has(#rc-count:checked) .sh-recipe:not([data-recipe=count]),.sh-recipes:has(#rc-top:checked) .sh-recipe:not([data-recipe=top]),.sh-recipes:has(#rc-group:checked) .sh-recipe:not([data-recipe=group]),.sh-recipes:has(#rc-having:checked) .sh-recipe:not([data-recipe=having]),.sh-recipes:has(#rc-avg:checked) .sh-recipe:not([data-recipe=avg]){display:none}.sh-recipe{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:24px;margin-top:28px;display:grid}.sh-recipe-screen{border:1px solid var(--line);border-radius:var(--r);background:#fff;min-width:0;overflow:hidden}.sh-recipe-head{background:var(--soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.sh-recipe-head h3{font-size:1.2rem;font-weight:800}.sh-recipe-head p{color:var(--ink);margin:0;font-size:.95rem}.sh-recipe-head .tcode{background:#fff;padding:3px 8px}.sh-recipe-table{color:var(--muted);margin:0;padding:12px 20px 0;font-size:.95rem}.sh-recipe-grid{overflow-x:auto}.sh-recipe-grid table{border-collapse:collapse;width:100%;min-width:460px;font-size:.95rem}.sh-recipe-grid th,.sh-recipe-grid td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 20px}.sh-recipe-grid thead th{color:var(--ink);font-weight:800}.sh-recipe-grid tbody th{color:var(--ink);font-weight:700}.sh-recipe-grid tbody tr:last-child>*{border-bottom:0}.sh-recipe-grid code{font:.9rem var(--font-mono);color:var(--ink)}.sh-ticks{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sh-ticks li{background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:800}.sh-recipe-side{align-content:start;gap:16px;min-width:0;display:grid}.sh-sqlbox{border-radius:var(--r);background:var(--night-b);min-width:0;color:var(--on-dark);padding:20px}.sh-sqlbox p{letter-spacing:.08em;text-transform:uppercase;color:var(--gold-light);margin:0 0 12px;font-size:.8rem;font-weight:800}.sh-sqlbox pre{margin:0;overflow-x:auto}.sh-sqlbox code{font:500 .88rem/1.65 var(--font-mono);color:#fff;white-space:pre}.sh-recipe-notes{border:1px solid var(--line);border-radius:var(--r);padding:20px}.sh-recipe-notes p{margin:0 0 16px}.sh-recipe-notes p:last-child{margin:0}.sh-recipe-result{color:var(--ink)}.sh-joins{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:32px 40px;display:grid}.sh-subtitle{margin-bottom:20px;font-size:1.35rem;font-weight:800}.sh-steps{gap:12px;margin:0;padding:0;list-style:none;display:grid}.sh-steps li{background:#fff;border:1px solid #e3e8ee;border-radius:14px;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.sh-steps strong{color:var(--ink)}.sh-step-n{background:var(--blue);color:#fff;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:.95rem;font-weight:800;display:grid}.sh-joins-side{gap:24px;min-width:0;display:grid}.sh-joins-side .pc-table table{min-width:520px}.sh-table-note{border-top:1px solid var(--line);color:var(--muted);margin:0;padding:14px 20px 18px;font-size:.95rem}.sh-table-note strong{color:var(--ink)}.sh-example{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}.sh-example-head{background:var(--soft);padding:18px 20px}.sh-example-head .pc-label{color:#4a5668;margin:0}.sh-example-head h3{margin-top:4px;font-size:1.2rem;font-weight:800}.sh-example>p{margin:0;padding:16px 20px 0}.sh-example>p.fi-muted{padding:0 20px 18px}.sh-example-table{margin:12px 0;overflow-x:auto}.sh-example-table table{border-collapse:collapse;width:100%;min-width:440px;font-size:.95rem}.sh-example-table th,.sh-example-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 20px}.sh-example-table thead th,.sh-example-table tbody th{color:var(--ink);font-weight:800}.sh-example-table tbody th span{color:var(--muted);font-size:.88rem;font-weight:400;display:block}.sh-example-table code{font:.9rem var(--font-mono);color:var(--ink)}.sh-join-blocks{margin-top:32px}.sh-dl{gap:14px;margin:0;display:grid}.sh-dl dt{color:var(--ink);font-weight:800}.sh-dl dd{margin:2px 0 0}.sh-numbered{gap:8px;margin:0;padding-left:1.3em;display:grid}.sh-numbered li::marker{color:var(--blue);font-weight:800}.sh-security{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.sh-safety{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px}.sh-tips{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.sh-tips li{border-radius:var(--r);background:#fff;border:1px solid #e3e8ee;align-items:flex-start;gap:14px;padding:22px;display:flex}.sh-tip-n{font:800 .95rem/1.6 var(--font-mono);color:var(--blue);flex:none}.sh-tips p{margin:0}.sh-tips strong{color:var(--ink)}.sh-notes table{min-width:600px}.sh-notes th a{font-family:var(--font-mono);font-weight:700}.sh-faq-wrap{max-width:calc(900px + 2 * var(--gutter))}.sh-faq{gap:12px;margin-top:28px;display:grid}.sh-faq details{border:1px solid var(--line);background:#fff;border-radius:14px}.sh-faq summary{cursor:pointer;min-height:44px;color:var(--ink);justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;font-size:1.1rem;font-weight:800;list-style:none;display:flex}.sh-faq summary::-webkit-details-marker{display:none}.sh-faq summary:after{content:"+";color:var(--blue);flex:none;font-size:1.5rem;font-weight:700;line-height:1}.sh-faq details[open] summary:after{content:"−"}.sh-faq summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:14px}.sh-faq details p{margin:0;padding:0 22px 20px}@media (width<=1000px){.sh-hero-grid,.sh-overview,.sh-security,.sh-joins,.sh-recipe{grid-template-columns:minmax(0,1fr)}.sh-mock{justify-self:start}.sh-evo{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.sh-evo{grid-template-columns:minmax(0,1fr)}.sh-switch{border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sh-switch label{text-align:center;border-radius:12px;justify-content:center;padding:8px 10px;line-height:1.25}.sh-recipe-grid table,.sh-joins-side .pc-table table,.sh-example-table table{min-width:0;font-size:.92rem}.sh-joins-side .pc-table th,.sh-joins-side .pc-table td{padding:10px 12px}.sh-ticks li{white-space:normal}.sh-mock-body{padding:12px}.sh-mock-row>*{padding:7px 4px}.sh-recipe-grid th,.sh-recipe-grid td,.sh-example-table th,.sh-example-table td{padding:10px 14px}.sh-faq summary{padding:16px 18px;font-size:1.02rem}.sh-faq details p{padding:0 18px 18px}}.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)}.cy-small code,.cy-list code,.cy-proc code,.fi-card p code,.cy-dl code{background:var(--soft);color:var(--ink);font:600 .9em var(--font-mono);overflow-wrap:anywhere;border-radius:5px;padding:1px 5px}