.pb-micro{font-family:var(--pp-font-mono);font-weight:500;font-size:11px;line-height:1;letter-spacing:var(--pp-track-micro-16);text-transform:uppercase;color:var(--pp-tertiary)}html:has(.pb-post){scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html:has(.pb-post){scroll-behavior:auto}}.pb-shell{max-width:1120px;margin:0 auto;padding:0 24px 120px;display:grid;grid-template-columns:220px minmax(0,680px);column-gap:72px;justify-content:center}.pb-head{grid-column:1 / -1;max-width:880px;width:100%;margin:56px auto 8px}.pb-rail{position:sticky;top:96px;align-self:start;margin-top:40px}.pb-article{margin-top:40px;min-width:0;color:var(--pp-secondary);font-size:17px;line-height:1.65}.pb-shell[data-rail=false]{grid-template-columns:minmax(0,680px)}@media(max-width:900px){.pb-shell,.pb-shell[data-rail=false]{grid-template-columns:minmax(0,1fr);column-gap:0}.pb-rail{display:none}}@media(max-width:420px){.pb-shell{padding-inline:16px}}.pb-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}.pb-crumbs a{color:inherit;text-decoration:none}@media(hover:hover){.pb-crumbs a:hover{color:var(--pp-primary)}}.pb-crumbs__sep{color:var(--pp-quaternary)}.pb-h1{margin:18px 0;font-family:var(--pp-font-display);font-weight:400;font-size:56px;line-height:1.04;letter-spacing:-.04em;color:var(--pp-primary);text-wrap:balance}@media(max-width:900px){.pb-h1{font-size:38px}}@media(max-width:420px){.pb-h1{font-size:32px}}.pb-study{margin:0;font-size:17px;color:var(--pp-secondary)}.pb-study strong{color:var(--pp-primary);font-weight:600}.pb-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:24px;color:var(--pp-tertiary);font-size:14px}.pb-langs{display:flex;gap:6px}.pb-langchip{font-family:var(--pp-font-mono);font-weight:500;font-size:12px;padding:5px 10px;border-radius:var(--pp-radius-pill);background:var(--pp-fill-tertiary);border:1px solid var(--pp-stroke-light);color:var(--pp-secondary);text-decoration:none}.pb-langchip[aria-current=true]{background:var(--pp-fill-primary);color:var(--pp-on-fill);border-color:transparent}.pb-hero{margin:32px 0 0}.pb-hero img{display:block;width:100%;max-height:520px;object-fit:cover;border-radius:var(--pp-radius-20);background:var(--pp-fill-tertiary);box-shadow:var(--pp-shadow-asset)}.pb-toc{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px;font-size:14px;color:var(--pp-secondary)}.pb-toc li{display:flex;gap:10px}.pb-toc__n{font-family:var(--pp-font-mono);font-weight:500;font-size:11px;line-height:1.9;color:var(--pp-tertiary);font-variant-numeric:tabular-nums;flex:none}.pb-toc a{color:inherit;text-decoration:none;transition:color var(--pp-dur-fast) var(--pp-ease-site)}.pb-toc a[aria-current=true]{color:var(--pp-primary)}@media(hover:hover){.pb-toc a:hover{color:rgba(var(--pp-ink),.75)}}.pb-article h2{margin:56px 0 14px;font-family:var(--pp-font-display);font-weight:400;font-size:32px;line-height:1.15;letter-spacing:-.03em;color:var(--pp-primary);scroll-margin-top:96px;text-wrap:balance}.pb-article h3{margin:28px 0 8px;font-family:var(--pp-font-sans);font-weight:600;font-size:18px;line-height:1.35;letter-spacing:-.01em;color:var(--pp-primary)}.pb-article p{margin:0 0 16px}.pb-article strong{color:var(--pp-primary);font-weight:600}.pb-article ul,.pb-article ol{padding-left:20px;margin:0 0 16px}.pb-article ul{list-style:disc}.pb-article ol{list-style:decimal}.pb-article li::marker{color:var(--pp-tertiary)}.pb-article li{margin:6px 0}.pb-article a:not(.pp-cta):not(.pb-demo):not(.pb-card):not(.pb-btn){color:var(--pp-primary);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;transition:text-decoration-color .25s var(--pp-ease-in-out-quart)}@media(hover:hover){.pb-article a:not(.pp-cta):not(.pb-demo):not(.pb-card):not(.pb-btn):hover{text-decoration-color:transparent}}.pb-label{display:block;margin:56px 0 0}.pb-article .pb-label+h2{margin-top:12px}.pb-answer{position:relative;background:var(--pp-true-white);border-radius:var(--pp-radius-16);padding:22px 24px;box-shadow:var(--pp-shadow-callout)}.pb-answer:before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:2px;border-radius:2px;background:var(--pp-blue)}.pb-answer .pb-micro{display:block;margin-bottom:10px}.pb-article .pb-answer p{margin:0;color:var(--pp-primary);font-size:18px}.pb-demos{display:grid;grid-template-columns:repeat(var(--pb-demo-n, 3),minmax(0,1fr));gap:12px;margin:28px 0 0}.pb-demos[data-portrait=true][data-n="1"]{max-width:33%}.pb-demos[data-portrait=true][data-n="2"]{max-width:66%}.pb-demo{display:block;border-radius:var(--pp-radius-16);text-decoration:none}.pb-demo figure{position:relative;margin:0;aspect-ratio:var(--pb-demo-ar, 9 / 16);overflow:hidden;border-radius:var(--pp-radius-16);background:var(--pp-night);box-shadow:var(--pp-shadow-card);transition:opacity var(--pp-dur-fast) var(--pp-ease-site)}@media(hover:hover){.pb-demo:hover figure{opacity:.92}}.pb-demo video,.pb-demo img{display:block;width:100%;height:100%;object-fit:cover}.pb-demo figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--pp-font-mono);font-weight:500;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#f8f8f8;background:#02020499;padding:5px 8px;border-radius:6px}.pb-article .pb-demos-cap{margin:12px 0 24px;font-size:13px;color:var(--pp-tertiary)}@media(max-width:900px){.pb-demos{gap:8px}.pb-demo figcaption{display:none}}.pb-prompt{margin:24px 0;overflow:hidden;background:var(--pp-true-white);border-radius:var(--pp-radius-16);box-shadow:var(--pp-shadow-card)}.pb-prompt__head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--pp-stroke-light)}.pb-prompt pre{margin:0;padding:18px;font-family:var(--pp-font-mono);font-size:14.5px;line-height:1.6;color:var(--pp-primary);white-space:pre-wrap;word-break:break-word}.pb-copy{font-family:var(--pp-font-mono);font-weight:500;font-size:12px;padding:6px 10px;border:0;border-radius:var(--pp-radius-8);background:var(--pp-fill-secondary);color:var(--pp-primary);cursor:pointer;transition:background-color var(--pp-dur-fast) var(--pp-ease-site)}@media(hover:hover){.pb-copy:hover{background:var(--pp-fill-secondary-hover)}}.pb-article .pb-steps{counter-reset:pb-s;list-style:none;padding:0}.pb-steps>li{counter-increment:pb-s;position:relative;padding-left:44px;margin:0 0 22px}.pb-steps>li:before{content:counter(pb-s);position:absolute;left:0;top:0;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--pp-radius-pill);background:var(--pp-fill-secondary);font-family:var(--pp-font-mono);font-weight:500;font-size:13px;color:var(--pp-primary)}.pb-table{margin:8px 0 24px;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;box-shadow:var(--pp-shadow-card)}.pb-table__title{margin:24px 0 10px}.pb-table table{width:100%;border-collapse:collapse;font-size:15px;background:var(--pp-true-white)}.pb-table th{text-align:left;font-family:var(--pp-font-mono);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pp-tertiary);padding:12px 16px;border-bottom:1px solid var(--pp-stroke-light);vertical-align:middle}.pb-table td{padding:12px 16px;border-bottom:1px solid var(--pp-stroke-light);color:var(--pp-secondary);vertical-align:top}.pb-table tr:last-child td{border-bottom:0}.pb-table td:first-child{color:var(--pp-primary);font-weight:500}.pb-table [data-hl=true]{background:var(--pp-fill-tertiary);color:var(--pp-primary)}.pb-table [data-center=true]{text-align:center}.pb-table__logo{display:block;margin-inline:auto;object-fit:contain;filter:brightness(0) opacity(.8)}.pb-yes,.pb-no{display:inline-block;width:18px;height:18px;vertical-align:middle}.pb-yes{color:var(--pp-primary)}.pb-no{color:var(--pp-quaternary)}.pb-quote{margin:24px 0;padding:0 0 0 18px;border-left:2px solid var(--pp-stroke-medium);font-family:var(--pp-font-display);font-weight:400;font-size:22px;line-height:1.4;letter-spacing:-.02em;color:var(--pp-primary)}.pb-quote p{margin:0}.pb-quote cite{display:flex;align-items:center;gap:10px;margin-top:10px;font-family:var(--pp-font-mono);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-tertiary);font-style:normal}.pb-quote cite img{width:24px;height:24px;border-radius:50%;background:var(--pp-fill-secondary)}.pb-article .pb-spokes{list-style:none;padding:0;margin:0;border-top:1px solid var(--pp-stroke-medium)}.pb-article .pb-spokes li{margin:0;padding:14px 0;border-bottom:1px solid var(--pp-stroke-light)}.pb-article .pb-spokes a{font-weight:600}@media(min-width:640px){.pb-article .pb-spokes[data-compact=true]{columns:2;column-gap:24px}}.pb-article .pb-spokes[data-compact=true] li{break-inside:avoid;padding:8px 0;font-size:15px;line-height:1.4}.pb-spokes span{display:block;margin-top:4px;font-size:15px;line-height:1.5}.pb-faq details{border-bottom:1px solid var(--pp-stroke-medium);padding:16px 0}.pb-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;font-weight:600;color:var(--pp-primary)}.pb-faq summary::-webkit-details-marker{display:none}.pb-faq summary:after{content:"+";font-family:var(--pp-font-mono);font-weight:400;font-size:20px;line-height:1;color:var(--pp-tertiary)}.pb-faq details[open] summary:after{content:"−"}.pb-article .pb-faq details p{margin:10px 0 0}.pb-cards{display:grid;grid-template-columns:1fr;gap:12px;margin:24px 0}@media(min-width:640px){.pb-cards{grid-template-columns:1fr 1fr}}.pb-cards--stack{grid-template-columns:1fr!important}.pb-box{overflow:hidden;background:var(--pp-true-white);border-radius:var(--pp-radius-16);box-shadow:var(--pp-shadow-card)}.pb-box[data-strong=true]{box-shadow:var(--pp-shadow-card),inset 0 0 0 1px var(--pp-stroke-strong)}.pb-box__media{border-bottom:1px solid var(--pp-stroke-light);overflow:hidden}.pb-box__media img,.pb-box__media video{display:block;width:100%;height:192px;object-fit:cover}.pb-box__body{padding:18px 20px 20px}.pb-box__body .pb-micro{display:block;margin-bottom:10px}.pb-article .pb-box__body h3{margin:0}.pb-article .pb-box__body p{margin:8px 0 0;font-size:15px;line-height:1.55}.pb-box__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:12px;border-radius:var(--pp-radius-12);border:1px solid var(--pp-stroke-light);color:var(--pp-primary)}.pb-box__link{display:inline-block;margin-top:14px;font-size:15px;font-weight:500}@keyframes pb-push-in{0%,40%{transform:scale(1)}60%,to{transform:scale(1.35)}}.pb-push-in{animation:pb-push-in 8s ease-in-out infinite alternate}@media(prefers-reduced-motion:reduce){.pb-push-in{animation:none}}@keyframes pb-slide{0%{transform:translate(0)}to{transform:translate(-50%)}}.pb-thumbs{animation:pb-slide 40s linear infinite}@media(prefers-reduced-motion:reduce){.pb-thumbs{animation:none}}.pb-badges{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.pb-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:var(--pp-radius-pill);background:var(--pp-true-white);border:1px solid var(--pp-stroke-medium);font-size:13px;font-weight:500;color:var(--pp-primary)}.pb-badge:before{content:"";width:6px;height:6px;border-radius:50%;flex:none;background:var(--ps-signal-green-ink)}.pb-badge[data-type=lose]{color:var(--pp-secondary)}.pb-badge[data-type=lose]:before{background:var(--pp-quaternary)}.pb-figure{margin:28px 0}.pb-frame{overflow:hidden;border-radius:var(--pp-radius-16);background:var(--pp-true-white);box-shadow:var(--pp-shadow-card)}.pb-frame[data-half=true]{max-width:50%;margin-inline:auto}.pb-frame>img,.pb-frame>video,.pb-frame>iframe{display:block;width:100%;border:0}.pb-figure figcaption{margin-top:10px;font-size:13px;color:var(--pp-tertiary);text-align:center}.pb-frame--empty{display:flex;align-items:center;justify-content:center;padding:96px 0;font-size:48px}.pb-inline-cta{margin:28px 0;padding:28px 24px;text-align:center;background:var(--pp-true-white);border-radius:var(--pp-radius-20);box-shadow:var(--pp-shadow-card)}.pb-article .pb-inline-cta p{margin:12px 0 0;font-size:14px}.pb-switch{margin:40px 0;display:flex;flex-direction:column;gap:28px;padding:28px 22px;background:var(--pp-true-white);border-radius:var(--pp-radius-24);box-shadow:var(--pp-shadow-callout)}@media(min-width:768px){.pb-switch{flex-direction:row;align-items:center;padding:36px}.pb-switch__text{flex:0 0 250px}}.pb-article .pb-switch h3{margin:0;font-family:var(--pp-font-display);font-weight:400;font-size:28px;line-height:1.15;letter-spacing:-.03em}.pb-article .pb-switch__text p{margin:10px 0 0;font-size:15px;line-height:1.55}.pb-switch__img{flex:1 1 auto;min-width:0}.pb-switch__img img{display:block;width:100%;border-radius:var(--pp-radius-12);box-shadow:var(--pp-shadow-asset)}.pb-btn{display:inline-flex;align-items:center;gap:8px;border-radius:var(--pp-radius-14);padding:12px 18px;font-family:var(--pp-font-sans);font-weight:600;font-size:15px;text-decoration:none;border:0;cursor:pointer;transition:background-color var(--pp-dur-fast) ease-in-out,transform var(--pp-dur-fast) var(--pp-ease-snap)}.pb-btn:active{transform:scale(.97)}.pb-btn--primary{background:var(--pp-fill-primary);color:var(--pp-on-fill)}.pb-btn--secondary{background:var(--pp-fill-secondary);color:var(--pp-primary)}@media(hover:hover){.pb-btn--primary:hover{background:var(--pp-fill-primary-hover)}.pb-btn--secondary:hover{background:var(--pp-fill-secondary-hover)}}.pb-end{margin-top:72px;padding:40px;background:var(--pp-true-white);border-radius:var(--pp-radius-24);box-shadow:var(--pp-shadow-callout)}.pb-article .pb-end h2{margin:12px 0 10px;font-size:36px}.pb-article .pb-end p{max-width:520px}.pb-end__row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}@media(max-width:900px){.pb-end{padding:28px 22px}}.pb-related{margin-top:56px}.pb-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}@media(max-width:900px){.pb-related__grid{grid-template-columns:1fr}}.pb-card{display:block;overflow:hidden;background:var(--pp-true-white);border-radius:var(--pp-radius-16);box-shadow:var(--pp-shadow-card);text-decoration:none}.pb-card img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;background:var(--pp-fill-tertiary)}.pb-card__body{padding:14px 18px 18px}.pb-card__body .pb-micro{display:block;margin-bottom:10px}.pb-card b{display:block;font-family:var(--pp-font-display);font-weight:400;font-size:19px;line-height:1.25;letter-spacing:-.02em;color:var(--pp-primary);transition:color var(--pp-dur-fast) var(--pp-ease-site)}@media(hover:hover){.pb-card:hover b{color:rgba(var(--pp-ink),.75)}}.pb-index{max-width:1120px;margin:0 auto;padding:56px 24px 120px}@media(max-width:420px){.pb-index{padding-inline:16px}}.pb-index__head{max-width:760px}.pb-index__head .pb-h1{margin-bottom:14px}.pb-index__head .pb-btn{margin-top:22px}.pb-chips{display:flex;gap:6px;overflow-x:auto;margin-top:36px;padding:2px 0 16px;border-bottom:1px solid var(--pp-stroke-light);scrollbar-width:none}.pb-chips--cats{margin-top:0;padding-top:14px}.pb-chips::-webkit-scrollbar{display:none}.pb-chips .pb-langchip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;white-space:nowrap}@media(hover:hover){.pb-chips .pb-langchip:not([aria-current=true]):hover{color:var(--pp-primary);border-color:var(--pp-stroke-medium)}}.pb-langchip__n{opacity:.6;font-variant-numeric:tabular-nums}.pb-index__filter{margin:20px 0 0}.pb-index__filter a{color:var(--pp-primary)}.pb-index__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px;margin-top:28px}@media(max-width:900px){.pb-index__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.pb-index__grid{grid-template-columns:1fr}}.pb-index__grid .pb-card__desc{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--pp-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pb-more{display:flex;justify-content:center;margin-top:40px}.pb-press{margin-top:80px}.pb-press__grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}@media(min-width:640px){.pb-press__grid{grid-template-columns:1fr 1fr}}.pb-press__grid .pb-card__body{padding:18px 20px 20px}
