@font-face{font-family: 'Geist Mono';src: url('/fonts/GeistMono-Regular.woff2') format('woff2');font-weight: 400;font-display: swap}.pp{--ink: #171717;--ink-2: #262626;--paper: #FAFAFA;--white: #fff;--smoke: #D4D4D4;--metal: #A3A3A3;--gray: #737373;--line: #E7E7E2;--lime: #F2FF70;--lime-deep: #DAE758;--lime-soft: #FBFFD9;--olive: #6B7700;--display: 'NeueMachina', 'PP Neue Machina', system-ui, sans-serif;--body: 'NeueMontreal', 'PP Neue Montreal', -apple-system, 'Segoe UI', Arial, sans-serif;--mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;display: block;background: var(--paper);color: var(--ink);font: 400 18px/1.65 var(--body);letter-spacing: .005em;-webkit-font-smoothing: antialiased}.pp *, .pp *::before, .pp *::after{box-sizing: border-box}.pp :where(h1, h2, h3, p, ol, ul, li, figure, blockquote, table){margin: 0;padding: 0}.pp :where(ol, ul){list-style: none}.pp :where(a){color: inherit;text-decoration: underline;text-decoration-color: rgba(23,23,23,.28);text-underline-offset: 3px;transition: color .2s, text-decoration-color .2s}.pp :where(a:hover){text-decoration-color: var(--ink)}.pp :focus-visible{outline: 2px solid var(--lime);outline-offset: 3px}.pp-k, .pp-eyebrow{font: 400 13px/1.4 var(--mono);letter-spacing: .02em;color: var(--gray)}.pp-eyebrow{margin-bottom: 14px}.pp-eyebrow--light{color: var(--metal)}.pp-pending{display: inline-block;font: 400 11.5px/1 var(--mono);color: var(--olive);background: var(--lime-soft);border: 1px dashed var(--lime-deep);border-radius: 999px;padding: 4px 8px;vertical-align: 1px}.pp-draft{position: sticky;top: 64px;z-index: 30;background: var(--lime);color: var(--ink);text-align: center;font: 400 13px/1.4 var(--mono);padding: 9px 16px}.pp-hero{position: relative;overflow: hidden;background: var(--ink);color: var(--paper)}.pp-glow{position: absolute;border-radius: 50%;pointer-events: none}.pp-glow--a{right: -14%;top: -40%;width: 72%;height: 130%;background: var(--lime);opacity: .32;filter: blur(240px)}.pp-glow--b{left: -18%;bottom: -55%;width: 60%;height: 100%;background: var(--smoke);opacity: .14;filter: blur(260px)}.pp-glow--c{left: -10%;top: -40%;width: 60%;height: 150%;background: var(--lime);opacity: .26;filter: blur(240px)}.pp-noise{position: absolute;inset: 0;background: url('/img/whitepaper/paper-noise.png?v=0b76943f') 0 0 / 256px 256px;opacity: .07;mix-blend-mode: overlay;pointer-events: none}.pp-hero__in{position: relative;max-width: 1240px;margin: 0 auto;padding: clamp(64px, 9vw, 128px) clamp(20px, 4vw, 48px);display: grid;grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);gap: clamp(32px, 6vw, 96px);align-items: center}.pp-hero h1{font: 500 clamp(52px, 7.6vw, 108px)/.98 var(--display);letter-spacing: -.035em;color: var(--paper)}.pp-hero h1 span{color: var(--metal)}.pp-sub{margin-top: 28px;max-width: 600px;font-size: clamp(19px, 1.8vw, 23px);line-height: 1.5;color: var(--smoke);text-wrap: pretty}.pp-byline{margin-top: 18px;font: 400 14px/1.5 var(--mono);color: var(--metal)}.pp-byline b{font-weight: 400;color: var(--paper)}.pp-ctas{display: flex;flex-wrap: wrap;align-items: center;gap: 22px;margin-top: 34px}.pp-btn{display: inline-flex;align-items: center;gap: 8px;border-radius: 999px;padding: 18px 28px;background: var(--lime);color: var(--ink) !important;text-decoration: none !important;font: 500 18px/1 var(--display);letter-spacing: -.01em;transition: transform .2s, box-shadow .2s}.pp-btn:hover{transform: translateY(-1px);box-shadow: 0 12px 34px rgba(0,0,0,.22)}.pp-btn--ink{background: var(--ink);color: var(--lime) !important;padding: 13px 20px;font-size: 15px}.pp-textlink{font: 500 17px/1 var(--display);color: var(--paper) !important;text-decoration-color: rgba(250,250,250,.4) !important}.pp-textlink--light{color: var(--paper) !important}.pp-cover{position: relative;aspect-ratio: 8.5 / 11;width: 100%;max-width: 340px;justify-self: center;border-radius: 4px;overflow: hidden;background: var(--smoke);box-shadow: 0 40px 90px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06);transform: rotate(-2.2deg);transition: transform .6s cubic-bezier(.2,.7,.2,1)}.pp-cover:hover{transform: rotate(0deg) translateY(-4px)}.pp-cover__blob{position: absolute;left: 25%;top: -18%;width: 105%;height: 82%;border-radius: 50%;background: var(--lime-deep);opacity: .92;filter: blur(70px)}.pp-cover__in{position: absolute;inset: 28px;display: flex;flex-direction: column;justify-content: space-between;color: var(--ink)}.pp-cover__k{display: block;font: 400 10px/1 var(--mono);margin-bottom: 12px}.pp-cover__t{display: block;font: 500 33px/1.02 var(--display);letter-spacing: -.03em}.pp-cover__s{display: block;margin-top: 12px;font: 400 11px/1.5 var(--body);max-width: 230px}.pp-cover__d{font: 400 9px/1 var(--mono);color: var(--gray)}.pp-body{max-width: 1240px;margin: 0 auto;padding: 0 clamp(20px, 4vw, 48px);display: grid;grid-template-columns: 230px minmax(0, 1fr);gap: clamp(32px, 6vw, 96px);align-items: start}.pp-rail{position: sticky;top: 104px;padding-top: 80px;display: flex;flex-direction: column;gap: 22px}.pp-toc{display: flex;flex-direction: column;gap: 2px}.pp-toc a{display: block;padding: 7px 0 7px 14px;border-left: 2px solid var(--line);font-size: 14.5px;line-height: 1.35;color: var(--gray);text-decoration: none;transition: color .2s, border-color .2s}.pp-toc a:hover{color: var(--ink)}.pp-toc a.is-current{color: var(--ink);border-left-color: var(--ink)}.pp-railnote{font: 400 12.5px/1.5 var(--mono);color: var(--gray)}.pp-article{max-width: 740px;padding-bottom: 112px}.pp-sec{padding-top: 80px;scroll-margin-top: 96px}.pp-sec h2{font: 500 clamp(30px, 3.4vw, 42px)/1.08 var(--display);letter-spacing: -.022em;margin-bottom: 28px;text-wrap: balance}.pp-sec h3{font: 500 22px/1.25 var(--display);letter-spacing: -.01em;margin: 40px 0 14px}.pp-sec p{color: var(--ink-2);text-wrap: pretty}.pp-sec>p+p, .pp-sec>p+h3, .pp-sec>.pp-list+p{margin-top: 20px}.pp-sec>*+p{margin-top: 22px}.pp-lede{font-size: 22px;line-height: 1.55;color: var(--ink) !important}.pp-thesis{margin: 34px 0 6px !important;font: 500 clamp(24px, 2.6vw, 30px)/1.25 var(--display);letter-spacing: -.012em;color: var(--ink) !important;padding-left: 20px;border-left: 4px solid var(--lime-deep)}.pp-takeaways{margin-top: 36px;background: var(--lime);border-radius: 14px;padding: 28px 30px 24px}.pp-takeaways .pp-k{color: var(--ink)}.pp-takeaways ol{margin-top: 14px;counter-reset: t;display: grid;gap: 4px}.pp-takeaways li{counter-increment: t;position: relative;padding: 12px 0 12px 40px;border-top: 1px solid rgba(23,23,23,.12);font-size: 16.5px;line-height: 1.5}.pp-takeaways li::before{content: '0' counter(t);position: absolute;left: 0;top: 12px;font: 400 13px/1.9 var(--mono)}.pp-takeaways b{font-weight: 700}.pp-pull{margin: 48px 0 8px;padding-top: 24px;border-top: 2px solid var(--ink);font: 500 clamp(24px, 2.7vw, 31px)/1.24 var(--display);letter-spacing: -.014em;text-wrap: balance}.pp-callout{margin-top: 32px;background: var(--ink);color: var(--smoke);border-radius: 14px;padding: 24px 26px}.pp-callout .pp-k{color: var(--lime)}.pp-callout p{margin-top: 10px;color: var(--smoke) !important;font-size: 17px}.pp-list{margin-top: 18px;display: grid;gap: 12px}.pp-list li{position: relative;padding-left: 22px;font-size: 17px;color: var(--ink-2)}.pp-list li::before{content: '';position: absolute;left: 0;top: .62em;width: 8px;height: 8px;background: var(--ink)}.pp-steps{margin-top: 22px;counter-reset: s;display: grid;gap: 10px}.pp-steps li{counter-increment: s;position: relative;padding: 16px 18px 16px 62px;background: var(--white);border: 1px solid var(--line);border-radius: 12px;font-size: 17px;line-height: 1.5}.pp-steps li::before{content: '0' counter(s);position: absolute;left: 18px;top: 16px;font: 400 13px/1.95 var(--mono);color: var(--gray)}.pp-note{margin-top: 12px !important;font: 400 12.5px/1.55 var(--mono) !important;color: var(--gray) !important}.pp-table-wrap{margin-top: 28px;overflow-x: auto;border: 1px solid var(--line);border-radius: 14px;background: var(--white)}.pp-table{width: 100%;border-collapse: collapse;font-size: 15px;line-height: 1.45}.pp-table th, .pp-table td{text-align: left;vertical-align: top;padding: 14px 16px;border-bottom: 1px solid var(--line)}.pp-table thead th{background: var(--ink);color: var(--paper);font: 500 14px/1.3 var(--display)}.pp-table thead th.hl{background: var(--lime);color: var(--ink)}.pp-table tbody th{font-weight: 600;width: 30%}.pp-table tbody th small{display: block;margin-top: 3px;font: 400 12px/1.4 var(--mono);color: var(--gray)}.pp-table tbody tr:last-child th, .pp-table tbody tr:last-child td{border-bottom: 0}.pp-table td.hl, .pp-table th.hl{background: #FCFFE3}.pp-table--bom td{font: 400 15px/1.45 var(--mono);white-space: nowrap}.pp-table--bom tr.pp-total th, .pp-table--bom tr.pp-total td{background: var(--ink);color: var(--paper);font-weight: 600}.pp-table--three{min-width: 720px}.pp-table--three tbody th{width: 22%;font: 400 13px/1.5 var(--mono);color: var(--gray)}.pp-fig{margin: 40px 0 8px}.pp-fig figcaption{margin-top: 12px;font: 400 12.5px/1.55 var(--mono);color: var(--gray)}.pp-fig figcaption b{font-weight: 400;color: var(--ink)}.pp-bundle__box{position: relative;border: 2px solid var(--ink);border-radius: 16px;padding: 30px 18px 18px;background: var(--white);display: grid;gap: 10px}.pp-bundle__tag{position: absolute;top: -13px;left: 18px;background: var(--ink);color: var(--paper);font: 400 12px/1 var(--mono);padding: 6px 10px;border-radius: 6px}.pp-layer{border-radius: 10px;padding: 16px 18px;display: grid;gap: 10px}.pp-layer b{font: 500 16px/1.2 var(--display)}.pp-layer--logic{border: 1.5px dashed var(--metal);background: repeating-linear-gradient(135deg, #fff 0 10px, #F6F6F2 10px 20px)}.pp-layer--platform{background: var(--ink);color: var(--paper)}.pp-menus, .pp-chips{display: flex;flex-wrap: wrap;gap: 6px}.pp-menus i, .pp-chips i{font: 400 12px/1 var(--mono);font-style: normal;border-radius: 6px;padding: 7px 9px}.pp-menus i{background: #fff;border: 1px solid var(--smoke);color: var(--gray)}.pp-menus i::after{content: ' \25BE'}.pp-menus i.gap{border-style: dashed;color: #C23B3F;border-color: #E8A3A5}.pp-menus i.gap::after{content: ''}.pp-chips i{background: rgba(250,250,250,.08);color: var(--smoke);border: 1px solid rgba(250,250,250,.12)}.pp-chips--dark i{background: rgba(250,250,250,.07)}.pp-unbundle{display: grid;grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);gap: 0;align-items: center;background: var(--white);border: 1px solid var(--line);border-radius: 16px;padding: 22px}.pp-unbundle__col{display: grid;gap: 10px}.pp-unbundle__arrow{font: 500 28px/1 var(--display);text-align: center;color: var(--gray)}.pp-mini{display: grid;gap: 6px}.pp-mini span{border-radius: 8px;padding: 14px;font: 400 13px/1.3 var(--mono)}.pp-mini--saas{border: 2px solid var(--ink);border-radius: 12px;padding: 6px}.pp-mini--saas span:first-child{border: 1.5px dashed var(--metal);color: var(--gray)}.pp-mini span:last-child{background: var(--ink);color: var(--paper)}.pp-mini--split{gap: 14px}.pp-mini--split .own{background: var(--lime);color: var(--ink);box-shadow: 0 10px 24px rgba(107,119,0,.18)}.pp-cap{font-size: 14px;line-height: 1.45;color: var(--gray)}.pp-ice{border-radius: 16px;overflow: hidden;border: 1px solid var(--line)}.pp-ice__above{background: var(--white);padding: 24px 22px 18px;display: grid;gap: 6px}.pp-ice__above b{font: 500 22px/1.2 var(--display)}.pp-ice__line{position: relative;height: 2px;background: repeating-linear-gradient(90deg, #4F86C6 0 10px, transparent 10px 16px)}.pp-ice__line span{position: absolute;right: 16px;top: -10px;font: 400 11px/1 var(--mono);color: #4F86C6;background: var(--white);padding: 2px 6px}.pp-ice__below{background: linear-gradient(180deg, #1E2A36 0%, #12171D 100%);color: var(--paper);padding: 22px;display: grid;gap: 12px}.pp-ice__below .pp-k{color: #9FB6CC}.pp-ice__below .pp-cap{color: #9FB6CC}.pp-refs ol{counter-reset: r;display: grid;gap: 10px}.pp-refs li{counter-increment: r;position: relative;padding-left: 40px;font-size: 15px;line-height: 1.5;color: var(--ink-2)}.pp-refs li::before{content: '[' counter(r) ']';position: absolute;left: 0;top: 0;font: 400 13px/1.75 var(--mono);color: var(--gray)}.pp sup a{font: 400 11px/1 var(--mono);text-decoration: none;color: var(--olive);padding-left: 2px}.pp-close{position: relative;overflow: hidden;background: var(--ink);color: var(--paper)}.pp-close__in{position: relative;max-width: 1240px;margin: 0 auto;padding: clamp(72px, 9vw, 128px) clamp(20px, 4vw, 48px)}.pp-close h2{font: 500 clamp(40px, 5.6vw, 76px)/1.02 var(--display);letter-spacing: -.03em;max-width: 900px}.pp-close h2 span{color: var(--metal)}.pp-close p{margin-top: 22px;max-width: 620px;font-size: 20px;line-height: 1.55;color: var(--smoke)}.pp-js .pp-sec>*, .pp-js .pp-fig{transition: opacity .7s ease, transform .7s ease}.pp-js .pp-sec:not(.is-in)>*:not(.pp-eyebrow):not(h2){opacity: 0;transform: translateY(14px)}@media (max-width: 960px){.pp-hero__in{grid-template-columns: minmax(0, 1fr)}.pp-cover{max-width: 260px;justify-self: start}.pp-body{grid-template-columns: minmax(0, 1fr)}.pp-rail{position: static;padding-top: 48px}.pp-toc{display: none}.pp-unbundle{grid-template-columns: minmax(0, 1fr);gap: 14px}.pp-unbundle__arrow{transform: rotate(90deg)}}@media (prefers-reduced-motion: reduce){.pp-js .pp-sec:not(.is-in)>*{opacity: 1;transform: none}.pp-cover{transform: none;transition: none}}@page{size: letter;margin: 0.6in}@page :first{margin: 0}@media print{body{padding-top: 0 !important;background: var(--paper)}body::before, body::after, body>nav, body>footer, .osano-cm-window, .osano-cm-dialog{display: none !important}.pp [data-no-print], .pp-draft{display: none !important}.pp *{-webkit-print-color-adjust: exact;print-color-adjust: exact}.pp{font-size: 11pt}.pp-hero{min-height: 11in;height: 11in;break-after: page;display: flex;align-items: center}.pp-hero__in{grid-template-columns: 1fr;padding: 0.9in 0.9in}.pp-fig{padding-top: 16px}.pp-body{display: block;padding: 0}.pp-article{max-width: none;padding-bottom: 0}.pp-sec{padding-top: 26pt}.pp-sec h2{font-size: 22pt;margin-bottom: 14pt;break-after: avoid}.pp-sec h3, .pp-eyebrow{break-after: avoid}.pp-lede{font-size: 13pt}.pp-fig, .pp-table-wrap, .pp-takeaways, .pp-callout, .pp-pull, .pp-steps li, .pp-refs li{break-inside: avoid}.pp-js .pp-sec>*{opacity: 1 !important;transform: none !important}.pp-table-wrap{overflow: visible}.pp-table--three{min-width: 0}.pp-close{break-before: page}}