@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_35220d84-module__9caRVG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_35220d84-module__9caRVG__variable{--font-inter:"Inter", "Inter Fallback"}
.rpub{--paper:#fbfbf8;--paper-2:#f3f3ef;--ink:#0e0f12;--ink-2:#44474e;--ink-3:#63666d;--hair:#0e0f1224;--hair-strong:#0e0f124d;--blue:#2272fc;--blue-ink:#1550ad;--blue-wash:#2272fc0f;--blue-hair:#2272fc57;--code-bg:#0d1119;--code-ink:#e4e8ef;--code-dim:#8b93a2;--ok-ink:#0b6b38;--stop-ink:#b42318;--code-del:#f0857a;--code-add:#8ab6ff;--f-sans:var(--font-inter), system-ui, -apple-system, sans-serif;--f-mono:var(--font-jb), ui-monospace, "SF Mono", monospace;--t-display:clamp(42px, 7.6vw, 6.9rem);--t-h2:clamp(30px, 3.5vw, 3.2rem);--t-h3:clamp(1.2rem, 1.55vw, 1.45rem);--t-lede:clamp(1.115rem, 1.4vw, 1.3rem);--t-body:1.0625rem;--t-small:.9375rem;--t-mono:.8125rem;--t-mono-sm:.75rem;--radius-card:8px;--shadow-card:0 1px 2px #0e0f120a, 0 4px 12px #0e0f120f;--ease-fast:.16s cubic-bezier(.25, .5, .25, 1);--container:1180px;--gutter:clamp(20px, 4.5vw, 64px);--sect:clamp(76px, 9.5vw, 132px);--header-h:64px;background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-size:var(--t-body);letter-spacing:-.008em;-webkit-font-smoothing:antialiased;scrollbar-color:var(--hair-strong) transparent;min-height:100svh;line-height:1.6;overflow-x:clip}html:has(.rpub){background:#fbfbf8}html:has(.rpub) body{background:#fbfbf8}html:has(.rpub){height:auto}html:has(.rpub) body{height:auto;min-height:100svh}.rpub :focus-visible{outline:2px solid var(--blue);outline-offset:3px}.rpub ::selection{color:var(--ink);background:#2272fc38}:where(.rpub) a{color:inherit;text-decoration:none}.pub-wrap{width:min(100% - 2 * var(--gutter), var(--container));margin-inline:auto}.pub-skip{z-index:100;background:var(--ink);color:#fff;align-items:center;min-height:40px;padding:0 14px;font-size:13px;font-weight:600;transition:transform .12s;display:inline-flex;position:fixed;top:10px;left:10px;transform:translateY(calc(-100% - 20px))}.pub-skip:focus-visible{transform:translateY(0)}.pub-header{z-index:70;-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);background:#fbfbf8eb;border-bottom:1px solid #0000;transition:border-color .18s;position:sticky;top:0}.pub-header-inner{min-height:var(--header-h);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.rpub[data-scrolled=true] .pub-header{border-bottom-color:var(--hair)}.pub-brand{letter-spacing:-.03em;align-items:center;gap:9px;width:fit-content;font-size:15px;font-weight:650;transition:color .14s;display:inline-flex}.pub-brand:hover,.pub-brand:focus-visible{color:var(--blue-ink)}.pub-brand img{object-fit:contain;display:block}.pub-nav{justify-content:center;gap:clamp(22px,2.6vw,42px);display:flex}.pub-nav a,.pub-actions>a:not(.pub-cta){color:var(--ink-2);font-size:13.5px;font-weight:530;transition:color .14s}.pub-nav a:hover,.pub-nav a:focus-visible,.pub-actions>a:not(.pub-cta):hover,.pub-actions>a:not(.pub-cta):focus-visible{color:var(--blue-ink)}.pub-actions{justify-content:flex-end;align-items:center;gap:22px;display:flex}.pub-cta{background:var(--ink);color:#fff;align-items:center;min-height:38px;padding:0 16px;font-size:13.5px;font-weight:560;transition:background .14s;display:inline-flex}.pub-cta:hover,.pub-cta:focus-visible{background:var(--blue-ink)}.pub-menu{display:none}@media (max-width:800px){.pub-nav,.pub-actions{display:none}.pub-header{grid-template-columns:auto 1fr auto}.pub-menu{justify-self:end;display:block}.pub-menu summary{border:1px solid var(--hair-strong);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;min-height:44px;padding:0 14px;font-size:13.5px;font-weight:560;list-style:none;display:inline-flex}.pub-menu summary:hover{border-color:var(--ink)}.pub-menu summary::-webkit-details-marker{display:none}.pub-menu[open] summary{background:var(--ink);border-color:var(--ink);color:#fff}.pub-menu nav{top:var(--header-h);padding:8px var(--gutter) 18px;background:var(--paper);border-bottom:1px solid var(--hair);display:grid;position:absolute;left:0;right:0}.pub-menu nav a{border-bottom:1px solid var(--hair);align-items:center;min-height:46px;font-size:16px;font-weight:540;display:flex}.pub-menu nav a:last-child{border-bottom:0}}.rpub h1,.rpub h2,.rpub h3{text-wrap:balance;margin:0;font-weight:560}.rpub h1{font-size:var(--t-display);letter-spacing:-.028em;line-height:.98}.rpub h2{font-size:var(--t-h2);letter-spacing:-.022em;line-height:1.05}.rpub h3{font-size:var(--t-h3);letter-spacing:-.012em;line-height:1.3}.rpub p{text-wrap:pretty;overflow-wrap:anywhere;margin:0}.rpub figcaption{overflow-wrap:anywhere}.pub-lede{font-size:var(--t-lede);color:var(--ink-2);max-width:34rem;line-height:1.55}.pub-body{max-width:40rem;color:var(--ink-2)}.pub-mono{font-family:var(--f-mono);font-size:var(--t-mono);letter-spacing:0}.pub-btn{background:var(--ink);color:#fff;letter-spacing:-.008em;min-height:46px;transition:background var(--ease-fast), transform 80ms ease;justify-content:center;align-items:center;padding:0 22px;font-size:15px;font-weight:560;display:inline-flex}.pub-btn:hover,.pub-btn:focus-visible{background:var(--blue-ink)}.pub-btn:active,.pub-cta:active{transform:translateY(1px)}.pub-btn-quiet{border:1px solid var(--hair-strong);min-height:46px;color:var(--ink);justify-content:center;align-items:center;padding:0 20px;font-size:15px;font-weight:540;transition:border-color .14s,color .14s;display:inline-flex}.pub-btn-quiet:hover,.pub-btn-quiet:focus-visible{border-color:var(--blue);color:var(--blue-ink)}.pub-link{min-height:44px;color:var(--blue-ink);transition:color var(--ease-fast);justify-self:start;align-items:center;gap:7px;font-size:15px;font-weight:560;display:inline-flex}.pub-link svg{transition:transform var(--ease-fast)}.pub-link:hover svg.pub-arrow-r,.pub-link:focus-visible svg.pub-arrow-r{transform:translate(3px)}.pub-link:hover svg.pub-arrow-d,.pub-link:focus-visible svg.pub-arrow-d{transform:translateY(3px)}.pub-link:hover,.pub-link:focus-visible{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.pub-note{font-size:var(--t-small);color:var(--ink-3);max-width:34rem}.pub-note a,.pub-inline-link{color:var(--blue-ink);text-underline-offset:3px;transition:color var(--ease-fast), text-decoration-color var(--ease-fast);-webkit-text-decoration:underline #1550ad66;text-decoration:underline #1550ad66}.pub-note a:hover,.pub-note a:focus-visible,.pub-inline-link:hover,.pub-inline-link:focus-visible{color:var(--ink);text-decoration-color:currentColor}.pub-section{padding-block:var(--sect);border-top:1px solid var(--hair)}.pub-section-head{gap:18px;max-width:44rem;margin-bottom:clamp(40px,5vw,64px);display:grid}.pub-hero{padding-block:clamp(84px,11vw,168px) clamp(72px,9vw,140px);position:relative}.pub-hero-grid{inset:0 max(var(--gutter), calc((100% - var(--container)) / 2));pointer-events:none;background-image:linear-gradient(to right, var(--hair) 1px, transparent 1px);opacity:.35;background-position:0 0;background-size:16.6667% 100%;position:absolute;-webkit-mask-image:linear-gradient(#0000,#000 12% 82%,#0000);mask-image:linear-gradient(#0000,#000 12% 82%,#0000)}.pub-hero-inner{gap:clamp(28px,4vw,44px);display:grid;position:relative}.pub-hero h1{max-width:17ch}.pub-hero-detail{justify-items:start;gap:26px;display:grid}.pub-hero-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}@media (min-width:1200px){.pub-hero-inner{grid-template-columns:minmax(0,1.9fr) minmax(340px,1fr);align-items:end;gap:clamp(40px,6vw,110px)}}.pub-hero-stack{gap:clamp(30px,4vw,52px);display:grid;position:relative}.pub-hero-stack h1{max-width:19ch}@media (min-width:1200px){.pub-hero-stack .pub-split{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}}.pub-record{gap:10px;margin:0;display:grid}.pub-record-table{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#fff;overflow:hidden}.pub-record-row{border-bottom:1px solid var(--hair);font-family:var(--f-mono);font-size:var(--t-mono);grid-template-columns:96px minmax(0,1.2fr) 64px minmax(0,.9fr) 76px;align-items:baseline;gap:8px 18px;padding:12px 16px;line-height:1.5;display:grid}.pub-record-row:last-child{border-bottom:0}.pub-record-row.is-head{color:var(--ink-3);font-size:var(--t-mono-sm);background:var(--paper-2)}.pub-record-row>span{font-size:14px}.pub-record-cost,.pub-record-time{text-align:right;justify-self:end}.pub-record-note{font-family:var(--f-sans);color:var(--ink-3);margin-top:4px;font-size:12.5px;display:block}.pub-record-none{color:var(--ink-3);font-size:12.5px}.pub-record-allowed{color:var(--ok-ink)}.pub-record-stopped{color:var(--stop-ink)}.pub-record figcaption,.pub-figcaption{font-family:var(--f-mono);font-size:var(--t-mono-sm);color:var(--ink-3);line-height:1.5}@media (max-width:640px){.pub-record-row{grid-template-columns:90px minmax(0,1fr) 70px}.pub-record-row>:nth-child(3),.pub-record-row>:nth-child(4){display:none}}.pub-code{gap:10px;min-width:0;margin:0;display:grid}.pub-code pre{background:var(--code-bg);color:var(--code-ink);font-family:var(--f-mono);font-size:var(--t-mono-sm);margin:0;padding:clamp(16px,2vw,24px) clamp(16px,2.2vw,26px);line-height:1.8;overflow-x:auto}.pub-code .tok-kw{color:#9db7e8}.pub-code .tok-str{color:#a8c7fa}.pub-code .tok-dim{color:var(--code-dim)}.pub-allowance-card{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#fff;grid-template-columns:minmax(0,1fr);align-content:start;gap:clamp(16px,2vw,22px);margin:0;padding:clamp(22px,2.8vw,32px);display:grid}.pub-allowance-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.pub-allowance-tag{border:1px solid var(--hair);color:var(--ink-3);border-radius:999px;padding:2px 9px;font-size:12px}.pub-allowance-title{font-size:var(--t-small);align-items:center;font-weight:620;display:inline-flex}.pub-allowance-figure{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.pub-allowance-sub{font-size:var(--t-small);color:var(--ink-2);margin-top:-8px}.pub-allowance-beat{opacity:0;color:var(--stop-ink);font-family:var(--f-mono);font-size:var(--t-mono-sm);background:#b4231814;border-radius:999px;padding:3px 9px;transition:opacity .3s ease-out,transform .3s ease-out;transform:translateY(4px)}.pub-allowance-beat.is-on{opacity:1;transform:none}.pub-allowance-ends{font-family:var(--f-mono);color:var(--ink-3);justify-content:space-between;margin-top:-10px;font-size:11px;display:flex}.pub-allowance-meter{border:1px solid var(--hair);background:var(--paper-2);border-radius:999px;height:6px;overflow:hidden}.pub-allowance-meter span{background:var(--blue);border-radius:999px;height:100%;display:block}.pub-allowance-foot{color:var(--ink-2);font-size:var(--t-small);line-height:1.55}.pub-rows{border-top:1px solid var(--hair);display:grid}.pub-row{gap:10px 40px;padding-block:clamp(24px,3vw,36px);display:grid;position:relative}.pub-row:after{content:"";background:var(--hair);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}.pub-row p{color:var(--ink-2);max-width:38rem}@media (min-width:760px){.pub-row{grid-template-columns:minmax(200px,.8fr) 1.6fr}}.pub-split{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(32px,4.5vw,56px);display:grid}@media (min-width:960px){.pub-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,6vw,96px)}}.pub-section.is-tight{padding-block:clamp(52px,6.5vw,88px)}.pub-company-body{gap:18px;display:grid}.pub-company-body>p{max-width:40rem;color:var(--ink-2)}.pub-excerpt{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);font-family:var(--f-mono);font-size:var(--t-mono);color:var(--ink-2);background:#fff;gap:6px;margin:0;padding:clamp(16px,2vw,22px);line-height:1.6;display:grid}.pub-excerpt code{color:var(--ink);margin-right:8px;font-weight:700}.pub-excerpt figcaption{font-size:var(--t-mono-sm);color:var(--ink-3);margin-top:8px}.pub-rigshot{gap:10px;margin:0;display:grid}.pub-rigshot img{border:1px solid var(--hair);border-radius:var(--radius-card);width:100%;height:auto;box-shadow:var(--shadow-card)}.pub-chip{font-family:var(--f-mono);font-size:var(--t-mono-sm);border-radius:5px;align-items:center;padding:2px 8px;line-height:1.5;display:inline-flex}.pub-chip.is-ok{color:var(--ok-ink);background:#0b6b381a}.pub-chip.is-blocked{color:var(--stop-ink);background:#b4231817}.pub-chip.is-reported{color:var(--blue-ink);background:#2272fc17}.pub-chip.is-observed{background:var(--paper-2);color:var(--ink-2);border:1px solid var(--hair)}.pub-chip.is-id{background:var(--paper-2);color:var(--ink-2);margin-left:10px}.pub-d2{justify-items:center;gap:0;margin:0;display:grid}.pub-d2-title{font-size:var(--t-body);justify-self:start;margin-bottom:16px;font-weight:620}.pub-d2-pill{border:1px solid var(--hair);font-size:var(--t-small);color:var(--ink-2);background:#fff;border-radius:999px;padding:8px 16px}.pub-d2-question{border:1px solid var(--blue-hair);border-radius:var(--radius-card);background:var(--blue-wash);box-shadow:var(--shadow-card);font-size:var(--t-h3);color:var(--ink);text-align:center;padding:14px 22px;font-weight:600}.pub-d2-arrow{color:var(--hair-strong);justify-items:center;padding:2px 0;display:grid;position:relative}.pub-d2-arrowlabel{white-space:nowrap;color:var(--ink-3);font-size:12px;font-weight:620;position:absolute;top:50%;left:calc(50% + 10px);transform:translateY(-50%)}.pub-d2-forkarrows,.pub-d2-joins{grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-items:center;gap:0 18px;width:100%;display:grid}.pub-d2-outcomes{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:0 18px;width:100%;display:grid}.pub-d2-outcome,.pub-d2-lane{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#fff;align-content:start;justify-items:start;gap:6px;padding:13px 16px;display:grid}.pub-d2-outcome.is-ok{border-left:3px solid var(--ok-ink)}.pub-d2-outcome.is-stop{border-left:3px solid var(--stop-ink)}.pub-d2-outcome strong,.pub-d2-lane strong{font-size:var(--t-small);font-weight:620}.pub-d2-outcome span,.pub-d2-lane span{color:var(--ink-2);font-size:14px;line-height:1.5}.pub-d2-outcome code{font-family:var(--f-mono);font-size:var(--t-mono-sm);color:var(--ink)}.pub-d2-bar{border:1px solid var(--hair-strong);border-radius:var(--radius-card);background:var(--paper-2);width:100%;font-size:var(--t-small);text-align:center;justify-items:center;gap:2px;padding:12px 16px;font-weight:620;display:grid}.pub-d2-bar.is-strong{background:var(--blue-wash);border-color:var(--blue-hair)}.pub-d2-bar span{color:var(--ink-2);font-size:13.5px;font-weight:460}.pub-d2-caption{font-size:var(--t-small);color:var(--ink-3);justify-self:start;margin-top:12px}@media (max-width:640px){.pub-d2-outcomes,.pub-d2-forkarrows,.pub-d2-joins{gap:0 8px}.pub-d2-outcome span,.pub-d2-lane span{font-size:13px}}.pub-price-card{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#fff;grid-template-columns:minmax(0,1fr);gap:clamp(18px,2.2vw,26px);padding:clamp(24px,3vw,36px);display:grid}.pub-price-figure{flex-wrap:wrap;align-items:baseline;gap:10px 16px;display:flex}.pub-price-amount{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:clamp(44px,4.4vw,4.4rem);font-weight:560;line-height:1}.pub-price-currency{vertical-align:.55em;margin-right:.06em;font-size:.52em;font-weight:600}.pub-price-unit{color:var(--ink-3);font-size:var(--t-small);line-height:1.45}.pub-price-includes{margin:0;padding:0;list-style:none;display:grid}.pub-price-includes li{border-top:1px solid var(--hair);color:var(--ink-2);font-size:var(--t-small);align-items:baseline;gap:12px;padding-block:13px;line-height:1.5;display:flex}.pub-price-includes li:before{content:"";background-color:var(--blue-ink);flex:none;align-self:center;width:15px;height:15px;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8.5 6.5 12 13 4.5' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8.5 6.5 12 13 4.5' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.pub-strip{justify-items:start;gap:24px;display:grid}.pub-strip h2{max-width:none}.pub-footer{border-top:1px solid var(--hair);background:var(--paper-2)}.pub-footer-inner{gap:44px;padding-block:clamp(52px,6vw,84px) 28px;display:grid}.pub-footer-brand{align-content:start;justify-items:start;gap:12px;display:grid}.pub-footer-brand>a{letter-spacing:-.03em;align-items:center;gap:9px;font-size:15px;font-weight:650;display:inline-flex}.pub-footer-brand p{color:var(--ink-3);font-size:var(--t-small)}.pub-footer-cols{grid-template-columns:repeat(auto-fit,minmax(150px,max-content));gap:40px 64px;display:grid}.pub-footer-cols>div{align-content:start;gap:2px;display:grid}.pub-footer-cols span{font-size:var(--t-small);color:var(--ink);margin-bottom:8px;font-weight:620}.pub-footer-cols a{min-height:32px;font-size:var(--t-small);color:var(--ink-2);align-items:center;transition:color .14s;display:inline-flex}.pub-footer-cols a:hover,.pub-footer-cols a:focus-visible{color:var(--blue-ink)}.pub-footer-legal{border-top:1px solid var(--hair);color:var(--ink-3);padding-block:18px 26px;font-size:13px}@media (min-width:860px){.pub-footer-inner{grid-template-columns:minmax(240px,1fr) auto;gap:80px}}.pub-page-hero{gap:22px;padding-block:clamp(84px,11vw,150px) clamp(48px,6vw,84px);display:grid}.pub-page-hero h1{max-width:14ch}.pub-page-sections{padding-bottom:var(--sect);gap:0;display:grid}.pub-page-section{border-top:1px solid var(--hair);grid-template-columns:minmax(0,1fr);gap:14px 48px;padding-block:clamp(28px,3.4vw,44px);display:grid}.pub-page-section h2{font-size:var(--t-h3);line-height:1.3}.pub-page-section>div{gap:12px;display:grid}.pub-page-section p,.pub-page-section li{color:var(--ink-2);max-width:42rem}.pub-page-section ul{gap:8px;margin:0;padding-left:1.2em;display:grid}@media (min-width:800px){.pub-page-section{grid-template-columns:minmax(180px,.7fr) 1.8fr}}.pub-record-stack{gap:22px;display:grid}.pub-fn-ref{color:var(--blue-ink);padding:0 1px;font-size:.7em;font-weight:700;text-decoration:none}.pub-fn-ref:hover,.pub-fn-ref:focus-visible{color:var(--ink);text-decoration:underline}.pub-fn-list{font-size:var(--t-small);color:var(--ink-2);gap:14px;margin:0;padding-left:1.3em;list-style:decimal;display:grid}.pub-fn-list li{padding-left:2px}.pub-fn-back{color:var(--blue-ink);margin-left:6px;font-size:.85em;text-decoration:none;display:inline-block}.pub-fn-back:hover,.pub-fn-back:focus-visible{color:var(--ink);text-decoration:underline}.pub-form{gap:22px;max-width:44rem;display:grid}.pub-form-grid{grid-template-columns:minmax(0,1fr);gap:16px 20px;display:grid}@media (min-width:720px){.pub-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pub-form-wide{grid-column:1/-1}}.pub-form-field{gap:7px;display:grid}.pub-form-field span{font-size:var(--t-small);font-weight:560}.pub-form-field input,.pub-form-field textarea{border:1px solid var(--hair-strong);min-height:44px;color:var(--ink);font:inherit;transition:border-color var(--ease-fast), box-shadow var(--ease-fast);background:#fff;border-radius:6px;padding:10px 13px;font-size:16px}.pub-form-field textarea{resize:vertical}.pub-form-field input:focus-visible,.pub-form-field textarea:focus-visible{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2272fc2e}.pub-copy{border:1px solid var(--hair-strong);color:var(--ink-2);font:inherit;cursor:pointer;transition:border-color var(--ease-fast), color var(--ease-fast);background:#fff;border-radius:5px;padding:2px 8px;font-size:13px}.pub-copy:hover,.pub-copy:focus-visible{border-color:var(--blue-ink);color:var(--blue-ink)}.pub-diagram{justify-items:center;gap:0;margin:0;display:grid}.pub-diagram-node{border:1px solid var(--hair);box-shadow:var(--shadow-card);font-family:var(--f-mono);font-size:var(--t-mono);color:var(--ink-2);text-align:center;background:#fff;border-radius:6px;max-width:34ch;padding:9px 14px;line-height:1.45}.pub-diagram-node-strong{color:var(--ink);border-color:var(--hair-strong)}.pub-diagram-stem{background:var(--hair-strong);width:1px;height:18px}.pub-diagram-forks{grid-template-columns:minmax(0,1fr) minmax(0,1fr);place-items:end center;gap:0 18px;width:100%;display:grid}@media (max-width:640px){.pub-diagram-node{font-size:var(--t-mono-sm);max-width:none}.pub-diagram-forks{gap:0 10px}}.pub-diagram-branch{justify-items:center;gap:0;display:grid}.pub-diagram-merge{border-right:1px solid var(--hair-strong);border-bottom:1px solid var(--hair-strong);border-left:1px solid var(--hair-strong);border-radius:0 0 8px 8px;width:60%;height:18px}.pub-diagram-bar{border:1px solid var(--hair-strong);background:var(--paper-2);width:100%;font-family:var(--f-mono);font-size:var(--t-mono);text-align:center;color:var(--ink);border-radius:6px;margin-top:14px;padding:10px 14px}.pub-d2-node-plain{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);font-size:var(--t-small);color:var(--ink);text-align:center;background:#fff;padding:10px 16px;font-weight:600}.pub-d2-node-plain.is-outside{color:var(--ink-2);box-shadow:none;border-style:dashed;font-weight:540}.pub-boundary{border:1px solid var(--blue-hair);border-radius:var(--radius-card);background:var(--blue-wash);justify-items:center;gap:12px;width:100%;padding:26px 18px 18px;display:grid;position:relative}.pub-boundary-label{background:var(--paper);color:var(--blue-ink);padding:0 7px;font-size:12px;font-weight:620;position:absolute;top:-9px;left:14px}.pub-boundary-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pub-boundary-gap{height:26px}.pub-ops-row{border-bottom:1px solid var(--hair);grid-template-columns:110px 1fr;align-items:center;gap:18px;padding:12px 16px;display:grid}.pub-ops-row:last-child{border-bottom:0}.pub-ops-row>code:first-child{font-family:var(--f-mono);font-size:var(--t-mono);color:var(--ink);font-weight:700}.pub-ops-row .pub-chip{justify-self:start}.pub-ops-note{color:var(--ink-2);font-size:13.5px}.pub-pricing-strip{gap:14px;margin:clamp(36px,4vw,52px) 0 0;display:grid}.pub-pricing-groups{flex-wrap:wrap;align-items:start;gap:18px 34px;display:flex}.pub-pricing-group{justify-items:start;gap:9px;display:grid}.pub-pricing-grouplabel{color:var(--ink-2);font-size:13.5px}.pub-pricing-blocks{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pub-pblock{min-width:36px;height:36px;font-family:var(--f-mono);font-size:var(--t-mono);border-radius:6px;justify-content:center;align-items:center;padding-inline:6px;display:inline-flex;position:relative}.pub-pblock i{border-radius:999px;padding:1px 5px;font-size:10px;font-style:normal;font-weight:700;position:absolute;top:-7px;right:-7px}.pub-pblock.is-free{border:1px solid var(--hair-strong);color:var(--ink-2);background:#fff}.pub-pblock.is-paid{border:1px solid var(--blue-hair);background:var(--blue-wash);color:var(--blue-ink)}.pub-pblock.is-paid i{background:var(--blue-ink);color:#fff}.pub-pblock.is-stopped{border:1px dashed var(--hair-strong);color:var(--ink-3);background:0 0}.pub-pblock.is-stopped i{background:var(--paper-2);border:1px solid var(--hair-strong);color:var(--ink-2)}.rpub [data-reveal].pre{opacity:0}.rpub [data-reveal].is-in{opacity:1;transition:opacity .46s cubic-bezier(.2,.7,.2,1)}.rpub [data-reveal].pre>*{transform:translateY(10px)}.rpub [data-reveal].is-in>*{transition:transform .48s cubic-bezier(.16,1,.3,1);transform:none}.rpub [data-reveal].is-in>:nth-child(2){transition-delay:90ms}.rpub [data-reveal].is-in>:nth-child(3){transition-delay:.18s}.rpub [data-reveal].is-in>:nth-child(4){transition-delay:.27s}.rpub [data-reveal].is-in>:nth-child(5){transition-delay:.36s}.rpub [data-reveal].is-in>:nth-child(6){transition-delay:.45s}.rpub [data-reveal].pre .pub-record-row{opacity:0;transform:translateY(6px)}.rpub [data-reveal].is-in .pub-record-row{opacity:1;transition:opacity .32s ease-out,transform .32s cubic-bezier(.16,1,.3,1);transform:none}.rpub [data-reveal].is-in .pub-record-row:nth-child(2){transition-delay:.11s}.rpub [data-reveal].is-in .pub-record-row:nth-child(3){transition-delay:.22s}.rpub [data-reveal].is-in .pub-record-row:nth-child(4){transition-delay:.33s}.rpub [data-reveal].is-in .pub-record-row:has(.pub-chip.is-blocked){animation:1.3s ease-out .6s both pub-block-tint}@keyframes pub-block-tint{0%{background:#b4231812}55%{background:#b4231812}to{background:0 0}}.rpub [data-reveal].pre .pub-row:after{transform:scaleX(0)}.rpub [data-reveal].is-in .pub-row:after{transition:transform .6s cubic-bezier(.16,1,.3,1);transform:scaleX(1)}.rpub [data-reveal].is-in .pub-row:nth-child(2):after{transition-delay:.1s}.rpub [data-reveal].is-in .pub-row:nth-child(3):after{transition-delay:.2s}.rpub [data-reveal].is-in .pub-row:nth-child(4):after{transition-delay:.3s}.rpub [data-reveal].pre .pub-price-includes li{opacity:0;transform:translateY(6px)}.rpub [data-reveal].is-in .pub-price-includes li{opacity:1;transition:opacity .3s ease-out,transform .3s cubic-bezier(.16,1,.3,1);transform:none}.rpub [data-reveal].is-in .pub-price-includes li:before{opacity:0;animation:.24s ease-out both pub-check-in}.rpub [data-reveal].is-in .pub-price-includes li:first-child{transition-delay:.12s}.rpub [data-reveal].is-in .pub-price-includes li:nth-child(2){transition-delay:.2s}.rpub [data-reveal].is-in .pub-price-includes li:nth-child(3){transition-delay:.28s}.rpub [data-reveal].is-in .pub-price-includes li:nth-child(4){transition-delay:.36s}.rpub [data-reveal].is-in .pub-price-includes li:first-child:before{animation-delay:.26s}.rpub [data-reveal].is-in .pub-price-includes li:nth-child(2):before{animation-delay:.34s}.rpub [data-reveal].is-in .pub-price-includes li:nth-child(3):before{animation-delay:.42s}.rpub [data-reveal].is-in .pub-price-includes li:nth-child(4):before{animation-delay:.5s}@keyframes pub-check-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.pub-hero h1,.pub-hero-detail{animation:.64s cubic-bezier(.2,.7,.2,1) both pub-enter}.pub-hero-detail{animation-delay:90ms}.pub-hero-actions{animation:.56s cubic-bezier(.2,.7,.2,1) .12s both pub-enter}.pub-hero-grid{transform-origin:top;animation:.75s cubic-bezier(.2,.7,.2,1) both pub-grid-draw}@keyframes pub-grid-draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes pub-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.pub-hero h1,.pub-hero-detail,.pub-hero-actions,.pub-hero-grid,.rpub [data-reveal].is-in .pub-price-includes li:before{opacity:1;animation:none;transform:none}.rpub [data-reveal].is-in .pub-record-row:has(.pub-record-stopped){opacity:1;animation:none;transform:none}.rpub [data-reveal].pre,.rpub [data-reveal].pre>*,.rpub [data-reveal].pre .pub-record-row,.rpub [data-reveal].pre .pub-price-includes li{opacity:1;transform:none}.rpub [data-reveal].pre .pub-row:after{transform:none}.rpub *{transition-duration:.01ms!important}}.rpub .pub-infra-title{font-size:var(--t-small);letter-spacing:.01em;color:var(--ink-3);margin-bottom:26px;font-weight:620}.pub-ticker{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 200px calc(100% - 200px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 200px calc(100% - 200px),#0000 100%)}.pub-ticker-track{width:max-content;animation:44s linear infinite pub-marquee;display:flex}.pub-ticker-track:hover{animation-play-state:paused}.pub-ticker-set{padding:0;gap:44px;margin:0;padding-right:44px;list-style:none;display:flex}@keyframes pub-marquee{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.pub-ticker{padding:0 var(--gutter);max-width:var(--container);margin:0 auto;-webkit-mask-image:none;mask-image:none}.pub-ticker-track{width:auto;animation:none}.pub-ticker-set{flex-wrap:wrap}.pub-ticker-set[aria-hidden=true]{display:none}}.pub-infra-item{color:var(--ink-3);white-space:nowrap;align-items:center;gap:8px;font-size:1rem;display:inline-flex}.pub-infra-item strong{color:var(--ink-2);font-weight:600}.pub-infra-item img{opacity:.75}.pub-infra-item.is-grouplabel{color:var(--ink-3);padding-left:24px;font-style:normal}.pub-d2-outcome.is-solo{width:min(340px,100%)}.pub-d2-providers{border:1px solid var(--hair);border-radius:var(--radius-card);max-width:360px;box-shadow:var(--shadow-card);background:#fff;flex-wrap:wrap;justify-content:center;gap:8px;padding:12px;display:flex}.pub-d2-provider{border:1px solid var(--hair);font-family:var(--f-mono);font-size:var(--t-mono-sm);color:var(--ink-2);border-radius:5px;align-items:center;gap:6px;padding:4px 9px;display:inline-flex}.pub-infra-item.is-model{align-items:center;gap:6px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.pub-header{background:var(--paper)}}.pub-nav a[aria-current=page]{color:var(--ink);font-weight:600}.pub-allowance-tag{font-family:var(--f-mono);font-size:var(--t-mono-sm);color:var(--ink-3);background:0 0;border:0;padding:0}.pub-record-note{font-size:var(--t-mono-sm);font-family:var(--f-mono);color:var(--ink-3);grid-column:1/-1;padding-top:2px}.pub-price-currency{align-self:flex-start;margin-top:.18em}.pub-code{max-width:560px;margin:30px 0 0}.pub-code pre{border-radius:var(--radius-card);background:var(--code-bg);color:var(--code-ink);font-family:var(--f-mono);font-size:var(--t-mono);box-shadow:var(--shadow-card);margin:0;padding:18px 20px;line-height:1.7;overflow-x:auto}.pub-code figcaption{font-size:var(--t-small);color:var(--ink-3);max-width:56ch;margin-top:10px}.pub-boundary-gap{position:relative}.pub-boundary-gap:before{content:"×no path";white-space:nowrap;font-family:var(--f-mono);font-size:var(--t-mono-sm);color:var(--ink-3);background:var(--paper);padding:0 8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pub-ops-door{font-size:var(--t-small);color:var(--ink-2)}.pub-strip .pub-form{margin-left:auto;margin-right:auto}.pub-secnum{border:1px solid var(--hair-strong);width:26px;height:26px;font-family:var(--f-mono);font-size:var(--t-mono-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;border-radius:6px;flex:none;justify-content:center;align-items:center;font-weight:620;display:inline-flex}.pub-kicker{font-family:var(--f-mono);font-size:var(--t-mono-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-items:center;font-weight:620;display:inline-flex}.pub-section-kicker{align-items:center;gap:12px;margin-bottom:14px;display:flex}.pub-figure{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:8px;margin:4px 0 8px;display:flex}.pub-figure-amount{letter-spacing:-.02em;color:var(--ink);font-size:clamp(28px,3vw,2.4rem);font-weight:620;line-height:1.05}.pub-figure-total{font-size:var(--t-small);color:var(--ink-3)}.pub-figure.is-compact .pub-figure-amount{font-size:clamp(22px,2.2vw,1.7rem)}.pub-figure.is-compact .pub-figure-total{font-size:var(--t-mono-sm)}.pub-btn-blue{background:var(--blue);color:#fff;letter-spacing:-.008em;cursor:pointer;min-height:46px;transition:background var(--ease-fast), transform 80ms ease;border:none;justify-content:center;align-items:center;padding:0 22px;font-family:inherit;font-size:15px;font-weight:560;display:inline-flex}.pub-btn-blue:hover,.pub-btn-blue:focus-visible{background:var(--blue-ink)}.pub-btn-blue:active{transform:translateY(1px)}.pub-btn-blue:disabled{background:var(--ink-3);cursor:not-allowed}.pub-client-card{border:1px solid var(--hair);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#fff;align-content:start;gap:16px;padding:clamp(20px,2.4vw,28px);display:grid}.pub-client-card.is-active{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-wash), var(--shadow-card)}.pub-client-activity{font-family:var(--f-mono);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px;display:grid}.pub-client-activity dt{font-size:var(--t-mono-sm);color:var(--ink-3);grid-row:1}.pub-client-activity dd{font-size:var(--t-mono);color:var(--ink);grid-row:2;margin:0}.pub-price-band{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.pub-price-band>*{border-left:1px solid var(--hair);padding:clamp(20px,2.4vw,30px) clamp(16px,2vw,24px)}.pub-price-band>:first-child{border-left:0}.pub-price-band-cta{align-items:center;display:flex}@media (max-width:960px){.pub-price-band{grid-template-columns:repeat(2,minmax(0,1fr))}.pub-price-band>*{border-left:0;border-top:1px solid var(--hair)}.pub-price-band>:nth-child(-n+2){border-top:0}.pub-price-band>.pub-price-band-cta{grid-column:1/-1}}@media (max-width:640px){.pub-price-band{grid-template-columns:minmax(0,1fr)}.pub-price-band>*{border-left:0}}.pub-trail-detail{background:var(--paper-2);font-family:var(--f-mono);grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 20px;padding:18px clamp(16px,2vw,24px) 22px;display:grid}.pub-trail-detail dt{font-size:var(--t-mono-sm);color:var(--ink-3);margin-bottom:4px}.pub-trail-detail dd{font-size:var(--t-mono);color:var(--ink);overflow-wrap:anywhere;margin:0}.pub-trail-detail .is-span2{grid-column:span 2}@media (max-width:640px){.pub-trail-detail{grid-template-columns:repeat(2,minmax(0,1fr))}}
