/* Site chrome: the Rankbench bar, the header (mega menus, mobile drawer) and the footer, shared by
   every page. The markup is copied from launch.html by tools/apply-chrome.mjs and kept identical by
   tools/check-chrome.mjs. Hand-built pages load this before site.css. Builder-exported pages
   (<body class="cd-export">) load it on its own, last in <head>: the rules at the end undo their
   global resets for the chrome only, and the chrome stays light there because they have no dark mode. */

/* Light tokens at zero specificity: site.css's :root (and its dark theme) wins wherever it loads.
   Exported pages define some of the same names, so there they're set on the chrome itself. */
:where(:root),:where(.cd-export) :where(#rankbench-promo,.hdr,.ft,.hdr-space){--bg:#f3f3f2;--brand:#5c33ff;--brand-ink:#5c33ff;--display:"Bricolage Grotesque",Inter,system-ui,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);--faint:#b9b9bf;--hdr:64px;--ink:#0b0b0c;--ink-2:#3a3a3f;--line:#e6e6e4;--muted:#85858c;--ok:#16a34a;--on-solid:#ffffff;--paper:#ffffff;--pop:#ffffff;--pop-hover:#efefed;--pop-shadow:0 12px 32px rgba(0,0,0,.08),0 0 0 1px rgba(0,0,0,.035);--ring:rgba(0,0,0,.06);--ring-strong:rgba(0,0,0,.12);--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--solid:#111111;--spring:cubic-bezier(.34,1.4,.64,1)}

/* Base the chrome relies on, scoped so it never reaches page content */
:where(#rankbench-promo,.hdr,.ft),:where(#rankbench-promo,.hdr,.ft) *,:where(#rankbench-promo,.hdr,.ft) *::before,:where(#rankbench-promo,.hdr,.ft) *::after{box-sizing:border-box}
:where(#rankbench-promo,.hdr,.ft) a{color:inherit;text-decoration:none}
:where(#rankbench-promo,.hdr,.ft) svg{display:block}
:where(#rankbench-promo,.hdr,.ft) :focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:8px}
:where(.hdr) [data-icon]{display:inline-grid;place-items:center}
:where(.hdr) .ic{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
:where(.hdr) [data-icon] svg:not(.di){width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
:where(.hdr) .di{display:block;width:100%;height:100%;stroke:none}
svg.sprite{position:absolute;overflow:hidden}
/* Room for the fixed header on pages whose content doesn't leave any (16px matches the old in-flow header) */
.hdr-space{height:calc(var(--hdr) + 16px)}

/* ---------- Header: fixed bar over a progressive blur, hover popovers, mobile drawer ---------- */
.hdr{--hdr-em:var(--pop);--hdr-hover:var(--pop-hover);--hdr-shadow:var(--pop-shadow);position:fixed;top:0;left:0;right:0;z-index:50;font:450 14px/1.4 var(--sans);color:var(--ink)}
.nav-scrim{position:absolute;left:0;right:0;top:0;height:130px;z-index:-1;pointer-events:none}
.nav-scrim__blur,.nav-scrim__tint{position:absolute;inset:0}
.nav-scrim__blur--1{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(#000 0%,#000 45%,transparent 80%);mask-image:linear-gradient(#000 0%,#000 45%,transparent 80%)}
.nav-scrim__blur--2{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(#000 0%,#000 30%,transparent 62%);mask-image:linear-gradient(#000 0%,#000 30%,transparent 62%)}
.nav-scrim__blur--3{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(#000 0%,#000 18%,transparent 46%);mask-image:linear-gradient(#000 0%,#000 18%,transparent 46%)}
.nav-scrim__tint{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 88%,transparent) 0%,color-mix(in srgb,var(--bg) 55%,transparent) 45%,transparent 100%)}
.hdr:has(#mobile-nav:not([hidden])) .nav-scrim__tint{background:var(--bg)}
.hdr:has(#mobile-nav:not([hidden])) .nav-scrim__blur{display:none}
.nav{position:relative;display:flex;align-items:center;justify-content:space-between;height:var(--hdr);padding:0 20px;max-width:1600px;margin:0 auto;gap:0 50px}
.nav-logo{display:inline-flex;align-items:center;color:var(--ink)}
.nav-logo svg{height:21px;width:auto}
.nav-links{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:38px;align-items:center}
.nav-actions{display:flex;align-items:center;gap:14px}
.nav-item{position:relative;display:flex;flex-shrink:0}
.nav-trigger{display:flex;align-items:center;gap:6px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:default;border-radius:4px}
.nav-trigger::after{content:"";width:6px;height:6px;margin-top:-3px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg);transition:transform .15s}
.nav-item:hover .nav-trigger::after,.nav-item:has(:focus-visible) .nav-trigger::after,.nav-item.open .nav-trigger::after{transform:rotate(45deg) translate(-2px,-2px)}
.nav-link{transition:opacity .15s}
.nav-link:hover{opacity:.65}
.nav-popover{position:absolute;top:100%;left:0;transform:translate(-10px,6px);padding-top:12px;visibility:hidden;pointer-events:none;transition:transform .15s,visibility .15s;z-index:600}
.nav-item:hover .nav-popover,.nav-item:has(:focus-visible) .nav-popover,.nav-item.open .nav-popover{visibility:visible;pointer-events:auto;transform:translate(-10px,0)}
.nav-popover-inner{display:flex;flex-direction:column;min-width:180px;padding:6px;background:var(--hdr-em);border-radius:10px;box-shadow:var(--hdr-shadow);opacity:0;transition:opacity .15s}
.nav-item:hover .nav-popover-inner,.nav-item:has(:focus-visible) .nav-popover-inner,.nav-item.open .nav-popover-inner{opacity:1}
.nav-item.popover-closed .nav-popover{visibility:hidden;pointer-events:none}
.nav-item.popover-closed .nav-popover-inner{opacity:0}
.nav-popover a{padding:8px 12px;border-radius:6px;white-space:nowrap;transition:background-color .15s}
.nav-popover a:hover{background:var(--hdr-hover)}
.nav-popover.wide .nav-popover-inner{flex-direction:row;gap:6px;width:600px;max-width:calc(100vw - 40px)}
.nav-popover.wide.cols .nav-popover-inner{width:538px}
.nav-menu-list{display:flex;flex-direction:column}
.nav-popover.wide .nav-menu-list{flex:0 0 260px}
.nav-popover-inner.nav-menu-list{width:272px;min-width:0}
.nav-menu-list a{display:block;padding:10px 12px;white-space:normal}
.nav-menu-list a strong{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:500;margin-bottom:2px}
.nav-menu-icon{flex:none;width:15px;height:15px;color:var(--muted);transition:color .15s}
.nav-menu-list a:hover .nav-menu-icon,.nav-menu-list a.is-active .nav-menu-icon{color:inherit}
.nav-menu-list a span{display:block;font-size:13px;line-height:1.35;color:var(--muted)}
.nav-menu-list a.is-active{background:var(--hdr-hover)}
.nav-menu-head{padding:9px 12px;color:var(--muted)}
.nav-menu-list.is-tinted{background:var(--hdr-hover);border-radius:6px}
.nav-menu-list.is-tinted a:hover,.nav-menu-list.is-tinted a.is-active{background:var(--hdr-em)}
.nav-menu-list.is-padded{padding:0 6px 6px}
.nav-preview{position:relative;flex:1 1 auto;min-height:268px;background:var(--hdr-hover);border-radius:6px;overflow:hidden}
.nav-preview-pane{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;gap:6px;padding:22px;opacity:0;transition:opacity .18s;pointer-events:none}
.nav-preview-pane.is-active{opacity:1}
.nav-preview-pane-figure{position:relative;display:flex;flex:1 1 0%;justify-content:center;align-items:center;height:100%}
.nav-preview-pane-figure svg{position:absolute;inset:0;width:100%;height:100%;color:var(--ink);opacity:.5}
.nav-preview-pane-meta{display:flex;flex-direction:column}
.nav-preview-pane-meta strong{font-size:15px;font-weight:500}
.nav-preview-pane-meta span{font-size:13px;color:var(--muted)}
.nav-signin{padding:8px 4px;transition:opacity .15s}
.nav-signin:hover{opacity:.65}
.nav-btn{position:relative;display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:var(--bg);padding:8px 16px 8px 20px;border-radius:60px;white-space:nowrap;transition:box-shadow .2s}
.nav-btn::after{content:"";flex:none;width:16px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M3.6 1.2 L7.4 5 L3.6 8.8' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") right center/12px 12px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' preserveAspectRatio='none'><path d='M1.2 5 L7.4 5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/></svg>") left center/0 12px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M3.6 1.2 L7.4 5 L3.6 8.8' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") right center/12px 12px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' preserveAspectRatio='none'><path d='M1.2 5 L7.4 5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/></svg>") left center/0 12px no-repeat;transition:-webkit-mask-size .22s,mask-size .22s,transform .22s}
.nav-btn:hover::after{-webkit-mask-size:12px 12px,15px 12px;mask-size:12px 12px,15px 12px;transform:translateX(2px)}
.nav-btn:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 9%,transparent)}
.nav-btn:active{box-shadow:0 0 0 5px color-mix(in srgb,var(--ink) 9%,transparent)}
.nav-btn .s{display:none}
.nav-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:var(--ink);background:none;border:1px solid var(--line);border-radius:60px;cursor:pointer}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:16px;height:1.5px;background:currentColor;transition:transform .18s,opacity .18s}
.nav-toggle-bars{position:relative}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0}
.nav-toggle-bars::before{top:-5px}
.nav-toggle-bars::after{top:5px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{transform:translateY(-5px) rotate(-45deg)}
.mobile-nav{display:none;border-top:1px solid var(--line);background:var(--bg);max-height:calc(100svh - var(--hdr) - var(--rb-offset,0px));overflow-y:auto;overscroll-behavior:contain}
.mobile-nav-inner{display:flex;flex-direction:column;gap:28px;padding:24px 20px 32px}
.mobile-nav-group{display:flex;flex-direction:column;gap:2px}
.mobile-nav-label{color:var(--muted);margin-bottom:8px}
.mobile-nav a{display:block;padding:11px 0;font-size:17px}
.mobile-nav a:active{opacity:.6}
@media (max-width:1100px){.nav-links{gap:30px}}
@media (max-width:1080px){.nav-signin{display:none}}
@media (max-width:960px){
  .nav-links{display:none}
  .nav-toggle{display:inline-flex}
  .mobile-nav{display:block}
  .nav{gap:0 16px}
}
.mobile-nav[hidden]{display:none}
@media (max-width:480px){.nav-btn .l{display:none}.nav-btn .s{display:inline}}
@media (max-width:400px){.nav-logo svg{height:18px}}
/* ---------- Rankbench bar: above the header, scrolls away; the header follows it up ---------- */
#rankbench-promo{position:relative;z-index:60;display:flex;align-items:center;justify-content:center;background:#0c0a33;color:#fafafa;font:400 14px/20px var(--sans);letter-spacing:-.01em;text-align:center}
#rankbench-promo[hidden]{display:none}
#rankbench-promo:not([hidden])~.hdr{top:var(--rb-offset,44px)}
.rankbench-promo-surface{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 56px;color:inherit;cursor:pointer}
.rankbench-promo-message{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 8px}
.rankbench-promo-message--mobile{display:none}
.rankbench-promo-label{color:#d8d4ff;font-weight:600}
.rankbench-promo-product,.rankbench-promo-cta{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .18s,text-decoration-color .18s}
.rankbench-promo-product{font-weight:700;text-decoration-color:transparent}
.rankbench-promo-cta{font-weight:600;text-decoration-color:#b599ff}
.rankbench-promo-surface:hover .rankbench-promo-product,.rankbench-promo-surface:focus-visible .rankbench-promo-product{color:#d8d4ff;text-decoration-color:currentColor}
.rankbench-promo-surface:focus-visible,.rankbench-promo-close:focus-visible{outline:2px solid #fff;outline-offset:-4px;border-radius:6px}
.rankbench-promo-close{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;background:transparent;color:#fff;cursor:pointer;appearance:none}
.rankbench-promo-close:hover{color:#d8d4ff}
.rankbench-promo-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round}
@media (max-width:600px){
  #rankbench-promo{font-size:13px;line-height:18px;text-align:left}
  .rankbench-promo-surface{padding:8px 48px 8px 18px}
  .rankbench-promo-message--desktop{display:none}
  .rankbench-promo-message--mobile{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:6px;white-space:nowrap}
  .rankbench-promo-close{right:6px}
}
@media (max-width:340px){.rankbench-promo-extra{display:none}}
/* Current page in the nav */
.nav-link[aria-current="page"]{color:var(--brand-ink)}
.nav-menu-list a[aria-current="page"] strong,.mobile-nav a[aria-current="page"]{color:var(--brand-ink)}
/* ---------- Footer (content mirrors the main landing page) ---------- */
.ft{position:relative;z-index:1;margin-top:clamp(8px,2vw,24px);overflow:hidden}
.ft-in{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:clamp(40px,6vw,72px) 0 0;content-visibility:auto;contain-intrinsic-size:auto 1780px}
/* The footer is ~a third of the DOM; skip its layout and paint until it is near. */
@media (max-width:1100px){.ft-in{contain-intrinsic-size:auto 2000px}}
@media (max-width:820px){.ft-in{contain-intrinsic-size:auto 3160px}}
@media (max-width:480px){.ft-in{contain-intrinsic-size:auto 3770px}}
:where(.ft) a{color:inherit;text-decoration:none}


.ft-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 clamp(24px,3vw,48px);padding:clamp(40px,6vw,64px) 0 clamp(8px,2vw,16px)}
.ft-stack{min-width:0}
.ft-col{margin-bottom:clamp(28px,3.4vw,40px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.ft.anim .ft-col{opacity:0;transform:translateY(14px)}
.ft.anim.in .ft-col{opacity:1;transform:none}
.ft-col h3{margin:0 0 14px;font:600 13px/1.2 var(--sans);letter-spacing:.01em;color:var(--ink)}
.ft-col ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ft-col a{display:inline;font-size:14px;line-height:1.45;color:var(--muted);transition:color .25s var(--ease)}
.ft-col a span{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s var(--ease)}
.ft-col a:hover{color:var(--ink)}
.ft-col a:hover span{background-size:100% 1px}
.ft-ext{display:inline-block;width:12px;height:12px;margin-left:4px;vertical-align:-1px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:transform .3s var(--spring),opacity .3s}
.ft-col a:hover .ft-ext{transform:translate(2px,-2px);opacity:1}

.ft-mid{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:28px 0;border-top:1px solid var(--line)}
.ft-co{display:grid;gap:16px}
.ft-co p{margin:0;font-size:14px;color:var(--ink-2)}
.ft-socs{display:flex;gap:8px}
.ft-soc{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink-2);box-shadow:0 0 0 1px var(--ring);transition:transform .3s var(--spring),background .25s,color .25s}
.ft-soc svg{width:19px;height:19px}
.ft-soc:hover{transform:translateY(-3px);background:var(--solid);color:var(--on-solid)}
.ft-langs{display:flex;flex-wrap:wrap;gap:6px}
.ft-lang{font-size:13px;padding:7px 12px;border-radius:999px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);transition:background .25s,color .25s,box-shadow .25s}
.ft-lang:hover{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ring-strong)}
.ft-lang.on{background:var(--solid);color:var(--on-solid);box-shadow:none}

.ft-notes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);padding:24px 0;border-top:1px solid var(--line)}
.ft-notes p{margin:0;font-size:12.5px;line-height:1.65;color:var(--muted)}
.ft-notes a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.ft-notes a:hover{color:var(--brand-ink)}

/* The bottom padding keeps the last row clear of the chat launcher (48px, 50px off the viewport bottom). */
.ft-bottom{display:flex;align-items:center;gap:16px 28px;flex-wrap:wrap;padding:20px 0 84px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.ft-secure{display:inline-flex;align-items:center;gap:8px}
.ft-secure svg{width:15px;height:15px;fill:none;stroke:var(--ok);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ft-copy{margin-left:auto}
/* This page's last update, on its own line under the security note. stage-deploy.mjs writes the time
   (UTC, tools/last-updated.mjs) into the staged copy; chrome.js rewrites it in the visitor's locale and time zone. */
.ft-updated{flex-basis:100%;margin:-8px 0 0;padding-right:76px;font-size:12.5px}
.ft-updated[hidden]{display:none!important}
/* Visitor preferences, right of the company block: languages, then the theme switch. */
.ft-prefs{display:flex;flex-direction:column;align-items:flex-end;gap:12px;margin-left:auto}
/* Theme switch: shown only where the #cd-theme head script runs (hand-built pages on site.css).
   Builder-exported pages have no dark mode, so chrome.js leaves it hidden there. */
.ft-theme{display:inline-flex;gap:2px;min-width:0;margin:0;padding:3px;border:0;border-radius:999px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.ft-theme[hidden]{display:none!important}
.ft-theme label{position:relative;display:block;cursor:pointer}
.ft-theme input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ft-theme-opt{display:grid;place-items:center;width:32px;height:26px;border-radius:999px;color:var(--muted);transition:background .25s,color .25s}
.ft-theme label:hover .ft-theme-opt{color:var(--ink)}
.ft-theme input:checked+.ft-theme-opt{background:var(--solid);color:var(--on-solid)}
.ft-theme input:focus-visible+.ft-theme-opt{outline:2px solid var(--brand);outline-offset:2px}
.ft-theme svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ft-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.ft-brand{display:inline-block;width:fit-content;color:var(--ink)}
.ft-logo{display:block;height:26px;width:auto}
/* Small logos: the dot does the same hop, scaled up so it reads at 20px. */
.cd-dot{transform-box:fill-box;transform-origin:50% 100%}
.nav-logo:hover .cd-dot,.nav-logo:focus-visible .cd-dot,.ft-brand:hover .cd-dot,.ft-brand:focus-visible .cd-dot{animation:hop-sm .8s var(--ease)}
@keyframes hop-sm{0%{transform:none}28%{transform:translateY(-150%) scale(1.06)}50%{transform:translateY(0) scale(1.22,.8)}66%{transform:translateY(-38%) scale(.96,1.05)}82%{transform:translateY(0) scale(1.06,.95)}100%{transform:none}}
:focus-visible.ft-soc,.ft a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
@media (max-width:820px){
  .ft-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-notes{grid-template-columns:1fr}
  .ft-copy{margin-left:0}
  .ft-prefs{align-items:flex-start;margin-left:0}
}
/* ---------- Footer trust: milestones as laurel "awards" ----------
   The laurels grow upward the first time the row comes into view (.anim/.in, chrome.js); without
   JS, or with reduced motion, they're simply there. */
.ft-trust{padding:clamp(4px,1vw,8px) 0 clamp(32px,4.5vw,52px)}
.ft-defs{position:absolute;width:0;height:0;overflow:hidden}
.ft-awards{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,4vw,56px);margin:0;padding:0;list-style:none}
.ft-award{display:flex;align-items:center;gap:6px}
.ft-award:nth-child(2){--d:.12s}
.ft-award:nth-child(3){--d:.24s}
.ft-award p{display:grid;justify-items:center;gap:3px;margin:0;padding:0 2px;text-align:center}
.ft-award small{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.3;color:var(--muted)}
.ft-award b{font:600 18px/1.25 var(--display);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.ft-stars{flex:none;width:52px;height:10px;fill:#f5a524}
.ft-laurel{flex:none;width:28px;height:56px;color:var(--faint);transition:color .3s}
.ft-laurel.r{transform:scaleX(-1)}
.ft-award:hover .ft-laurel{color:var(--brand-ink)}
.ft-trust.anim .ft-laurel{clip-path:inset(100% 0 0 0);transition:color .3s,clip-path 1.1s var(--ease) var(--d,0s)}
.ft-trust.anim .ft-award p{opacity:0;translate:0 8px;transition:opacity .6s var(--ease) calc(var(--d,0s) + .25s),translate .6s var(--ease) calc(var(--d,0s) + .25s)}
.ft-trust.anim.in .ft-laurel{clip-path:inset(0 0 0 0)}
.ft-trust.anim.in .ft-award p{opacity:1;translate:0 0}
@media (max-width:480px){
  .ft-laurel{width:24px;height:48px}
  .ft-award b{font-size:16.5px}
}


/* ---------- Builder-exported pages ----------
   Their stylesheets reset every element (line-height:1, span{display:block}, links that inherit their
   parent's display and colour, a Meyer font:inherit, light paragraph weights, font-size:0 on body).
   These rules restore normal behaviour inside the chrome. Some pages add stylesheets after this one
   at runtime, so instead of relying on load order each rule carries one extra type selector (html):
   enough to beat the resets, still below the chrome's own class rules. */
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft){cursor:auto}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) *{line-height:inherit;cursor:inherit}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) :is(button,input,select,textarea){line-height:normal}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) :is(a,button,summary,label){cursor:pointer}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) span{display:inline}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) a{display:inline;height:auto;width:auto;flex-direction:row;flex-wrap:nowrap;align-items:normal;justify-content:normal;column-gap:normal;row-gap:normal;object-fit:fill}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) :is(b,strong){font-weight:700}
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) :is(h1,h2,h3,h4,h5,h6,p){font-weight:inherit}
html :where(.cd-export) .ft{font:400 16px/1.5 var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
/* Links take their colour from the chrome, whatever the page says about a:link; the chrome's
   class-only link colours are restated after it, at the same weight */
html :where(.cd-export) :where(#rankbench-promo,.hdr,.ft) a:is(:link,:visited){color:inherit;text-decoration:none}
html :where(.cd-export) a.nav-btn{color:var(--bg)}
html :where(.cd-export) a.nav-logo{color:var(--ink)}
html :where(.cd-export) a.ft-soc{color:var(--ink-2)}
html :where(.cd-export) a.ft-lang{color:var(--muted)}
html :where(.cd-export) a.ft-brand{color:var(--ink)}
html :where(.cd-export) .ft-col a{color:var(--muted)}
html :where(.cd-export) .ft-notes a{color:var(--muted);text-decoration:underline}
html :where(.cd-export) .ft-updated{margin:-8px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted)}
/* Their content stacks up to z-index 1500; keep the chrome where the old header sat */
html :where(.cd-export) .hdr{z-index:1500}
html :where(.cd-export) #rankbench-promo{z-index:1600}
@media (prefers-reduced-motion:reduce){
  :where(.cd-export) :where(#rankbench-promo,.hdr,.ft),:where(.cd-export) :where(#rankbench-promo,.hdr,.ft) *,:where(.cd-export) :where(#rankbench-promo,.hdr,.ft) *::before,:where(.cd-export) :where(#rankbench-promo,.hdr,.ft) *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
