/* Shared Strivo fonts, tokens, controls, navigation and footer. */
@font-face{font-family:Plex;src:url('assets/ibm-plex-sans-latin-variable.woff2') format('woff2');font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:Plex Mono;src:url('assets/ibm-plex-mono-latin-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Plex Mono;src:url('assets/ibm-plex-mono-latin-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
/* Keep the authored palette in browsers with automatic dark-mode recoloring. */
:root{color-scheme:only light}
:root{--yellow:#f0fb29;--hero-yellow:#ecff2c;--ink:#202020;--paper:#f5f5f5;--blue:#aee3fd;--muted:#606060;--line:#deded9;--white:#ffffff;--button-hover:#414526;--focus:#2873a3;--workflow-paper:#fcfcf9;--request-paper:#f0f1e9;--source-wash:#e8f0ca;--result-wash:#edf2ce;--on-dark:#d0d0c4;--on-source:#4e5633;--on-blue:#375d73;--on-yellow:#545a19;--signal:#757b22;--strong-line:#bdbdb2;--source-line:#c3cba4;--blue-line:#81b5d0;--active-line:#8d9529;--industry-yellow:#eceebe;--industry-blue:#d9eaf7;--industry-neutral:#e0e0db;--industry-warm:#eee5df;--menu-shadow:#26281455;--pulse-soft:#cfda6020;--pulse-strong:#cfda6050;--mask:#000000;--sans:Plex,sans-serif;--mono:'Plex Mono',monospace;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:35px}
body{margin:0;padding:12px;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
::selection{background:var(--blue);color:var(--ink)}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:var(--muted);border:2px solid var(--paper);border-radius:6px}
a{color:inherit;text-decoration:none;text-underline-offset:5px}
button{font:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
:where(button,a,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:5px}
button:disabled{cursor:default;opacity:.6}
h1,h2,h3,p{margin:0}
h1,h2{font-weight:500;letter-spacing:-.04em;line-height:1.06;text-wrap:balance}
h3{font-weight:500;line-height:1.22;letter-spacing:-.025em}
p{text-wrap:pretty}
.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}
.skip-link{position:absolute;top:-100px;left:25px;z-index:99;background:var(--ink);color:var(--yellow);padding:14px}
.skip-link:focus{top:20px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;background:var(--ink);color:var(--white);border:1px solid var(--ink);border-radius:100px;min-height:56px;padding:16px 25px;font-size:16px;font-weight:500;line-height:1.35;transition:background .25s,transform .25s,color .25s}
.button:focus-visible{background:var(--button-hover)}
@media(hover:hover) and (pointer:fine){.button:hover{background:var(--button-hover);transform:translateY(-2px)}}
.button:active{background:var(--ink);transform:translateY(0)}
.button-small{font-size:14px;min-height:45px;padding:12px 21px}
.text-link{display:inline-flex;min-height:44px;align-items:center;gap:12px;font-weight:500;line-height:1.4}
.text-link:hover .link-line{transform:scaleX(1.6)}
.link-line{width:25px;height:1px;background:currentColor;transition:transform .3s var(--ease);transform-origin:left}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--white);border-radius:100px;min-height:76px;padding:10px 18px 10px 15px;position:relative;z-index:5;max-width:1440px;margin:auto}
.brand{display:flex;min-height:44px;align-items:center;gap:8px;font-size:28px;letter-spacing:-.04em;font-weight:500;line-height:1}
.brand-mark{width:26px;height:26px;object-fit:contain;flex-shrink:0}
.desktop-nav{display:flex;gap:28px;margin-left:auto;margin-right:auto;font-size:14px}
.desktop-nav a{position:relative;padding:12px 0}
.desktop-nav a:after{content:'';height:1px;background:var(--ink);position:absolute;bottom:7px;left:0;right:100%;transition:right .25s}
.desktop-nav a:hover:after{right:0}
.menu-toggle{display:none}
.mobile-nav[hidden]{display:none}
.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.footer{padding:48px 35px 15px;max-width:1440px;margin:auto;overflow:hidden}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:40px}
.footer-top>div{display:flex;gap:28px;font-size:14px}
.footer-top a:hover{text-decoration:underline}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding:20px 0 5px;margin-top:32px}
.footer-bottom a{display:flex;align-items:center;gap:7px}
.footer-bottom .icon{width:13px;height:13px}
@media(min-width:1550px){body{max-width:1800px;margin:auto}
}
@media(max-width:1100px){.desktop-nav{gap:18px;font-size:14px}
.header-cta{font-size:12px;padding:12px 16px}
.footer-top>div{gap:20px;font-size:12px}
}
@media(max-width:850px){.desktop-nav{display:none}
.header-cta{margin-left:auto;font-size:12px}
.site-header{padding:9px 12px 9px 10px;min-height:65px}
.brand{font-size:24px}
.brand-mark{height:24px;width:24px}
.menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid var(--line);background:var(--white);border-radius:50%;width:40px;height:40px;flex-shrink:0}
.menu-toggle span{display:block;width:14px;height:1px;background:var(--ink);transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}
.mobile-nav{position:absolute;top:calc(100% + 10px);right:0;left:0;display:flex;flex-direction:column;background:white;border:0;border-radius:16px;padding:15px 23px;box-shadow:0 10px 24px -14px var(--menu-shadow)}
.mobile-nav a{padding:12px 0;font-size:16px}
.footer-top{align-items:flex-start}
.footer-top>div{display:grid;grid-template-columns:repeat(3,auto);gap:15px 22px}
}
@media(max-width:600px){body{padding:7px}
.site-header{border-radius:100px;gap:9px;padding:6px 9px 6px 7px;min-height:60px}
.brand{font-size:24px}
.header-cta{display:none}
.menu-toggle{margin-left:auto}
.footer{padding:31px 13px 10px}
.footer-top{display:block}
.footer-top>div{margin-top:24px;grid-template-columns:repeat(2,1fr);font-size:14px;gap:16px}
.footer-bottom{font-size:12px;flex-wrap:wrap;gap:12px;margin-top:24px}
.footer-bottom>span:nth-child(2){order:3;width:100%}
.footer-bottom>a{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.button{transition:background-color .12s ease-out,color .12s ease-out,border-color .12s ease-out}
.button:hover,.button:active{transform:none}
.link-line{transition:none}
}
@media(max-width:600px){.footer-bottom{font-size:12px}
}
