.extension-artwork[data-astro-cid-q6vxfoqe]{width:min(100%, var(--artwork-size,320px));aspect-ratio:1;margin-inline:auto;position:relative;overflow:hidden}img[data-astro-cid-q6vxfoqe]{width:300%;max-width:none;height:200%;left:calc(var(--column) * -100%);top:calc(var(--row) * -100%);position:absolute}.platform2-page{--p4-rule:var(--color-edge);--p4-rule-strong:var(--color-edge-strong);--p4-paper:var(--color-paper);--p4-sunken:var(--color-sunken);--p4-field:var(--color-field);--p4-slate:var(--color-slate);color:var(--color-ink);background:var(--p4-paper)}.platform2-page ::selection{color:var(--color-paper);background:var(--color-ink)}.p4-hero{padding-top:clamp(5.5rem,10vw,8.5rem);padding-bottom:clamp(3.5rem,6vw,5rem)}.p4-masthead{max-width:58rem}.p4-kicker,.p4-eyebrow,.p4-em-kicker{color:var(--color-ink-faint);letter-spacing:.1em;margin:0 0 1rem;font-size:.75rem}.p4-masthead h1{max-width:none;font-family:var(--font-serif);letter-spacing:-.04em;margin:0;font-size:2.9rem;font-weight:400;line-height:1.1}.p4-lead{max-width:49rem;color:var(--color-ink-muted);margin:2rem 0 0;font-size:1.125rem;line-height:1.62}.p4-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.p4-architecture{margin:clamp(2.5rem,5vw,4rem) 0 0}.p4-architecture-scroll{scrollbar-color:var(--p4-rule-strong) transparent;scrollbar-width:thin;overflow-x:auto}.p4-architecture-frame{width:100%;position:relative}.p4-architecture picture{display:block}.p4-architecture img{width:100%;height:auto;display:block}.p4-flow-tall{display:none}.p4-architecture-flow{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.p4-architecture figcaption{color:var(--color-ink-faint);font-family:var(--font-machine);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;gap:1rem;margin-top:.85rem;font-size:.68rem;display:flex}.p4-scroll-hint{display:none}.p4-extensions-band{border-block:1px solid var(--p4-rule);background:var(--p4-sunken)}.p4-extensions,.p4-directory{padding-top:clamp(5.5rem,10vw,9rem);padding-bottom:clamp(5.5rem,10vw,9rem)}.p4-section-copy{max-width:47rem}.p4-section-copy[id]{scroll-margin-top:6rem}.p4-extensions-band .p4-eyebrow{color:var(--color-ink-muted)}.p4-section-copy h2,.p4-em-masthead h2{max-width:none;font-family:var(--font-machine);letter-spacing:-.01em;margin:0;font-size:1.75rem;font-weight:500;line-height:1.15}.p4-section-copy>p:not(.p4-eyebrow),.p4-em-masthead>p:not(.p4-em-kicker){max-width:44rem;color:var(--color-ink-muted);margin:1.5rem 0 0;font-size:1.05rem;line-height:1.7}.p4-transaction-tabs{display:block}.p4-engines{padding-top:clamp(5.5rem,10vw,9rem);padding-bottom:clamp(3.5rem,7vw,6rem)}.p4-engine-model{display:block}.p4-em-col{box-sizing:border-box;width:100%;max-width:1080px;margin-inline:auto;padding-inline:1.5rem}.p4-em-band{border-block:1px solid var(--p4-rule)}.p4-em-band+.p4-em-band{border-top:0}.p4-em-interfaces-band,.p4-em-foundations-band{background:var(--color-sidebar)}.p4-em-store-band{background:var(--p4-sunken)}.p4-em-masthead{padding-bottom:2.25rem;scroll-margin-top:6rem}.p4-em-masthead>*{max-width:70ch}.p4-em-interfaces{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding-block:.75rem;display:flex}.p4-em-interfaces>span{width:5.75rem;color:var(--color-ink-muted);font-size:var(--text-micro);letter-spacing:.16em;flex:none}.p4-em-interfaces ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.p4-em-interfaces li{border:1px solid var(--color-edge);background:var(--p4-paper);color:var(--color-ink-body);font-family:var(--font-machine);font-size:var(--text-micro);white-space:nowrap;border-radius:.25rem;flex:none;padding:.3125rem .625rem}.p4-em-phases{--panel-pad:.75rem;--card-gap:.625rem;--panel-gap:.75rem;--card-w:calc((100% - 6 * var(--panel-pad) - 2 * var(--card-gap) - 2 * var(--panel-gap)) / 5);grid-template-columns:calc(2 * var(--panel-pad) + var(--card-w)) calc(2 * var(--panel-pad) + 3 * var(--card-w) + 2 * var(--card-gap)) calc(2 * var(--panel-pad) + var(--card-w));gap:var(--panel-gap);grid-template-rows:auto auto;padding-block:1.75rem 0;display:grid}.p4-em-phase{grid-row:span 2;grid-template-rows:subgrid;min-width:0;padding:var(--panel-pad);border:1px solid color-mix(in srgb, var(--p4-rule) 45%, transparent);border-radius:calc(var(--radius) - .125rem);background:color-mix(in srgb, var(--p4-field) 40%, var(--p4-paper));row-gap:.625rem;display:grid}.p4-em-phase-heading{border-left:2px solid var(--color-accent);flex-direction:column;gap:.125rem;padding-left:.625rem;display:flex}.p4-em-phase-heading strong{color:var(--color-ink);font-family:var(--font-machine);font-size:var(--text-fine);letter-spacing:.12em;text-transform:uppercase;font-weight:500}.p4-em-phase-heading span{color:var(--color-ink-muted);font-size:var(--text-fine)}.p4-em-phase-cards{grid-template-columns:repeat(var(--phase-engine-count), minmax(0, 1fr));gap:var(--card-gap);display:grid}.p4-em-phase-cards button{appearance:none;border:1px solid var(--color-edge);background:var(--p4-field);cursor:pointer;min-width:0;font:inherit;text-align:left;border-radius:.25rem;flex-direction:column;gap:.5rem;padding:.875rem;transition:border-color .18s,background-color .18s,box-shadow .18s;display:flex}.p4-em-phase-cards button:hover{border-color:var(--color-edge-strong)}.p4-em-num{color:var(--color-ink-faint);font-family:var(--font-machine);font-size:var(--text-micro);font-variant-numeric:lining-nums;letter-spacing:.14em}.p4-em-name{color:var(--color-ink-body);font-family:var(--font-machine);font-size:var(--text-fine);letter-spacing:.1em;text-transform:uppercase;font-weight:500}.p4-em-phase-cards small{color:var(--color-ink-faint);font-family:var(--font-machine);font-size:var(--text-micro);line-height:1.5}.p4-em-phase-cards button[aria-selected=true]{border-color:var(--color-edge-strong);background:var(--color-accent-wash);box-shadow:var(--shadow-raise)}.p4-em-phase-cards button[aria-selected=true] .p4-em-num,.p4-em-phase-cards button[aria-selected=true] .p4-em-name{color:var(--color-ink)}.p4-em-phase-cards button[aria-selected=true] small{color:var(--color-accent-ink)}.p4-em-detail{grid-template-columns:17.5rem minmax(0,1fr);align-items:start;gap:2.5rem;padding-block:1.875rem 2.25rem;display:grid}.p4-em-element{width:100%;height:auto;display:block}.p4-em-detail-body{flex-direction:column;gap:1.125rem;padding-top:.25rem;display:flex}.p4-em-detail-heading{border-bottom:1px solid var(--p4-rule);flex-direction:column;gap:.5rem;padding-bottom:1rem;display:flex}.p4-em-contract{flex-direction:column;gap:1.125rem;margin:0;display:flex}.p4-em-contract>div{grid-template-columns:1.375rem minmax(0,1fr);align-items:start;row-gap:.1875rem;display:grid}.p4-em-contract>div:before{border:1px solid var(--color-accent);background:var(--color-accent-wash);content:"";border-radius:1px;grid-row:span 2;width:.5rem;height:.5rem;margin-top:.4375rem}.p4-em-contract dt{color:var(--color-ink-faint);font-family:var(--font-machine);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;grid-column:2}.p4-em-contract dd{color:var(--color-ink-body);font-size:var(--text-fine);text-wrap:pretty;grid-column:2;margin:0;line-height:1.6}.p4-em-store{padding-block:2.125rem 2.25rem}.p4-em-store-heading{text-align:center;flex-direction:column;align-items:center;gap:.375rem;display:flex}.p4-em-store-heading>p{margin:0}.p4-em-store .p4-em-store-statement{text-wrap:balance;max-width:52ch}.p4-em-store-heading>p:first-child{color:var(--color-ink-muted);font-size:var(--text-micro);letter-spacing:.18em}.p4-em-store-diagram{grid-template-columns:minmax(0,1fr) 12.5rem minmax(0,1fr);align-items:center;gap:2rem;margin-top:1.75rem;display:grid}.p4-em-store-states{flex-direction:column;gap:1.25rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.p4-em-store-states li{flex-direction:column;gap:.25rem;display:flex}.p4-em-store-before li{border-right:2px solid var(--color-accent);text-align:right;padding-right:1rem}.p4-em-store-after li{border-left:2px solid var(--color-accent);padding-left:1rem}.p4-em-store-states li>span{color:var(--color-ink);font-family:var(--font-machine);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase}.p4-em-store-states li>small{color:var(--color-ink-muted);font-family:var(--font-machine);font-size:var(--text-micro);line-height:1.55}.p4-em-foundations{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding-block:1.375rem 1.625rem;display:grid}.p4-em-foundations>div{flex-direction:column;gap:.5rem;min-width:0;display:flex}.p4-em-foundations strong{color:var(--color-ink-muted);font-family:var(--font-machine);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;font-weight:400}.p4-em-foundations>div>span{color:var(--color-ink-body);font-size:var(--text-fine);line-height:1.6}@media (width>=768px){.p4-em-col{padding-inline:2rem}}@media (width<=900px){.p4-em-phases{grid-template-rows:none;grid-template-columns:1fr}.p4-em-phase{flex-direction:column;grid-row:auto;display:flex}.p4-em-detail{grid-template-columns:1fr;gap:1.75rem}.p4-em-detail-figure{max-width:22rem}.p4-em-store-diagram{grid-template-columns:1fr;justify-items:center;gap:1.75rem}.p4-em-store-figure{order:-1;width:12.5rem}.p4-em-store-before li,.p4-em-store-after li{border-right:0;border-left:2px solid var(--color-accent);text-align:left;padding-left:1rem;padding-right:0}.p4-em-store-states{width:100%}.p4-em-foundations{grid-template-columns:1fr;gap:1.5rem}}@media (width<=640px){.p4-em-phase-cards{grid-template-columns:1fr}.p4-em-interfaces>span{width:auto}.p4-em-detail-figure{max-width:none}}.p4-trace-intro{color:var(--color-paper);background:var(--p4-slate)}.p4-trace-intro-inner{padding-top:clamp(4.5rem,8vw,7rem);padding-bottom:clamp(4.5rem,8vw,7rem)}.p4-trace-intro-inner>p:first-child{color:var(--color-raised);letter-spacing:.09em;opacity:.78;margin:0 0 1rem;font-size:.68rem}.p4-trace-intro h2{max-width:none;font-family:var(--font-serif);letter-spacing:-.03em;margin:0;font-size:2.5rem;font-weight:600;line-height:1.08}.p4-trace-intro-inner>p:last-child{max-width:45rem;color:var(--color-raised);font-family:var(--font-serif);opacity:.82;margin:1.5rem 0 0;font-size:1.0625rem;line-height:1.6}.p4-trace-workbench{border-bottom:1px solid var(--p4-rule);background:var(--p4-field)}.p4-trace{padding-top:clamp(3rem,6vw,5rem);padding-bottom:clamp(4.5rem,8vw,7rem)}.p4-transaction-tabs{border:1px solid var(--p4-rule-strong);background:var(--p4-paper)}.p4-transaction-tab-list{border-bottom:1px solid var(--p4-rule-strong);scrollbar-color:var(--p4-rule-strong) transparent;scrollbar-width:thin;grid-template-columns:repeat(4,minmax(10rem,1fr));display:grid;overflow-x:auto}.p4-transaction-tab-list button{border-right:1px solid var(--p4-rule);min-height:3.75rem;font-family:var(--font-machine);letter-spacing:.045em;text-align:center;text-transform:uppercase;padding:1rem 1.25rem;font-size:.73rem;font-weight:600}.p4-transaction-tab-list button:last-child{border-right:0}.p4-transaction-tab-list button:hover,.p4-transaction-tab-list button[aria-selected=true]{color:var(--color-ink);background:var(--p4-sunken)}.p4-transaction-tab-list button[aria-selected=true]{box-shadow:inset 0 -3px 0 var(--color-ink)}.p4-transaction-panel{min-height:34rem;padding:clamp(1.5rem,4vw,3.5rem)}.p4-transaction-heading{grid-template-columns:minmax(10rem,.35fr) 1fr;align-items:start;gap:2rem;display:grid}.p4-transaction-heading>p,.p4-em-detail-heading p{color:var(--color-ink-faint);letter-spacing:.08em;margin:0;font-size:.68rem}.p4-transaction-heading h3,.p4-em-detail-heading h3,.p4-em-store-statement{letter-spacing:-.01em;max-width:none;margin:0;font-size:1.25rem;font-weight:500;line-height:1.3}.p4-transaction-heading>div>p{max-width:42rem;color:var(--color-ink-muted);margin:.65rem 0 0;font-size:.9rem;line-height:1.55}.p4-trace-scroll{scrollbar-color:var(--p4-rule-strong) transparent;scrollbar-width:thin;margin-top:clamp(4rem,8vw,7rem);padding:.5rem 0 1.25rem;overflow-x:auto}.p4-trace-line{grid-template-columns:repeat(var(--trace-count), minmax(8.75rem, 1fr));min-width:calc(var(--trace-count) * 9.25rem);margin:0;padding:0;list-style:none;display:grid;position:relative}.p4-trace-line:before,.p4-trace-line:after{content:"";height:1px;position:absolute;top:.55rem;left:0}.p4-trace-line:before{background:var(--p4-rule-strong);right:0}.p4-trace-line:after{background:var(--color-ink);transform-origin:0;width:100%;transform:scaleX(1)}.p4-transaction-tabs.is-activating .p4-trace-line:after{animation:1.1s ease-out forwards p4-trace-draw}.p4-trace-line li{opacity:1;flex-direction:column;gap:.45rem;min-height:12rem;padding:2rem 1.5rem 0 0;display:flex;position:relative}.p4-transaction-tabs.is-activating .p4-trace-line li{animation:p4-trace-step .25s ease-out calc(var(--trace-step) * .105s) forwards}.p4-trace-node{z-index:1;border:2px solid var(--color-ink);background:var(--p4-paper);border-radius:50%;width:1.1rem;height:1.1rem;position:absolute;top:0;left:0}.p4-trace-line strong{font-family:var(--font-machine);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}.p4-trace-line li>span:last-child{max-width:16ch;color:var(--color-ink-muted);font-size:.82rem;line-height:1.45}@keyframes p4-trace-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes p4-trace-step{0%{opacity:.62}to{opacity:1}}.p4-extensions{display:block}.p4-inline-links{flex-wrap:wrap;gap:1rem 1.75rem;margin-top:2rem;display:flex}.p4-inline-links a{color:var(--color-ink);font-family:var(--font-machine);letter-spacing:.04em;text-underline-offset:.3rem;text-transform:uppercase;font-size:.75rem;font-weight:600;text-decoration-thickness:1px}.p4-ext-ledger{border-top:1px solid var(--p4-rule-strong);margin-top:clamp(3rem,6vw,4.5rem)}.p4-ext-head,.p4-ext-row{grid-template-columns:10rem minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:2.5rem;display:grid}.p4-ext-head{border-bottom:1px solid var(--p4-rule);padding-block:.875rem}.p4-ext-head>span,.p4-ext-cell-label{color:var(--color-ink-faint);font-family:var(--font-machine);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase}.p4-ext-row{border-bottom:1px solid var(--p4-rule);padding-block:1.5rem}.p4-ext-layer{flex-direction:column;gap:.75rem;display:flex}.p4-ext-row .p4-ext-layer>.extension-artwork{width:4rem;margin-inline:0}.p4-ext-layer>span{color:var(--color-ink);font-family:var(--font-machine);letter-spacing:.045em;text-transform:uppercase;font-size:.72rem;font-weight:600}.p4-ext-cell{flex-direction:column;gap:.625rem;min-width:0;display:flex}.p4-ext-cell-label{display:none}.p4-ext-cell p{max-width:none;color:var(--color-ink-body);font-size:var(--text-fine);text-wrap:pretty;margin:0;line-height:1.6}.p4-ext-chips{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.p4-ext-chips li{border:1px solid var(--color-edge);color:var(--color-ink-muted);background:var(--p4-field);font-family:var(--font-machine);border-radius:4px;padding:.125rem .375rem;font-size:10.5px;line-height:1.4}.p4-ext-runtime{grid-template-columns:minmax(0,17rem) minmax(0,1fr);gap:2rem 3rem;margin-top:2.5rem;display:grid}.p4-ext-runtime-statement{max-width:none;color:var(--color-ink);font-size:var(--text-fine);text-wrap:pretty;margin:0;font-weight:500;line-height:1.55}.p4-ext-runtime dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;margin:0;display:grid}.p4-ext-runtime dl>div{flex-direction:column;gap:.375rem;min-width:0;display:flex}.p4-ext-runtime dt{color:var(--color-ink-muted);font-family:var(--font-machine);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase}.p4-ext-runtime dd{color:var(--color-ink-body);font-size:var(--text-fine);margin:0;line-height:1.55}@media (width<=900px){.p4-ext-head{display:none}.p4-ext-row{grid-template-columns:minmax(0,1fr);row-gap:1.125rem}.p4-ext-layer{flex-direction:row;align-items:center}.p4-ext-cell-label{display:block}.p4-ext-runtime{grid-template-columns:minmax(0,1fr);gap:1.5rem}.p4-ext-runtime dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.p4-ext-runtime dl{grid-template-columns:minmax(0,1fr)}}.p4-directory{border-bottom:1px solid var(--p4-rule)}.p4-directory-grid{border-top:1px solid var(--p4-rule-strong);border-left:1px solid var(--p4-rule-strong);grid-template-columns:repeat(4,1fr);margin-top:clamp(3rem,6vw,5rem);display:grid}.p4-directory-grid a{border-right:1px solid var(--p4-rule-strong);border-bottom:1px solid var(--p4-rule-strong);min-height:12rem;color:var(--color-ink);justify-content:space-between;gap:1rem;padding:1.6rem;text-decoration:none;transition:background-color .15s;display:flex}.p4-directory-grid a:hover{background:var(--p4-sunken)}.p4-directory-grid a>span:first-child{flex-direction:column;gap:.75rem;display:flex}.p4-directory-grid strong{font-family:var(--font-machine);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.p4-directory-grid small{color:var(--color-ink-muted);font-size:.9rem;line-height:1.5}.p4-directory-arrow{color:var(--color-ink-faint);font-family:var(--font-machine);transition:transform .15s}.p4-directory-grid a:hover .p4-directory-arrow{transform:translate(.2rem)}@media (width>=768px){.p4-masthead h1{font-size:4.25rem}.p4-lead{font-size:1.25rem}.p4-trace-intro h2{font-size:3.25rem}.p4-transaction-heading h3{font-size:1.5rem}}@media (width>=1100px){.p4-architecture{width:min(80rem,100vw - 4rem);margin-left:50%;transform:translate(-50%)}}@media (width<=900px){.p4-directory-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.p4-hero{padding-top:4.5rem;padding-bottom:4rem}.p4-lead{margin-top:1.5rem}.p4-actions{flex-direction:column;align-items:stretch}.p4-actions a{text-align:center;justify-content:center}.p4-flow-wide{display:none}.p4-flow-tall{display:block}.p4-scroll-hint{color:var(--color-ink-faint);font-family:var(--font-machine);letter-spacing:.055em;text-transform:uppercase;margin:1rem 0 .25rem;font-size:.68rem;display:block}.p4-extensions,.p4-directory{padding-top:4.5rem;padding-bottom:4.5rem}.p4-engines{padding-top:4.5rem;padding-bottom:3rem}.p4-transaction-heading{grid-template-columns:1fr;gap:2rem}.p4-transaction-panel{min-height:38rem}.p4-directory-grid{border-left:0;grid-template-columns:1fr}.p4-directory-grid a{border-right:0;min-height:0;padding:1rem 0}}@media (prefers-reduced-motion:reduce){.p4-packets{display:none}.p4-transaction-tabs.is-activating .p4-trace-line:after,.p4-transaction-tabs.is-activating .p4-trace-line li{animation:none}.p4-trace-line:after{transform:scaleX(1)}.p4-trace-line li{opacity:1}}
