:root{--w3experts-royal-blue:#2c4bd5;--w3experts-charcoal:#2b2b2b;--w3experts-navy:#0b1220;--w3experts-cool-gray:#6b7280;--w3experts-border:#e5e7eb;--w3experts-purple:#6e55ef;--w3experts-orange:#df6218;--w3experts-logo-icon:var(--w3experts-royal-blue);--w3experts-logo-text:#000;--w3experts-font-heading:"Sora", system-ui, sans-serif;--w3experts-font-body:"Inter", system-ui, sans-serif;--w3experts-font-mono:"IBM Plex Mono", ui-monospace, monospace;--white:#fff;--mist:#f3f4f7;--line:var(--w3experts-border);--line-strong:#d1d5db;--ink:var(--w3experts-navy);--body:var(--w3experts-charcoal);--muted:var(--w3experts-cool-gray);--blue:var(--w3experts-royal-blue);--blue-deep:#2440be;--blue-soft:#e9edfb;--navy:var(--w3experts-navy);--navy-2:#121b2e;--navy-line:#ffffff17;--on-navy:#c9d1e3;--orange:var(--w3experts-orange);--orange-deep:#c8550f;--purple:var(--w3experts-purple);--ok:#16a34a;--err:#dc2626;--f-display:"Sora", "Sora Fallback", system-ui, sans-serif;--f-body:"Inter", "Inter Fallback", system-ui, sans-serif;--f-mono:"IBM Plex Mono", "IBM Plex Mono Fallback", ui-monospace, monospace;--wrap:1320px;--gut:clamp(20px, 4vw, 48px);--sec:clamp(72px, 10vw, 144px);--r:4px;--ease:cubic-bezier(.2, .7, .2, 1)}@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/sora-latin-700-normal.9waGdLWo.woff2)format("woff2")}@font-face{font-family:Sora Fallback;font-style:normal;font-weight:700;src:local(Arial Bold);size-adjust:109.385%;ascent-override:88.6778%;descent-override:26.5119%;line-gap-override:0%}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(/_astro/sora-latin-800-normal.2tKLL3qT.woff2)format("woff2")}@font-face{font-family:Sora Fallback;font-style:normal;font-weight:800;src:local(Arial Bold);size-adjust:110.335%;ascent-override:87.9139%;descent-override:26.2835%;line-gap-override:0%}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2")}@font-face{font-family:Inter Fallback;font-style:normal;font-weight:400;src:local(Arial);size-adjust:104.707%;ascent-override:92.52%;descent-override:23.0367%;line-gap-override:0%}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2")}@font-face{font-family:Inter Fallback;font-style:normal;font-weight:500;src:local(Arial);size-adjust:106.089%;ascent-override:91.315%;descent-override:22.7367%;line-gap-override:0%}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2")}@font-face{font-family:Inter Fallback;font-style:normal;font-weight:600;src:local(Arial Bold);size-adjust:103.013%;ascent-override:94.0416%;descent-override:23.4156%;line-gap-override:0%}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono Fallback;font-style:normal;font-weight:500;src:local(Courier New);size-adjust:99.9837%;ascent-override:102.517%;descent-override:27.5045%;line-gap-override:0%}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:optional;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono Fallback;font-style:normal;font-weight:600;src:local(Courier New Bold);size-adjust:99.9837%;ascent-override:102.517%;descent-override:27.5045%;line-gap-override:0%}@font-face{font-family:Sora Article;font-style:normal;font-weight:600 800;font-display:optional;src:url(/_astro/sora-latin-600-800.BmwCqOAR.woff2)format("woff2")}@font-face{font-family:Inter Article;font-style:normal;font-weight:400 600;font-display:optional;src:url(/_astro/inter-latin-400-600.Bv1U3R2i.woff2)format("woff2")}:root.article-fonts,:root.site-fonts{--f-display:"Sora Article", "Sora Fallback", system-ui, sans-serif;--f-body:"Inter Article", "Inter Fallback", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--white);color:var(--body);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-wrap:anywhere;margin:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.on-dark :focus-visible,.on-blue :focus-visible{outline-color:var(--white)}[hidden]{display:none!important}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{max-width:var(--wrap);padding:0 var(--gut);margin:0 auto}h1,h2,h3,h4{font-family:var(--f-display);color:var(--ink);letter-spacing:-.035em;margin:0;font-weight:700;line-height:1.02}.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4,.on-blue h1,.on-blue h2,.on-blue h3{color:var(--white)}.d1{letter-spacing:-.05em;font-size:clamp(46px,7.4vw,118px);font-weight:800;line-height:.94}.d2{letter-spacing:-.045em;font-size:clamp(38px,5.4vw,84px);font-weight:800;line-height:.98}.h2{letter-spacing:-.04em;font-size:clamp(32px,3.8vw,58px)}.h3{letter-spacing:-.03em;font-size:clamp(22px,2vw,30px);line-height:1.1}.lead{color:var(--body);max-width:56ch;font-size:clamp(18px,1.5vw,21px);line-height:1.55}.on-dark .lead,.on-dark p{color:var(--on-navy)}.blue{color:var(--blue)}.mono{font-family:var(--f-mono)}.num{font-family:var(--f-mono);font-feature-settings:"tnum";letter-spacing:-.02em}@keyframes pulse{70%{box-shadow:0 0 0 8px rgb(from var(--orange) r g b / 0%)}to{box-shadow:0 0 0 0 rgb(from var(--orange) r g b / 0%)}}@keyframes marq{to{transform:translate(-50%)}}@keyframes drop{0%{transform-origin:top;transform:scaleY(0)}50%{transform-origin:top;transform:scaleY(1)}51%{transform-origin:bottom}to{transform-origin:bottom;transform:scaleY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,:before,:after{transition:none!important;animation:none!important}}:root.sheet-open{overflow:hidden}@media (prefers-reduced-motion:no-preference){.rv.rv-ready{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(24px)}.rv.rv-ready.in{opacity:1;transform:none}}:root:root :where(.dot){background:var(--orange);width:8px;height:8px;box-shadow:0 0 0 0 rgb(from var(--orange) r g b / 60%);border-radius:50%;animation:2s infinite pulse;display:inline-block}:root:root :where(.topbar){background:var(--navy);color:var(--on-navy);font:500 12px/1 var(--f-mono);text-transform:uppercase}:root:root :where(.topbar .wrap){justify-content:space-between;gap:20px;padding-top:10px;padding-bottom:10px;display:flex}:root:root :where(.topbar a){color:var(--white);border-bottom:1px solid rgb(from var(--white) r g b / 35%)}@media (width<=640px){:root:root :where(.topbar .r){display:none}}:root:root :where(.tag){font:500 12px/1.2 var(--f-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.6em;display:inline-flex}:root:root :where(.tag b){white-space:nowrap;color:var(--blue);flex-shrink:0;font-weight:600}:root:root :where(.on-dark .tag){color:var(--muted)}:root:root :where(.on-dark .tag b){color:var(--white)}:root:root :where(.on-blue .tag){color:var(--on-navy)}:root:root :where(.on-blue .tag b){color:var(--white)}:root:root :where(.sec-head .tag){margin-bottom:22px}:root:root :where(.form .tag){color:var(--muted)}:root:root :where(.adj .tag){margin-bottom:auto}:root:root :where(.form .tag b){color:var(--blue)}:root:root :where(.hero-dark .hero-copy .tag){color:var(--muted)}:root:root :where(.hero-dark .tag b){color:var(--white)}:root:root :where(.band .tag){color:var(--muted)}:root:root :where(.band .tag b){color:var(--white)}:root:root .on-dark :where(.tag),:root:root .band :where(.tag){color:var(--on-navy)}:root:root .on-blue :where(.tag){color:var(--white)}:root:root .on-dark .form :where(.tag){color:var(--body)}:root:root :where(.mega){background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 30px 60px rgb(from var(--navy) r g b / 12%);display:none;position:absolute;top:100%;left:0;right:0}:root:root :where(.mega.open){display:block}:root:root :where(.mega .wrap){grid-template-columns:repeat(4,1fr) 1.25fr;align-items:stretch;gap:0;height:auto;padding-top:28px;padding-bottom:28px;display:grid}:root:root :where(.mega .col){border-left:1px solid var(--line);padding:0 22px}:root:root :where(.mega .col:first-child){border-left:0;padding-left:0}:root:root :where(.mega .col .tag){margin-bottom:14px}:root:root :where(.mega .col a){font:600 15px/1.3 var(--f-body);color:var(--ink);padding:8px 0;display:block}:root:root :where(.mega .col a span){font:400 13px/1.4 var(--f-body);color:var(--muted);display:block}:root:root :where(.mega .col a:hover){color:var(--blue)}:root:root :where(.mega .feat){background:var(--blue);color:var(--white);border-radius:var(--r);flex-direction:column;justify-content:space-between;gap:18px;padding:24px;display:flex}:root:root :where(.mega .feat h4){color:var(--white);font-size:24px}:root:root :where(.mega .feat p){color:var(--blue-soft);margin:0;font-size:14px}:root:root :where(.mega .feat strong){font-family:var(--f-display);font-size:24px;line-height:1.1}:root:root :where(.dd){display:inline-flex;position:relative}:root:root :where(.dd-menu){background:var(--white);border:1px solid var(--line);min-width:280px;box-shadow:0 30px 60px rgb(from var(--navy) r g b / 12%);z-index:60;padding:10px;display:none;position:absolute;top:100%;left:0}:root:root :where(.dd.open .dd-menu){display:block}:root:root :where(.dd-menu a){font:600 15px/1.3 var(--f-body);color:var(--ink);border-radius:3px;padding:10px 12px;display:block}:root:root :where(.dd-menu a span){font:400 13px/1.4 var(--f-body);color:var(--muted);display:block}:root:root :where(.dd-menu a:hover){background:var(--mist);color:var(--blue)}:root:root :where(.dd>summary){cursor:pointer;border-radius:var(--r);align-items:center;gap:6px;padding:10px 14px;font-size:15px;line-height:1;list-style:none;display:flex}:root:root :where(.dd>summary)::-webkit-details-marker{display:none}:root:root :where(.dd[open] .dd-menu){display:block}:root:root :where(.dd>summary:hover){background:var(--mist)}:root:root :where(.btn){border-radius:var(--r);min-height:52px;font:600 16px/1 var(--f-body);transition:background .2s, color .2s, border-color .2s, transform .2s var(--ease);white-space:normal;text-align:left;border:1px solid #0000;align-items:center;gap:12px;max-width:100%;padding:0 22px;display:inline-flex}:root:root :where(.btn .ar){transition:transform .25s var(--ease)}:root:root :where(.btn:hover .ar){transform:translate(4px)}:root:root :where(.btn-cta){background:var(--orange);color:var(--ink)}:root:root :where(.btn-cta:hover){background:rgb(from var(--orange) calc(r + 11) calc(g + 16) calc(b + 24))}:root:root :where(.btn-line){border-color:var(--ink);color:var(--ink);background:0 0}:root:root :where(.btn-line:hover){background:var(--ink);color:var(--white)}:root:root :where(.on-dark .btn-line),:root:root :where(.on-blue .btn-line){border-color:rgb(from var(--white) r g b / 55%);color:var(--white)}:root:root :where(.on-dark .btn-line:hover),:root:root :where(.on-blue .btn-line:hover){background:var(--white);color:var(--ink)}:root:root :where(.btn-sm){min-height:42px;padding:0 16px;font-size:15px}:root:root :where(.start .btn){justify-content:space-between;margin-top:auto}:root:root :where(.urlbox .btn),:root:root :where(.nl .btn){border-radius:0}:root:root :where(.tier .btn){justify-content:space-between;margin-top:auto}@media (width<=1100px){:root:root :where(.hdr-cta .btn-line){display:none}}@media (width<=640px){:root:root :where(.hdr-cta .btn-cta){display:none}}:root:root :where(.hero-dark .btn-line){border-color:rgb(from var(--white) r g b / 55%);color:var(--white)}:root:root :where(.hero-dark .btn-line:hover){background:var(--white);color:var(--ink)}@media (width<=640px){:root:root :where(.urlbox .btn){padding:0 14px}}:root:root :where(.btn:disabled){cursor:wait;opacity:.65}:root:root :where(.burger){border:1px solid var(--line-strong);border-radius:var(--r);background:0 0;justify-content:center;align-items:center;width:46px;height:46px;margin-left:auto;display:none}:root:root :where(.hdr){z-index:50;background:rgb(from var(--white) r g b / 92%);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .2s;position:sticky;top:0}:root:root :where(.hdr.scrolled){box-shadow:0 1px 0 var(--line), 0 10px 30px rgb(from var(--navy) r g b / 6%)}:root:root :where(.hdr>.wrap){align-items:center;gap:32px;height:76px;transition:height .2s;display:flex}:root:root :where(.hdr.scrolled>.wrap){height:64px}:root:root :where(.hdr .logo img){width:auto;height:30px}:root:root :where(.nav){gap:4px;margin-left:12px;display:flex}:root:root :where(.nav>a),:root:root :where(.nav>button){font:500 15px/1 var(--f-body);color:var(--ink);border-radius:var(--r);background:0 0;border:0;align-items:center;gap:6px;padding:10px 14px;display:inline-flex}:root:root :where(.nav>a:hover),:root:root :where(.nav>button:hover){background:var(--mist)}:root:root :where(.hdr-cta){align-items:center;gap:10px;margin-left:auto;display:flex}@media (width<=1100px){:root:root :where(.nav),:root:root :where(.hdr-cta .btn-line){display:none}:root:root :where(.burger){place-items:center;margin-left:0;display:grid}:root:root :where(.hdr-cta){margin-left:auto}}@media (width<=640px){:root:root :where(.hdr-cta .btn-cta){display:none}}:root:root :where(.nav>a.on),:root:root :where(.nav>button.on){box-shadow:inset 0 -2px 0 var(--blue)}:root:root :where(.nav .dd>button){font:500 15px/1 var(--f-body);color:var(--ink);border-radius:var(--r);background:0 0;border:0;align-items:center;gap:6px;padding:10px 14px;display:inline-flex}:root:root :where(.nav .dd>button:hover){background:var(--mist)}:root:root :where(.skip-link:focus){clip-path:none;background:var(--white);width:auto;height:auto;color:var(--ink);z-index:100;padding:12px;position:fixed;inset:8px auto auto 8px}.privacy-choice{color:var(--on-navy);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px;text-decoration:underline}:root:root :where(.ftr){background:var(--navy);color:var(--on-navy);padding:88px 0 32px;position:relative;overflow:hidden}:root:root :where(.ftr-top){border-bottom:1px solid var(--navy-line);grid-template-columns:1.4fr repeat(4,1fr);gap:32px;padding-bottom:56px;display:grid}:root:root :where(.ftr-top img){width:auto;height:32px;margin-bottom:22px}:root:root :where(.ftr-top p){max-width:34ch;margin:0 0 20px;font-size:15px}:root:root :where(.ftr h2){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--on-navy);letter-spacing:0;margin-bottom:16px}:root:root :where(.ftr ul){gap:10px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}:root:root :where(.ftr ul a){color:var(--white)}:root:root :where(.ftr ul a:hover){color:var(--on-navy)}:root:root :where(.ftr-big){border-bottom:1px solid var(--navy-line);padding:48px 0 24px}:root:root :where(.ftr-big img){opacity:.95;width:100%;height:auto}:root:root :where(.ftr-bot){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--on-navy);flex-wrap:wrap;justify-content:space-between;gap:20px;padding-top:24px;display:flex}:root:root :where(.ftr-bot a){color:var(--on-navy)}:root:root :where(.offices){flex-wrap:wrap;gap:28px;display:flex}:root:root :where(.offices span b){color:var(--white);font-weight:600}@media (width<=1100px){:root:root :where(.ftr-top){grid-template-columns:1fr 1fr}}@media (width<=640px){:root:root :where(.ftr-top){grid-template-columns:1fr}}:root:root :where(.ftr-growth){color:var(--on-navy);margin:24px 0 0;font-size:14px}:root:root :where(.ftr-growth a){color:var(--white);border-bottom:1px solid rgb(from var(--white) r g b / 40%)}.consent-banner[data-astro-cid-u6s5b3h2]{z-index:100;background:var(--white);color:var(--body);border-top:1px solid var(--ink);max-height:30dvh;padding:12px 20px;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.consent-banner[data-astro-cid-u6s5b3h2][hidden]{display:none}.consent-banner[data-astro-cid-u6s5b3h2] p[data-astro-cid-u6s5b3h2]{margin:0 0 8px;font-size:14px}.consent-actions[data-astro-cid-u6s5b3h2]{gap:8px;display:flex}.consent-actions[data-astro-cid-u6s5b3h2] button[data-astro-cid-u6s5b3h2]{border:1px solid var(--ink);min-height:32px;color:var(--ink);background:var(--white);cursor:pointer;border-radius:2px;padding:4px 12px}:root:root :where(.sheet){z-index:90;background:var(--navy);color:var(--white);padding:18px var(--gut) 40px;flex-direction:column;gap:22px;display:flex;position:fixed;inset:0;overflow-y:auto}:root:root :where(.sheet-top){justify-content:space-between;align-items:center;display:flex}:root:root :where(.sheet-top img){filter:brightness(0)invert();width:auto;height:24px}:root:root :where(.sheet-top button){border:1px solid rgb(from var(--white) r g b / 40%);color:var(--white);border-radius:var(--r);background:0 0;width:44px;height:44px}:root:root :where(.sheet nav){border-top:1px solid var(--navy-line);display:grid}:root:root :where(.sheet nav>a.top),:root:root :where(.sheet summary){font:700 24px/1 var(--f-display);letter-spacing:-.03em;color:var(--white);border-bottom:1px solid var(--navy-line);cursor:pointer;padding:18px 0;list-style:none;display:block}:root:root :where(.sheet summary)::-webkit-details-marker{display:none}:root:root :where(.sheet details a){font:500 17px var(--f-body);color:var(--on-navy);padding:11px 0 11px 16px;display:block}:root:root :where(.sheet details[open] summary){color:var(--on-navy)}:root:root :where(.sheet-cta){gap:10px;margin-top:auto;display:grid}@media (width<=640px){:root:root :where(.sheet nav>a.top),:root:root :where(.sheet summary){font-size:22px}}:root:root :where(.mcta){display:none}@media (width<=640px){:root:root :where(.mcta){z-index:60;box-shadow:0 20px 40px rgb(from var(--navy) r g b / 25%);justify-content:space-between;display:inline-flex;position:fixed;bottom:16px;left:16px;right:16px}}:root:root :where(.crumbs){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--muted);gap:10px;padding-top:28px;display:flex}:root:root :where(.crumbs a:hover){color:var(--blue)}:root:root :where(.page-hero .crumbs){margin-bottom:28px;padding-top:0}:root:root :where(.page-hero.dark .crumbs){color:var(--muted)}:root:root :where(.page-hero.dark .crumbs span:last-child){color:var(--white)!important}:root:root :where(.case-hero .crumbs),:root:root :where(.tool-hero .crumbs){color:var(--muted);margin-bottom:28px;padding-top:0}:root:root .on-dark :where(.crumbs,.crumbs a,.crumbs span){color:var(--on-navy)}:root:root .on-blue :where(.crumbs,.crumbs a,.crumbs span){color:var(--white)}:root:root :where([data-home-section]:not([data-home-section=hero]),[data-service]>section:not(:first-child),[data-page]>section:not(:first-child),[data-speed-page]>section:not(:first-child),.ftr){content-visibility:auto;contain-intrinsic-size:auto 900px}

:root:root :where(.ph picture){width:100%;height:100%;display:block}:root:root :where(.ph).duo{background:var(--blue)}:root:root :where(.ph.duo img){mix-blend-mode:luminosity;opacity:.92}:root:root :where(.ph).duo-navy{background:var(--navy)}:root:root :where(.ph.duo-navy img){mix-blend-mode:luminosity;opacity:.55}:root:root :where(.ph.fade):after{content:"";background:linear-gradient(180deg, rgb(from var(--navy) r g b / 0%) 40%, rgb(from var(--navy) r g b / 85%));position:absolute;inset:0}:root:root :where(.ph .cap){z-index:2;font:500 11px/1.4 var(--f-mono);text-transform:uppercase;color:var(--white);background:rgb(from var(--navy) r g b / 70%);border-radius:2px;max-width:70%;padding:8px 10px;position:absolute;bottom:18px;left:18px}:root:root :where(.ph .cap b){color:var(--white);font-weight:600}:root:root :where(.ph-hero .ph){height:min(620px,70vh);min-height:420px}:root:root :where(.ph-strip .ph){height:100%}:root:root :where(.band .ph){position:absolute;inset:0}:root:root :where(.band .ph):after{content:"";background:linear-gradient(90deg, rgb(from var(--navy) r g b / 92%) 0%, rgb(from var(--navy) r g b / 55%) 55%, rgb(from var(--navy) r g b / 20%));position:absolute;inset:0}:root:root :where(.hub-card .ph){aspect-ratio:16/10}:root:root :where(.office .ph){position:absolute;inset:0}:root:root :where(.office .ph):after{content:"";background:linear-gradient(180deg, rgb(from var(--navy) r g b / 10%), rgb(from var(--navy) r g b / 90%));position:absolute;inset:0}:root:root :where(.office>:not(.ph)){z-index:2;position:relative}:root:root :where(.ph-collage .ph:first-child){aspect-ratio:16/9;grid-column:1/-1}:root:root :where(.wcard .ph){aspect-ratio:16/10}:root:root :where(.wcard .ph img){transition:transform .8s var(--ease)}:root:root :where(.wcard:hover .ph img){transform:scale(1.04)}:root:root :where(.wcard.big .ph){aspect-ratio:21/9}:root:root :where(.case-cover .ph){height:100%}:root:root :where(.gal .ph){aspect-ratio:16/10}:root:root :where(.gal .wide .ph){aspect-ratio:21/9}:root:root :where(.art-cover .ph){height:100%}:root:root :where(.featpost .ph){min-height:320px}:root:root :where(.cover.ph){padding:0}:root:root :where(.cover.ph img){object-fit:cover;opacity:1;width:100%;height:100%;transition:transform .8s var(--ease);position:static}:root:root :where(.post:hover .cover.ph img){transform:scale(1.05)}:root:root :where(.cover.ph .ct){z-index:2;color:var(--white);position:absolute;top:18px;left:18px;right:18px}:root:root :where(.cover.ph .ct span:last-child){background:rgb(from var(--navy) r g b / 70%);border-radius:2px;padding:6px 8px}:root:root :where(.cover.ph):after{content:"";background:linear-gradient(180deg, rgb(from var(--navy) r g b / 45%), transparent 45%);position:absolute;inset:0}:root:root :where(.list-posts .ph){aspect-ratio:16/10}:root:root :where(.nf .ph){opacity:.55;position:absolute;inset:0}@media (width<=1100px){:root:root :where(.ph-hero .ph){height:380px;min-height:0}:root:root :where(.ph-strip .ph){aspect-ratio:4/3}:root:root :where(.ph-strip .ph:first-child){aspect-ratio:16/9;grid-column:1/-1}}@media (width<=640px){:root:root :where(.featpost .ph){min-height:240px}:root:root :where(.gal .wide .ph){aspect-ratio:16/10}:root:root :where(.ph-strip .ph:first-child){grid-column:auto}}:root:root :where(.ph-collage .ph),:root:root :where(.ph-strip .ph),:root:root :where(.ph-hero .ph){min-width:0}:root:root :where(.ph-collage .ph){aspect-ratio:4/3;height:auto;min-height:0}:root:root :where(.ph){background:var(--navy);min-width:0;margin:0;position:relative;overflow:hidden}:root:root :where(.ph img){object-fit:cover;width:100%;height:100%;display:block}

:root:root :where(.code-block){max-width:100%;margin:24px 0;position:relative}:root:root :where(.code-block pre){background:var(--navy);color:var(--on-navy);font:500 13px/1.8 var(--f-mono);padding:24px;overflow:auto}:root:root :where(.code-block figcaption){font:500 12px var(--f-mono);background:var(--mist);padding:12px}:root:root :where(.code-block button){border:1px solid var(--line);border-radius:var(--r);background:var(--white);color:var(--ink);padding:8px 12px}:root:root :where(.code-block:not(.is-ready) button){display:none}:root:root :where(.toc){border-top:1px solid var(--ink);padding-top:18px;font-size:14px;position:sticky;top:110px}:root:root :where(.toc b){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--muted);margin-bottom:12px;display:block}:root:root :where(.toc a){border-left:2px solid var(--line);color:var(--body);padding:7px 0 7px 14px;line-height:1.4;display:block}:root:root :where(.toc a.on){border-color:var(--blue);color:var(--ink);font-weight:600}:root:root :where(.toc .share){gap:8px;margin-top:24px;display:flex}@media (width<=1100px){:root:root :where(.toc){order:-1;position:static}}:root:root :where(.toc ol){margin:16px 0 0;padding:0;list-style:none}:root:root :where(.toc .depth-3){padding-left:12px}:root:root :where(.toc .depth-4){padding-left:24px}

