@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-v22-latin-600.woff2)format("woff2")}body:has(.writeup){background:#fff}.writeup{--wu-ink:#1c2327;--wu-head:#10191e;--wu-muted:#59636a;--wu-rule:#e3e6e8;--wu-tint:#f5f6f2;--wu-accent:#4b5f36;--wu-accent-bg:#eef1e8;--wu-navy:#142430;--wu-olivine:#a0b389;--wu-serif:Charter, "Bitstream Charter", "Sitka Text", Cambria, "Iowan Old Style", Georgia, serif;--wu-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--wu-display:"Space Grotesk", var(--wu-sans);--wu-text-w:720px;--wu-wide-w:1120px;--wu-gutter:clamp(1.25rem, 4vw, 2.5rem);min-height:100vh;color:var(--wu-ink);font-family:var(--wu-serif);background:#fff;font-size:1.125rem;line-height:1.7}.writeup ::selection{background:var(--wu-accent-bg);color:var(--wu-head)}.writeup a{color:var(--wu-accent);text-underline-offset:3px;text-decoration:underline}.writeup a:hover{color:var(--wu-head)}.writeup :focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #2f5e8c}.writeup img{max-width:100%;height:auto;display:block}.writeup b{color:var(--wu-head);font-weight:700}.writeup h1,.writeup h2,.writeup h3{font-family:var(--wu-display);color:var(--wu-head);font-weight:600}.writeup .wu-btn{background:var(--wu-accent);color:#fff;font-family:var(--wu-sans);border-radius:999px;padding:.8rem 1.3rem;font-size:.95rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .15s;display:inline-block}.writeup .wu-btn:hover{color:#fff;background:#3d4e2b}.writeup .wu-btn-small{padding:.6rem 1rem;font-size:.88rem}.wu-bar{border-bottom:1px solid var(--wu-rule)}.wu-bar-inner{max-width:var(--wu-wide-w);padding:.95rem var(--wu-gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;margin:0 auto;display:flex}.writeup .wu-brand{color:var(--wu-head);font-family:var(--wu-display);font-size:1.1rem;font-weight:600;text-decoration:none}.wu-bar-nav{font-family:var(--wu-sans);align-items:center;gap:1.5rem;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.writeup .wu-bar-nav a{color:var(--wu-muted);letter-spacing:.02em;font-weight:600;text-decoration:none}.writeup .wu-bar-nav a:hover{color:var(--wu-head)}.wu-head{max-width:880px;padding:clamp(2.5rem, 7vw, 5rem) var(--wu-gutter) clamp(2rem, 4vw, 2.75rem);margin:0 auto}.wu-kicker{font-family:var(--wu-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--wu-accent);margin:0 0 1rem;font-size:.8rem;font-weight:700}.writeup .wu-head h1{letter-spacing:-.015em;margin:0 0 1.25rem;font-size:clamp(2.1rem,1.4rem + 3vw,3.5rem);line-height:1.08}.wu-dek{color:var(--wu-muted);margin:0 0 2rem;font-size:clamp(1.15rem,1rem + .5vw,1.35rem);line-height:1.55}.wu-meta{border-block:1px solid var(--wu-rule);font-family:var(--wu-sans);grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 1.5rem;margin:0;padding:1.25rem 0;display:grid}.wu-meta-wide{grid-column:1/-1}.wu-meta dt{letter-spacing:.12em;text-transform:uppercase;color:var(--wu-muted);font-size:.72rem;font-weight:700}.wu-meta dd{color:var(--wu-head);margin:.2rem 0 0;font-size:.95rem;line-height:1.45}.wu-fig{margin:2.25rem 0}.wu-fig-hero{max-width:var(--wu-wide-w);padding:0 var(--wu-gutter);margin:0 auto}.wu-fig figcaption{font-family:var(--wu-sans);color:var(--wu-muted);margin-top:.75rem;font-size:.88rem;line-height:1.5}.wu-fig figcaption b{color:var(--wu-head)}.wu-browser{background:#fff;border:1px solid #d9dde0;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #10191e0f,0 24px 48px -28px #10191e59}.wu-browser-bar{background:#f3f4f5;border-bottom:1px solid #e3e6e8;align-items:center;gap:6px;height:34px;padding:0 12px;display:flex}.wu-browser-bar i{background:#d3d7da;border-radius:50%;width:10px;height:10px}.wu-browser-bar span{min-width:0;font-family:var(--wu-sans);color:var(--wu-muted);white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:6px;flex:1;margin-left:10px;padding:3px 10px;font-size:.75rem;line-height:1.4;overflow:hidden}.writeup .wu-browser img{width:100%}.writeup .wu-shot{border:1px solid var(--wu-rule);border-radius:10px;width:100%}.wu-phones{background:var(--wu-tint);border-radius:14px;grid-template-columns:repeat(2,minmax(0,250px));justify-content:center;gap:clamp(1rem,4vw,2.5rem);padding:1.5rem;display:grid}.writeup .wu-phone{border:7px solid #15191c;border-radius:28px;width:100%;box-shadow:0 18px 36px -22px #10191e8c}.wu-renders{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.wu-glance{max-width:var(--wu-wide-w);padding:0 var(--wu-gutter);grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:clamp(2.5rem,6vw,4rem) auto 0;display:grid}.wu-glance>div{background:var(--wu-tint);border-radius:14px;padding:1.5rem}.writeup .wu-glance h2{letter-spacing:.12em;text-transform:uppercase;color:var(--wu-accent);margin:0 0 .5rem;font-size:.8rem}.wu-glance p{margin:0;font-size:1.02rem;line-height:1.6}.wu-doc{max-width:var(--wu-wide-w);padding:clamp(2.5rem, 6vw, 4.5rem) var(--wu-gutter) clamp(3rem, 7vw, 5rem);grid-template-columns:210px minmax(0, var(--wu-text-w));justify-content:space-between;gap:3.5rem;margin:0 auto;display:grid}.wu-toc{font-family:var(--wu-sans);align-self:start;font-size:.9rem;position:sticky;top:1.5rem}.wu-toc-title{letter-spacing:.12em;text-transform:uppercase;color:var(--wu-muted);margin:0 0 .75rem;font-size:.72rem;font-weight:700}.wu-toc ol{border-left:2px solid var(--wu-rule);counter-reset:wu-toc;margin:0 0 1.5rem;padding:0;list-style:none}.wu-toc li{counter-increment:wu-toc}.writeup .wu-toc ol a{color:var(--wu-muted);border-left:2px solid #0000;margin-left:-2px;padding:.35rem 0 .35rem .9rem;line-height:1.35;text-decoration:none;display:block}.wu-toc ol a:before{content:counter(wu-toc, decimal-leading-zero) "  ";color:#9aa3a9;font-variant-numeric:tabular-nums;white-space:pre}.writeup .wu-toc ol a:hover{color:var(--wu-head)}.writeup .wu-toc ol a.wu-on{color:var(--wu-head);border-left-color:var(--wu-accent);font-weight:600}.writeup .wu-toc-cta{font-size:.88rem}.wu-body{min-width:0}.wu-body section{scroll-margin-top:1.5rem}.wu-body section+section{margin-top:clamp(3rem,6vw,4.5rem)}.writeup .wu-body h2{letter-spacing:-.01em;align-items:baseline;gap:.9rem;margin:0 0 1.25rem;font-size:clamp(1.6rem,1.3rem + 1.2vw,2.1rem);line-height:1.15;display:flex}.wu-num{color:var(--wu-accent);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:.55em}.writeup .wu-body h3{margin:2.5rem 0 .75rem;font-size:1.3rem;line-height:1.25}.wu-body p{margin:0 0 1.1rem}.wu-tells{margin:0 0 1.25rem;padding-left:1.25rem;list-style:outside}.wu-tells li{margin-bottom:.5rem;padding-left:.25rem}.wu-checks{margin:0 0 1.25rem;padding:0;list-style:none}.wu-checks li{margin-bottom:.5rem;padding-left:1.6rem;position:relative}.wu-checks li:before{content:"";border-left:2px solid var(--wu-accent);border-bottom:2px solid var(--wu-accent);width:.65rem;height:.35rem;position:absolute;top:.55em;left:.2rem;transform:rotate(-45deg)}.wu-pull{border-left:4px solid var(--wu-accent);margin:.5rem 0 1.75rem;padding:.25rem 0 .25rem 1.5rem}.wu-pull p{font-family:var(--wu-display);color:var(--wu-head);margin:0;font-size:clamp(1.5rem,1.2rem + 1.3vw,2rem);font-weight:600;line-height:1.2}.wu-rules{margin:0}.wu-rules dt{color:var(--wu-head);margin-top:1.1rem;font-weight:700}.wu-rules dd{margin:.15rem 0 0}.wu-pattern{border-left:3px solid var(--wu-accent);background:var(--wu-accent-bg);border-radius:0 12px 12px 0;margin:1.25rem 0 0;padding:1.1rem 1.35rem}.wu-body .wu-pattern p{margin:0}.wu-body .wu-pattern .wu-pattern-label{font-family:var(--wu-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--wu-accent);margin:0 0 .3rem;font-size:.72rem;font-weight:700}.wu-flow{background:var(--wu-tint);font-family:var(--wu-sans);border-radius:14px;margin:0;padding:1.25rem;font-size:.97rem;line-height:1.5;list-style:none}.wu-flow li{grid-template-columns:2rem minmax(0,1fr) auto;align-items:start;gap:.9rem;padding:.8rem 0;display:grid}.wu-flow li+li{border-top:1px solid #e2e5df}.wu-flow-n{border:1.5px solid var(--wu-accent);width:2rem;height:2rem;color:var(--wu-accent);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:inline-flex}.wu-flow-me .wu-flow-n{background:var(--wu-accent);color:#fff}.wu-flow li>div{padding-top:.2rem}.wu-tag{white-space:nowrap;color:var(--wu-accent);background:#fff;border:1px solid #c9d1bd;border-radius:999px;margin-top:.25rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.wu-flow-me .wu-tag{border-color:var(--wu-accent);background:var(--wu-accent);color:#fff}.wu-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0 0 1.5rem;display:grid}.wu-results>div{border:1px solid var(--wu-rule);border-radius:14px;padding:1.25rem 1.35rem}.wu-body .wu-result-h{font-family:var(--wu-display);color:var(--wu-head);margin:0 0 .35rem;font-size:1.25rem;font-weight:600;line-height:1.2}.wu-body .wu-results p:not(.wu-result-h){margin:0;font-size:1rem;line-height:1.55}.wu-timeline{margin:0 0 1.5rem;padding:0;list-style:none}.wu-timeline li{border-top:1px solid var(--wu-rule);grid-template-columns:8.5rem minmax(0,1fr);gap:1rem;padding:.9rem 0;display:grid}.wu-timeline li:last-child{border-bottom:1px solid var(--wu-rule)}.wu-when{font-family:var(--wu-sans);letter-spacing:.04em;color:var(--wu-accent);padding-top:.2rem;font-size:.85rem;font-weight:700}.wu-stack{border-top:1px solid var(--wu-rule);font-family:var(--wu-sans);margin:0 0 2rem}.wu-stack>div{border-bottom:1px solid var(--wu-rule);grid-template-columns:7rem minmax(0,1fr);gap:.25rem 1.25rem;padding:.9rem 0;display:grid}.wu-stack dt{letter-spacing:.12em;text-transform:uppercase;color:var(--wu-muted);grid-row:span 2;padding-top:.15rem;font-size:.72rem;font-weight:700}.wu-stack dd{margin:0}.wu-stack .wu-stack-value{color:var(--wu-head);font-size:.98rem;font-weight:600}.wu-stack .wu-stack-detail{color:var(--wu-muted);font-size:.92rem;line-height:1.5}.wu-diagram{background:var(--wu-tint);border-radius:14px;padding:1rem;overflow-x:auto}.wu-diagram svg{width:100%;min-width:640px;height:auto;display:block}.wu-cta{background:var(--wu-navy);color:#c9d0d4;border-radius:18px;padding:clamp(1.5rem,4vw,2.25rem)}.writeup .wu-cta h3{color:#fff;margin:0 0 .6rem;font-size:clamp(1.4rem,1.2rem + 1vw,1.8rem)}.wu-body .wu-cta p{margin:0 0 1.4rem}.wu-cta-row{font-family:var(--wu-sans);flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;display:flex}.writeup .wu-btn-light{background:var(--wu-olivine);color:#14201a}.writeup .wu-btn-light:hover{color:#14201a;background:#b4c4a0}.writeup .wu-cta-link{color:#fff;font-size:.95rem;font-weight:600}.writeup .wu-cta-link:hover{color:var(--wu-olivine)}.wu-foot{border-top:1px solid var(--wu-rule);background:#fafaf8}.wu-foot-inner{max-width:var(--wu-wide-w);padding:1.75rem var(--wu-gutter);font-family:var(--wu-sans);color:var(--wu-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin:0 auto;font-size:.88rem;display:flex}.wu-foot-inner p{margin:0}.writeup .wu-foot-inner a{font-weight:600}@media (max-width:1020px){.wu-doc{max-width:calc(var(--wu-text-w) + 2 * var(--wu-gutter));grid-template-columns:minmax(0,1fr)}.wu-toc{display:none}}@media (max-width:760px){.wu-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.wu-glance,.wu-results{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.writeup{font-size:1.0625rem}.wu-flow{padding:.75rem 1rem}.wu-flow li{grid-template-columns:2rem minmax(0,1fr)}.wu-flow .wu-tag{grid-column:2;justify-self:start;margin-top:-.35rem}.wu-timeline li{grid-template-columns:minmax(0,1fr);gap:.2rem}.wu-stack>div{grid-template-columns:minmax(0,1fr)}.wu-stack dt{grid-row:auto}.wu-renders{grid-template-columns:repeat(2,minmax(0,1fr))}.wu-renders img:nth-child(3){display:none}.wu-phones{padding:1rem}.wu-foot-inner{flex-direction:column;align-items:flex-start}}@media print{.wu-bar-nav,.wu-toc,.wu-cta-row .wu-btn,.wu-foot{display:none}.wu-doc{padding-top:1rem;display:block}.wu-browser,.writeup .wu-phone{box-shadow:none}.wu-cta{color:var(--wu-ink);border:1px solid var(--wu-rule);background:0 0}.writeup .wu-cta h3,.writeup .wu-cta-link{color:var(--wu-head)}.wu-fig,.wu-results>div,.wu-flow li{break-inside:avoid}}
