@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/archivo-latin-400-normal.C81ewxNO.woff2)format("woff2"),url(/_astro/archivo-latin-400-normal.Bl602Mgc.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/archivo-latin-500-normal.CGugC8dq.woff2)format("woff2"),url(/_astro/archivo-latin-500-normal.pkzA7jw9.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/archivo-latin-600-normal.3BBy0ZsW.woff2)format("woff2"),url(/_astro/archivo-latin-600-normal.DwYieO8P.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}:root{--paper:#f2f5f6;--panel:#fff;--ink:#16212b;--ink-soft:#5b6975;--ink-faint:#8d9aa4;--rule:#d5dee3;--rule-strong:#b8c5cc;--link:#21528f;--state-ready:#1f7a54;--state-pending:#9aa6ae;--state-flag:#b4342a;--state-major:#b5721e;--rail:8.5rem;--measure:66ch;--gap:1.5rem;--pad-x:clamp(1.25rem, 5vw, 4.5rem);--t-xs:.75rem;--t-sm:.8125rem;--t-base:1.0625rem;--t-md:1.1875rem;--t-lg:1.5rem;--t-xl:2rem;--t-display:clamp(2.4rem, 6.2vw, 4.15rem);--sans:"Archivo", "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--t-base);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}h1,h2,h3{letter-spacing:-.022em;text-wrap:balance;margin:0;font-weight:600;line-height:1.1}p{max-width:var(--measure);margin:0}a{color:var(--link);text-underline-offset:.18em;text-decoration:underline 1px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:1px}img{max-width:100%;height:auto;display:block}ul,ol{margin:0;padding:0}.wrap{max-width:74rem;padding-inline:var(--pad-x);margin:0 auto}.site-head{border-bottom:1px solid var(--rule);background:var(--panel)}.site-head__inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 2rem;padding-block:1.25rem;display:flex}.site-head__name{font-size:var(--t-md);letter-spacing:-.02em;color:var(--ink);font-weight:600;text-decoration:none}.site-head__nav{font-size:var(--t-sm);gap:1.5rem;display:flex}.site-head__nav a{color:var(--ink-soft);text-decoration:none}.site-head__nav a:hover{color:var(--ink);text-underline-offset:.2em;text-decoration:underline}.site-foot{border-top:1px solid var(--rule);font-size:var(--t-sm);color:var(--ink-soft);margin-top:5rem;padding-block:2.25rem 3.5rem}.site-foot p{max-width:none}.band{border-top:1px solid var(--rule);padding-block:3.5rem}.band--open{border-top:0}.band__grid{gap:1rem var(--gap);grid-template-columns:1fr;display:grid}.band__label{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);letter-spacing:.04em;padding-top:.35rem}@media (width>=56rem){.band__grid{grid-template-columns:var(--rail) minmax(0, 1fr)}}.hero{padding-block:clamp(3.5rem,9vw,6.5rem) 3rem}.hero__title{font-size:var(--t-display);max-width:24ch;font-weight:600}.hero__lede{font-size:var(--t-md);color:var(--ink-soft);max-width:56ch;margin-top:1.75rem}.hero__actions{font-size:var(--t-sm);flex-wrap:wrap;align-items:center;gap:.75rem 1.75rem;margin-top:2.25rem;display:flex}.hero__cta{background:var(--ink);color:var(--paper);padding:.7rem 1.35rem;font-weight:500;text-decoration:none;display:inline-block}.hero__cta:hover{background:var(--link);text-decoration:none}.coverage{border:1px solid var(--rule-strong);background:var(--panel);grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));margin-top:3.5rem;display:grid}.coverage__cell{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:var(--t-sm);padding:1.1rem 1rem}.coverage__cell:last-child{border-right:0}.coverage__mark{color:var(--state-ready);font-size:var(--t-xs);margin-top:.3rem;display:block}.coverage__note{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);border-bottom:0;border-right:0;grid-column:1/-1;padding:.85rem 1rem}.services{gap:2.25rem;display:grid}@media (width>=44rem){.services{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 3rem}}.service__title{font-size:var(--t-md);font-weight:600}.service__body{color:var(--ink-soft);font-size:var(--t-sm);margin-top:.6rem;line-height:1.65}.work{gap:0;display:grid}.work__item{border-top:1px solid var(--rule);padding-block:1.75rem}.work__item:first-child{border-top:0;padding-top:0}.work__meta{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);margin-bottom:.5rem}.work__title{font-size:var(--t-lg);max-width:24ch;font-weight:600}.work__title a{color:var(--ink);text-decoration:none}.work__title a:hover{color:var(--link);text-underline-offset:.15em;text-decoration:underline}.work__summary{color:var(--ink-soft);font-size:var(--t-sm);margin-top:.7rem}.deliverables{border-top:1px solid var(--rule);gap:0;display:grid}.deliverable{border-bottom:1px solid var(--rule);align-items:baseline;gap:.35rem 1.5rem;padding-block:1.4rem;display:grid}@media (width>=48rem){.deliverable{grid-template-columns:minmax(0,20rem) minmax(0,1fr) 6rem}}.deliverable__name{font-weight:600;font-size:var(--t-sm)}.deliverable__body{color:var(--ink-soft);font-size:var(--t-sm);line-height:1.6}.deliverable__state{font-family:var(--mono);font-size:var(--t-xs);color:var(--state-pending)}.deliverable__state[data-state=ready]{color:var(--state-ready)}.deliverable[data-state=pending] .deliverable__name,.deliverable[data-state=pending] .deliverable__body{color:var(--ink-faint)}.study__meta{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint)}.study__title{max-width:20ch;margin-top:.9rem;font-size:clamp(2rem,4.6vw,3rem)}.study__summary{font-size:var(--t-md);color:var(--ink-soft);margin-top:1.5rem}.metrics{background:var(--rule);border:1px solid var(--rule);gap:1px;margin-top:3rem;display:grid}@media (width>=40rem){.metrics{grid-template-columns:repeat(3,1fr)}}.metric{background:var(--panel);padding:1.4rem 1.25rem}.metric__value{font-size:var(--t-xl);letter-spacing:-.03em;font-weight:600;line-height:1}.metric__label{font-size:var(--t-xs);color:var(--ink-soft);max-width:none;margin-top:.5rem}.prose p+p{margin-top:1rem}.steps{counter-reset:step;list-style:none}.steps li{counter-increment:step;padding-left:2.5rem;max-width:var(--measure);padding-block:.55rem;position:relative}.steps li:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);position:absolute;top:.65rem;left:0}.chips{flex-wrap:wrap;gap:.4rem;list-style:none;display:flex}.chips li{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-soft);border:1px solid var(--rule-strong);padding:.28rem .55rem}.figure{border:1px solid var(--rule-strong);background:var(--panel);margin:0}.figure__slot{aspect-ratio:16/9;text-align:center;font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);background:repeating-linear-gradient(-45deg,#0000 0 11px,#8d9aa41f 11px 12px);place-content:center;gap:.4rem;padding:1.5rem;display:grid}.figure figcaption{border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);padding:.75rem 1rem}.study__nav{border-top:1px solid var(--rule);font-size:var(--t-sm);margin-top:4rem;padding-top:1.5rem}.contact__line{font-size:var(--t-lg);letter-spacing:-.02em;font-weight:600}.contact__links{font-size:var(--t-sm);flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.5rem;list-style:none;display:flex}.stack-sm>*+*{margin-top:.75rem}.stack-md>*+*{margin-top:1.5rem}.stack-lg>*+*{margin-top:2.5rem}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.sample-flag{border-left:3px solid var(--rule-strong);color:var(--ink-soft);font-size:var(--t-sm);margin-top:2rem;padding:.15rem 0 .15rem 1rem}.scroller{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--t-sm);min-width:34rem}.table th{text-align:left;font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.04em;color:var(--ink-faint);border-bottom:1px solid var(--rule-strong);vertical-align:bottom;padding:.55rem 1rem .55rem 0;font-weight:500}.table td{border-bottom:1px solid var(--rule);vertical-align:top;padding:.7rem 1rem .7rem 0;line-height:1.5}.table td:last-child,.table th:last-child{padding-right:0}.table tbody tr:last-child td{border-bottom:0}.t-id{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-soft);white-space:nowrap}.sev{font-family:var(--mono);font-size:var(--t-xs);white-space:nowrap;color:var(--ink-soft)}.sev[data-level=blocker]{color:var(--state-flag)}.sev[data-level=major]{color:var(--state-major)}.sev[data-level=pass]{color:var(--state-ready)}.kv{font-size:var(--t-sm);gap:.3rem 1.5rem;margin:0;display:grid}@media (width>=40rem){.kv{grid-template-columns:8.5rem minmax(0,1fr)}}.kv dt{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-faint);padding-top:.15rem}.kv dd{margin:0}.defect{border-top:1px solid var(--rule);margin-top:1.75rem;padding-top:1.75rem}.defect:first-child{border-top:0;margin-top:0;padding-top:0}.defect__head{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:.9rem;display:flex}.defect__title{font-size:var(--t-md);max-width:46ch;font-weight:600}.code{background:var(--panel);border:1px solid var(--rule);font-family:var(--mono);font-size:var(--t-xs);color:var(--ink);margin:0;padding:1rem 1.15rem;line-height:1.65;overflow-x:auto}.bullets{max-width:var(--measure);list-style:none}.bullets li{padding-left:1.15rem;font-size:var(--t-sm);padding-block:.3rem;line-height:1.6;position:relative}.bullets li:before{content:"";background:var(--rule-strong);width:5px;height:1px;position:absolute;top:.95rem;left:0}