:root:root :where(.who){border-top:1px solid var(--line);align-items:center;gap:16px;padding-top:22px;display:flex}:root:root :where(.who strong){color:var(--ink);display:block}:root:root :where(.who span){color:var(--muted);font-size:14px}:root:root :where(.art-hero){border-bottom:1px solid var(--line);padding:40px 0 48px}:root:root :where(.art-hero .d2){max-width:20ch;margin-top:20px}:root:root :where(.art-hero .lead){margin-top:22px}:root:root :where(.art-hero .crumbs){flex-wrap:wrap;line-height:1.5}:root:root :where(.art-hero .crumbs a,.art-hero .crumbs [aria-hidden]){flex-shrink:0}:root:root :where(.art-hero .crumbs [aria-current]){flex:200px;min-width:0}:root:root :where(.art-meta){border-top:1px solid var(--line);font:500 12px/1.5 var(--f-mono);text-transform:uppercase;color:var(--muted);flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px;padding-top:22px;display:flex}:root:root :where(.art-meta .who){text-transform:none;border:0;gap:12px;padding:0}:root:root :where(.art-meta .who strong,.art-meta .who a){color:var(--ink);font-size:14px;font-weight:600;display:block}:root:root :where(.art-meta .who span){font-size:12px}:root:root :where(.art-meta .mono-tile){width:40px;height:40px;color:var(--on-navy);font-size:14px}:root:root :where(.art-cover){contain:layout paint;height:min(560px,56vw);margin-top:48px}:root:root :where(.art-cover .ph){height:100%}:root:root :where(.upd){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--blue)}:root:root :where(.kt){background:var(--blue-soft);border-left:4px solid var(--blue);max-width:none;margin:0 0 32px;padding:26px 28px}:root:root :where(.kt b){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--blue);margin-bottom:12px;display:block}:root:root :where(.kt ul){color:var(--ink);margin:0;padding-left:20px;font-size:17px}:root:root :where(.kt h2){font-size:20px;line-height:1.2}:root:root :where(.callout){border:1px solid var(--line);border-left:4px solid var(--ok);max-width:none;margin:0 0 28px;padding:20px 24px;font-size:16px}:root:root :where(.callout b){font:500 12px var(--f-mono);text-transform:uppercase;color:color-mix(in srgb, var(--ok) 75%, var(--ink));margin-bottom:6px;display:block}:root:root :where(.callout.warn){border-left-color:var(--orange)}:root:root :where(.callout.warn b){color:var(--orange-deep)}:root:root :where(.callout.tip){border-left-color:var(--purple)}:root:root :where(.callout.tip b){color:var(--purple)}:root:root :where(.art-cta){background:var(--navy);color:var(--on-navy);grid-template-columns:1fr auto;align-items:center;gap:24px;max-width:none;margin:40px 0;padding:32px;display:grid}:root:root .art-cta :where(h2,h3){color:var(--white);margin-bottom:6px;font-size:24px}:root:root :where(.art-cta p){margin:0;font-size:15px}@media (width<=640px){:root:root :where(.art-cta){grid-template-columns:1fr}}:root:root :where(.sources){color:var(--muted);border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:14px}:root:root :where(.sources ol){margin:10px 0 0;padding-left:18px}:root:root :where(.article-body>*){max-width:72ch}:root:root :where(.article-body>figure,.article-body>.code-block){max-width:none}:root:root :where(.article-body figcaption.cap){color:var(--muted);font:500 12px/1.6 var(--f-mono);text-transform:uppercase;background:0 0;padding:10px 0 0;position:static}:root:root :where(.article-body){overflow-wrap:anywhere;font-size:18px;line-height:1.7}:root:root :where(.article-body h2){font:800 clamp(28px, 3vw, 38px)/1.2 var(--f-display);letter-spacing:-.035em;margin:56px 0 18px;scroll-margin-top:100px}:root:root :where(.article-body h3){font:700 24px/1.3 var(--f-display);margin:36px 0 12px}:root:root :where(.article-body p){margin:0 0 20px}:root:root :where(.article-body ul,.article-body ol){margin:0 0 22px;padding-left:22px}:root:root :where(.article-body li){margin-bottom:8px}:root:root :where(.article-body blockquote){border-left:3px solid var(--blue);margin:28px 0;padding:12px 24px}:root:root :where(.article-body table){border-collapse:collapse;width:100%;font-size:15px}:root:root :where(.article-body th,.article-body td){border:1px solid var(--line);text-align:left;padding:12px}:root:root :where(.article-body th){background:var(--mist);font-weight:600}:root:root :where(.article-table){max-width:100%;overflow:auto}:root:root :where(.article-pair){grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}:root:root :where(.editor-block){margin:32px 0;scroll-margin-top:110px}:root:root :where(.block-artifact-card,.block-stat){border:1px solid var(--line);padding:24px}:root:root :where(.block-stat strong){color:var(--purple);font:800 40px var(--f-display)}:root:root :where(.block-faq details){border-top:1px solid var(--line);padding:18px 0}:root:root :where(.block-faq summary){cursor:pointer;font-weight:600}@media (width<=640px){:root:root :where(.article-pair){grid-template-columns:1fr}}:root:root :where(.progress){z-index:70;appearance:none;background:0 0;border:0;width:100%;height:3px;position:fixed;top:0;left:0}:root:root :where(.progress)::-webkit-progress-bar{background:0 0}:root:root :where(.progress)::-webkit-progress-value{background:var(--orange)}:root:root :where(.progress:not(.is-ready)){display:none}:root:root body:has([data-article-page]) :where(.ftr,.article-newsletter,.article-updates,.article-related,.author-box){content-visibility:auto;contain-intrinsic-size:auto 600px}:root:root :where(.article-section){padding:64px 0 96px}:root:root :where(.art-grid){grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:72px;display:grid}:root:root :where(.article-copy){min-width:0;font-size:18px;line-height:1.7}:root:root :where(.article-side){min-width:0}:root:root :where(.article-side .toc){position:sticky;top:110px}:root:root :where(.article-service){border-top:1px solid var(--line);margin-top:28px;padding-top:18px;font-size:14px}:root:root :where(.article-service p){margin:12px 0}:root:root :where(.article-share){flex-wrap:wrap;gap:12px;margin-top:24px;font-size:13px;display:flex}:root:root :where(.article-share button){border:1px solid var(--line);cursor:pointer;color:var(--ink);background:0 0;padding:4px 10px}:root:root :where(.article-updates){margin:32px 0;font-size:14px}:root:root :where(.article-updates h2){font:700 22px var(--f-display);margin-bottom:16px}:root:root :where(.article-updates ul){padding-left:20px}:root:root :where(.article-newsletter){align-items:center}:root:root :where(.article-newsletter h2){margin-top:22px}:root:root :where(.article-newsletter .nl){border-color:var(--white);margin:0}:root:root :where(.article-newsletter .nl>div:first-child){background:var(--white);color:var(--ink)}:root:root :where(.article-newsletter .nl>label){padding:0 14px 12px}:root:root :where(.article-related){grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px;display:grid}:root:root [data-article-page] :where(.on-dark h2,.on-dark a){color:var(--white)}@media (width<=1100px){:root:root :where(.art-grid){grid-template-columns:1fr}:root:root :where(.article-side){order:-1}:root:root :where(.article-side .toc){position:static}}

