/* Shared by every page, before its own styles: the font and the site's chrome. */
@font-face{font-family:Inter;src:url(/assets/fonts/inter-latin-var.woff2) format("woff2");font-weight:100 900;font-display:swap}
/* the chrome: a white sticky nav, charcoal pills, a paper footer */
.nv-pill{ display:inline-flex; align-items:center; justify-content:center; gap:6px; height:38px; padding:0 16px; border-radius:9999px;
          font-family:'Inter',-apple-system,sans-serif; font-size:14.5px; font-weight:500; letter-spacing:-0.01em; line-height:1;
          text-decoration:none; white-space:nowrap; transition:background 150ms ease, color 150ms ease; }
.nv-pill-dark{ background:#0a0a0a; color:#ffffff !important; }
.nv-pill-dark:hover{ background:#2b2b2b; color:#ffffff !important; }
.nv-pill-light{ background:#EFEEE9; color:#0a0a0a !important; }
.nv-pill-light:hover{ background:#E5E3DC; color:#0a0a0a !important; }
.nv-pill-lg{ height:48px; padding:0 24px; font-size:16px; }
.nv-nav{ position:sticky; top:0; z-index:60; background:rgba(255,255,255,0.92);
         -webkit-backdrop-filter:saturate(1.4) blur(12px); backdrop-filter:saturate(1.4) blur(12px); }
.nv-nav-in{ max-width:1280px; margin:0 auto; height:68px; padding:0 32px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; }
.nv-logo{ justify-self:start; display:inline-flex; align-items:center; }
.nv-logo img{ height:20px; width:auto; display:block; }
.nv-nav-links{ display:flex; align-items:center; gap:4px; }
.nv-nl{ padding:8px 12px; font-size:15px; font-weight:400; letter-spacing:-0.01em; color:rgba(10,10,10,0.6) !important; text-decoration:none; transition:color 150ms ease; }
.nv-nl:hover, .nv-nl[aria-current="page"]{ color:#0a0a0a !important; }
.nv-nav-ctas{ justify-self:end; display:flex; align-items:center; gap:8px; }
.nv-menu{ display:none; position:relative; }
.nv-menu summary{ list-style:none; display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9999px; cursor:pointer; color:#0a0a0a; }
.nv-menu summary::-webkit-details-marker{ display:none; }
.nv-menu-panel{ position:absolute; right:0; top:46px; min-width:200px; padding:8px; border-radius:16px; background:#ffffff;
                box-shadow:0 1px 2px rgba(10,10,10,0.06), 0 24px 50px -24px rgba(10,10,10,0.35); }
.nv-menu-panel a{ display:block; padding:12px 14px; border-radius:10px; font-size:15px; color:#0a0a0a; text-decoration:none; }
.nv-menu-panel a:hover{ background:#F4F3EE; }
.nv-footer{ background:#F7F6F2; padding:80px 32px 40px; }
.nv-foot-top, .nv-foot-grid, .nv-foot-base{ max-width:1280px; margin:0 auto; }
.nv-foot-top{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding-bottom:56px; border-bottom:1px solid rgba(10,10,10,0.08); }
.nv-foot-cta{ margin:0; font-size:30px; font-weight:400; letter-spacing:-0.035em; line-height:1.15; color:#0a0a0a; }
.nv-foot-pills{ display:flex; gap:8px; flex-wrap:wrap; }
.nv-foot-grid{ padding-top:48px; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
.nv-foot-col{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.nv-foot-col a{ font-size:15px; font-weight:400; letter-spacing:-0.01em; color:rgba(10,10,10,0.6); text-decoration:none; }
.nv-foot-col a:hover{ color:#0a0a0a; }
.nv-foot-h{ margin-bottom:4px; font-size:14px; font-weight:500; letter-spacing:-0.01em; color:#0a0a0a; }
.nv-foot-tag{ font-size:15px; color:rgba(10,10,10,0.6); }
.nv-foot-logo{ height:20px; width:auto; display:block; }
.nv-foot-base{ margin-top:56px; font-size:13.5px; color:rgba(10,10,10,0.5); }
.nv-foot-base a{ color:rgba(10,10,10,0.6); text-decoration:none; }
.nv-foot-cookie{ padding:0; border:0; background:none; font:inherit; color:rgba(10,10,10,0.6); cursor:pointer; }
@media (max-width:900px){ .nv-foot-grid{ grid-template-columns:1fr 1fr !important; } }
@media (max-width:760px){
  .nv-nav-in{ padding:0 18px !important; grid-template-columns:1fr auto !important; }
  .nv-nav-links, .nv-hide-sm{ display:none !important; }
  .nv-menu{ display:block; }
  .nv-footer{ padding:60px 22px 32px !important; }
  .nv-foot-cta{ font-size:24px !important; }
}
/* hand-drawn marks on the headlines; the drawn state is the base style */
.nv-mark{ position:relative; display:inline-block; white-space:nowrap; isolation:isolate; }
.nv-mark > svg{ position:absolute; z-index:-1; overflow:visible; pointer-events:none; }
.nv-mark path{ fill:none; stroke-linecap:round; stroke-linejoin:round; }
/* the one loud mark: the H1's two blue pencil stripes */
.nv-mark-u{ left:-3%; width:106%; bottom:-0.22em; height:0.42em; }
.nv-mark-u path{ stroke:#2E5AD1; vector-effect:non-scaling-stroke; stroke-width:max(2px, 0.06em); }
.nv-mark-u path + path{ stroke-width:max(1.4px, 0.04em); opacity:0.75; }
/* the quiet one: a thin wave under */
.nv-mark-w{ left:-2%; width:104%; bottom:-0.2em; height:0.32em; }
.nv-mark-w path{ stroke:#7F98E0; stroke-width:2.6; stroke-dasharray:1 1.2; }
/* each kind moves its own way: the stripes wipe in, the wave traces */
.nv-js .nv-mark:not(.is-in) > .nv-mark-u{ clip-path:inset(-30% 100% -30% -6%); }
.nv-mark.is-in > .nv-mark-u{ animation:nvMarkWipe 800ms var(--md, 200ms) cubic-bezier(0.65,0,0.35,1) both; }
.nv-js .nv-mark:not(.is-in) > .nv-mark-w path{ stroke-dashoffset:1; }
.nv-mark.is-in > .nv-mark-w path{ animation:nvMarkTrace 900ms var(--md, 200ms) cubic-bezier(0.33,0,0.2,1) both; }
@keyframes nvMarkWipe{ from{ clip-path:inset(-30% 100% -30% -6%); } to{ clip-path:inset(-30% -6% -30% -6%); } }
@keyframes nvMarkTrace{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
/* a count that rolls up into place, once */
.nv-roll{ display:inline-block; overflow:hidden; vertical-align:bottom; }
.nv-roll > span{ display:inline-block; }
.nv-js .nv-roll:not(.is-in) > span{ transform:translateY(105%); }
.nv-roll.is-in > span{ animation:nvRoll 700ms var(--md, 150ms) cubic-bezier(0.2,0.8,0.2,1) both; }
@keyframes nvRoll{ from{ transform:translateY(105%); } to{ transform:none; } }