:root:root :where(.mono-tile){background:var(--navy);width:56px;height:56px;color:var(--white);font:700 18px var(--f-display);border-radius:2px;flex:none;place-items:center;display:grid}:root:root :where(.art-meta .mono-tile){width:40px;height:40px;font-size:14px}:root:root :where(.author-box .mono-tile){width:72px;height:72px;font-size:22px}:root:root :where(.tile-large){width:80px;height:80px;font-size:24px}:root:root .mono-tile{color:var(--white)}

:root:root :where(.author-box){border:1px solid var(--line);grid-template-columns:72px 1fr;gap:22px;max-width:none;margin-top:56px;padding:28px;display:grid}:root:root :where(.author-box .mono-tile){width:72px;height:72px;font-size:22px}:root:root :where(.author-box h4){margin-bottom:4px;font-size:20px}:root:root :where(.author-box p){margin:6px 0 0;font-size:15px}:root:root :where(.author-box .role){font:500 12px var(--f-mono);text-transform:uppercase;color:var(--muted)}@media (width<=640px){:root:root :where(.author-box){grid-template-columns:1fr}}:root:root :where(.author-box h2){font-size:22px;line-height:1.2}:root:root :where(.author-box .ph){flex:none;width:80px;height:80px}

:root:root :where(.nl){border:1px solid var(--ink);gap:12px;min-width:0;max-width:620px;margin-top:48px;display:grid}:root:root :where(.nl input){font:500 15px var(--f-body);border:0;flex:1 1 0;width:0;min-width:0;padding:0 18px}:root:root :where(.nl .btn){border-radius:0}:root:root :where(.nl>div:first-child){flex-wrap:wrap;display:flex}:root:root :where(.nl label){display:block}:root:root :where(.nl>label){font-size:14px}:root:root :where(.nl input[type=checkbox]){flex:none;width:auto;min-width:0}:root:root :where(.nl>div:first-child>label){width:100%}:root:root :where(.nl [role=alert]){color:var(--white);font-weight:600}:root:root :where(.newsletter-band){background:var(--blue);color:var(--white);border-radius:var(--r);padding:36px}:root:root :where(.newsletter-band h2){color:var(--white)}:root:root :where(.newsletter-band .nl){max-width:100%}:root:root :where(.newsletter-band input[type=email]){color:var(--ink);background:var(--white);min-height:52px}:root:root :where(.nl-compact){border:0}:root:root :where(.nl-compact>div:first-child){border:1px solid var(--ink);flex-wrap:nowrap;min-height:52px}:root:root :where(.nl-compact input[type=email]){background:var(--white);color:var(--ink)}:root:root :where(.nl-compact>label){color:var(--body);align-items:start;gap:8px;font-size:12px;display:flex}:root:root :where(.nl-compact>div:first-child>label){width:1px}

:root:root :where(.on-dark :focus-visible),:root:root :where(.on-blue :focus-visible){outline-color:var(--white)}:root:root :where(.on-dark h1),:root:root :where(.on-dark h2),:root:root :where(.on-dark h3),:root:root :where(.on-dark h4),:root:root :where(.on-blue h1),:root:root :where(.on-blue h2),:root:root :where(.on-blue h3){color:var(--white)}:root:root :where(.on-dark .lead),:root:root :where(.on-dark p){color:var(--on-navy)}:root:root :where(.on-blue p),:root:root :where(.on-blue .lead){color:var(--blue-soft)}:root:root :where(.on-dark .tag){color:var(--muted)}:root:root :where(.on-dark .tag b){color:var(--white)}:root:root :where(.on-blue .tag){color:var(--on-navy)}:root:root :where(.on-blue .tag b){color:var(--white)}:root:root :where(.on-dark .btn-line),:root:root :where(.on-blue .btn-line){border-color:rgb(from var(--white) r g b / 55%);color:var(--white)}:root:root :where(.on-dark .btn-line:hover),:root:root :where(.on-blue .btn-line:hover){background:var(--white);color:var(--ink)}:root:root :where(.on-dark .link),:root:root :where(.on-blue .link){color:var(--white)}:root:root :where(.on-dark){background:var(--navy);color:var(--on-navy)}:root:root :where(.on-blue){background:var(--blue);color:var(--white)}:root:root :where(.blueprint){background-image:linear-gradient(var(--navy-line) 1px, transparent 1px), linear-gradient(90deg, var(--navy-line) 1px, transparent 1px);background-position:-1px -1px;background-size:72px 72px}:root:root :where(.blueprint-blue){background-image:linear-gradient(rgb(from var(--white) r g b / 8%) 1px, transparent 1px), linear-gradient(90deg, rgb(from var(--white) r g b / 8%) 1px, transparent 1px);background-size:72px 72px}:root:root :where(.sec){padding:var(--sec) 0}:root:root :where(.on-dark .stats){border-top-color:var(--navy-line)}:root:root :where(.on-dark .stats div){border-right-color:var(--navy-line)}:root:root :where(.on-dark .stats strong){color:var(--white)}:root:root :where(.on-dark .stats span){color:var(--muted)}:root:root :where(.on-dark .tabs){border-color:var(--navy-line)}:root:root :where(.on-dark .tabs button){color:var(--muted)}:root:root :where(.on-dark .tabs button.on){color:var(--white)}:root:root :where(.on-dark .g-tight){background:var(--navy-line);border-color:var(--navy-line)}:root:root :where(.on-dark .g-tight>*){background:var(--navy)}:root:root :where(.on-dark .cell .n),:root:root :where(.on-dark .cell p),:root:root :where(.on-dark .cell:hover h3),:root:root :where(.on-dark .cell:hover h4){color:var(--on-navy)}:root:root :where(.on-dark .checks li):before,:root:root :where(.on-blue .checks li):before{color:var(--white)}:root:root :where(.on-dark .pill){border-color:rgb(from var(--white) r g b / 30%);color:var(--white)}:root:root :where(.on-dark .tbl th){color:var(--muted);border-color:rgb(from var(--white) r g b / 30%)}:root:root :where(.on-dark .tbl td){border-color:var(--navy-line);color:var(--on-navy)}:root:root :where(.on-dark .tbl td:first-child){color:var(--white)}@media (width<=640px){:root:root :where(.on-dark .stats div){border-bottom-color:var(--navy-line)}}:root:root :where(.surface-mist){background:var(--mist)}:root:root :where(.surface-white){background:var(--white)}:root:root :where(.sec-compact){padding-block:40px}
