/* ============================================================
   NeoPep — shared site styles (nav, footer, buttons, tokens)
   Used by all interior pages. Homepage keeps its own inline CSS.
   ============================================================ */
:root{
  --ink:#0d1012; --ink-soft:#5a6165; --line:#d7dbdc; --accent:#2fa8b4;
  --bg:#f5f6f6; --pad:clamp(20px,4.2vw,64px);
  --font:"Google Sans Flex", system-ui, -apple-system, sans-serif;
  /* category palette */
  --c-performance:#ee6a4d; --c-longevity:#e0a63c; --c-immunity:#35b1bf;
  --c-brain:#5b9bd8; --c-beauty:#e483ac; --c-lifestyle:#9b7fd4;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--font); color:var(--ink); background:#fff;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a{ color:inherit; }
img{ max-width:100%; display:block; }

/* ---------- NAV ---------- */
.nav{ position:fixed; top:0; left:0; right:0; z-index:40; display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  transition:top .45s cubic-bezier(.4,0,.2,1), padding .45s ease, background .35s ease, box-shadow .35s ease, transform .45s cubic-bezier(.4,0,.2,1); }
.nav.is-solid{ background:rgba(255,255,255,.82); -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid rgba(13,16,18,.07); }
.nav.is-hidden{ transform:translateY(-120%); }
.nav__logo{ height:15px; width:auto; display:block; }
.nav__logo path{ fill:var(--ink); }
/* mask-based wordmark (recolour via background-color) */
.brandmark{ display:block; width:122px; height:22px; background-color:var(--ink);
  -webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzc4IDQ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTc3MjM3LjIsLTE1MzcwLjEpIj4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTU3NDcuOSwxMzQyNC42KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNzE1NTUyLDAsMCwwLjcxNTU1MiwxNzI2OC4yLDQxMy4zNTcpIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjk1MTY2MywwLDAsMC42MzEzNTQsMTg0MDcuOSw0NTczLjQ1KSI+PHBhdGggZD0iTTQ1ODcxLjMsLTM4MDguNDFDNDU4NzEuMywtMzgzMi44IDQ1ODU4LjIsLTM4NTIuNiA0NTg0MiwtMzg1Mi42QzQ1ODQyLC0zODUyLjYgNDU4MTIsLTM4NTIuNiA0NTgxMiwtMzg1Mi42QzQ1Nzk1LjgsLTM4NTIuNiA0NTc4Mi42LC0zODMyLjggNDU3ODIuNiwtMzgwOC40MUw0NTc4Mi42LC0zODAwLjk1QzQ1NzgyLjYsLTM3NzYuNTYgNDU3OTUuOCwtMzc1Ni43NiA0NTgxMiwtMzc1Ni43NkM0NTgxMiwtMzc1Ni43NiA0NTg0MiwtMzc1Ni43NiA0NTg0MiwtMzc1Ni43NkM0NTg1OC4yLC0zNzU2Ljc2IDQ1ODcxLjMsLTM3NzYuNTYgNDU4NzEuMywtMzgwMC45NUM0NTg3MS4zLC0zODAwLjk1IDQ1ODcxLjMsLTM4MDguNDEgNDU4NzEuMywtMzgwOC40MVpNNDU4NTcuMywtMzgwOC40MUw0NTg1Ny4zLC0zODAwLjk1QzQ1ODU3LjMsLTM3ODguMjcgNDU4NTAuNCwtMzc3Ny45NyA0NTg0MiwtMzc3Ny45N0w0NTgxMiwtMzc3Ny45N0M0NTgwMy41LC0zNzc3Ljk3IDQ1Nzk2LjcsLTM3ODguMjcgNDU3OTYuNywtMzgwMC45NUM0NTc5Ni43LC0zODAwLjk1IDQ1Nzk2LjcsLTM4MDguNDEgNDU3OTYuNywtMzgwOC40MUM0NTc5Ni43LC0zODIxLjEgNDU4MDMuNSwtMzgzMS4zOSA0NTgxMiwtMzgzMS4zOUw0NTg0MiwtMzgzMS4zOUM0NTg1MC40LC0zODMxLjM5IDQ1ODU3LjMsLTM4MjEuMSA0NTg1Ny4zLC0zODA4LjQxWiIvPjwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjYwODc1LDAsMCwwLjYwODc1LDM0MjQ2LjgsNDM4Ni44NCkiPjxwYXRoIGQ9Ik00NTQ4OC44LC0zNjY3LjA4TDQ1NDg4LjgsLTM2NjcuMTJMNDU0NTUuOCwtMzY2Ny4xMkM0NTQ0Mi42LC0zNjY3LjEyIDQ1NDMxLjksLTM2NTYuNDQgNDU0MzEuOSwtMzY0My4yOEM0NTQzMS45LC0zNjQzLjI4IDQ1NDMxLjksLTM2MzUuNTQgNDU0MzEuOSwtMzYzNS41NEM0NTQzMS45LC0zNjIyLjM5IDQ1NDQyLjYsLTM2MTEuNzEgNDU0NTUuOCwtMzYxMS43MUw0NTUzOSwtMzYxMS43MUw0NTUyNi4zLC0zNTg5LjcxTDQ1NDU1LjgsLTM1ODkuNzFDNDU0MzAuNSwtMzU4OS43MSA0NTQwOS45LC0zNjEwLjI1IDQ1NDA5LjksLTM2MzUuNTRMNDU0MDkuOSwtMzY0My4yOEM0NTQwOS45LC0zNjY4LjU4IDQ1NDMwLjUsLTM2ODkuMTIgNDU0NTUuOCwtMzY4OS4xMkw0NTUwOC42LC0zNjg5LjEyQzQ1NTI1LjQsLTM2ODkuMTIgNDU1MzksLTM2NzUuNTIgNDU1MzksLTM2NTguNzZDNDU1MzksLTM2NDIuMDEgNDU1MjUuNCwtMzYyOC40MSA0NTUwOC42LC0zNjI4LjQxTDQ1NDM4LjgsLTM2MjguNDFMNDU0NTEuNSwtMzY1MC40MUw0NTUwOC43LC0zNjUwLjQxQzQ1NTEzLjMsLTM2NTAuNDEgNDU1MTcsLTM2NTQuMTUgNDU1MTcsLTM2NTguNzVDNDU1MTcsLTM2NjMuMzUgNDU1MTMuMywtMzY2Ny4wOCA0NTUwOC43LC0zNjY3LjA4TDQ1NDg4LjgsLTM2NjcuMDhaIi8+PC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjA4NzUsMCwwLDAuNjA4NzUsMzQ0NjguMiw0Mzc5Ljg1KSI+PHBhdGggZD0iTTQ1NjM2LjUsLTM2NzcuNjJMNDU3MzUuMiwtMzY3Ny42MkM0NTc1MS45LC0zNjc3LjYyIDQ1NzY1LjUsLTM2NjQuMDIgNDU3NjUuNSwtMzY0Ny4yN0M0NTc2NS41LC0zNjMwLjUyIDQ1NzUxLjksLTM2MTYuOTIgNDU3MzUuMiwtMzYxNi45Mkw0NTY2My4xLC0zNjE2LjkyTDQ1Njc1LjgsLTM2MzguOTJMNDU3MzUuMiwtMzYzOC45MkM0NTczOS44LC0zNjM4LjkyIDQ1NzQzLjUsLTM2NDIuNjYgNDU3NDMuNSwtMzY0Ny4yNkM0NTc0My41LC0zNjUxLjg2IDQ1NzM5LjgsLTM2NTUuNTkgNDU3MzUuMiwtMzY1NS41OUw0NTcxNS40LC0zNjU1LjU5TDQ1NzE1LjQsLTM2NTUuNjJMNDU2NTguNSwtMzY1NS42Mkw0NTY1OC41LC0zNTc4LjIyTDQ1NjM2LjUsLTM1NzguMjJMNDU2MzYuNSwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC42MDg3NSwzNDI5MSw0Mzc5Ljg1KSI+PHBhdGggZD0iTTQ1NjM2LjUsLTM2NzcuNjJMNDU3MzUuMiwtMzY3Ny42MkM0NTc1MS45LC0zNjc3LjYyIDQ1NzY1LjUsLTM2NjQuMDIgNDU3NjUuNSwtMzY0Ny4yN0M0NTc2NS41LC0zNjMwLjUyIDQ1NzUxLjksLTM2MTYuOTIgNDU3MzUuMiwtMzYxNi45Mkw0NTY2My4xLC0zNjE2LjkyTDQ1Njc1LjgsLTM2MzguOTJMNDU3MzUuMiwtMzYzOC45MkM0NTczOS44LC0zNjM4LjkyIDQ1NzQzLjUsLTM2NDIuNjYgNDU3NDMuNSwtMzY0Ny4yNkM0NTc0My41LC0zNjUxLjg2IDQ1NzM5LjgsLTM2NTUuNTkgNDU3MzUuMiwtMzY1NS41OUw0NTcxNS40LC0zNjU1LjU5TDQ1NzE1LjQsLTM2NTUuNjJMNDU2NTguNSwtMzY1NS42Mkw0NTY1OC41LC0zNTc4LjIyTDQ1NjM2LjUsLTM1NzguMjJMNDU2MzYuNSwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC43Njk2OTgsMzQyMDAuOCw0OTcxLjc1KSI+PHBhdGggZD0iTTQ2MDU0LjQsLTM2NzcuNjJMNDU5NDAuOSwtMzY3Ny42Mkw0NTkyOC4yLC0zNjYwLjIyTDQ2MDQxLjcsLTM2NjAuMjJMNDYwNTQuNCwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC43Njk2OTgsMzQyMDAuOCw0OTk1LjMxKSI+PHBhdGggZD0iTTQ2MDU0LjQsLTM2NzcuNjJMNDU5NDAuOSwtMzY3Ny42Mkw0NTkyOC4yLC0zNjYwLjIyTDQ2MDQxLjcsLTM2NjAuMjJMNDYwNTQuNCwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC43Njk2OTgsMzQyMDAuOCw1MDE4Ljg3KSI+PHBhdGggZD0iTTQ2MDU0LjQsLTM2NzcuNjJMNDU5NDAuOSwtMzY3Ny42Mkw0NTkyOC4yLC0zNjYwLjIyTDQ2MDQxLjcsLTM2NjAuMjJMNDYwNTQuNCwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC42MDg3NSwzNDEzNi43LDQzNzkuODUpIj48cGF0aCBkPSJNNDU1NDkuNywtMzY0Ny4yN0w0NTU0OS43LC0zNjQ3LjI3QzQ1NTQ5LjYsLTM2NTEuODcgNDU1NDUuOSwtMzY1NS41OSA0NTU0MS4zLC0zNjU1LjU5TDQ1NTIxLjUsLTM2NTUuNTlMNDU1MjEuNSwtMzY1NS42Mkw0NTQ2NC42LC0zNjU1LjYyTDQ1NDY0LjYsLTM1NzguMjJMNDU0NDIuNiwtMzU3OC4yMkw0NTQ0Mi42LC0zNjc3LjYyTDQ1NTQxLjMsLTM2NzcuNjJDNDU1NTcuNiwtMzY3Ny42MiA0NTU3MSwtMzY2NC42NyA0NTU3MS42LC0zNjQ4LjQ3TDQ1NTcxLjcsLTM2NDguNDdMNDU1NzEuNywtMzU3OC4yMkw0NTU0OS43LC0zNTc4LjIyTDQ1NTQ5LjcsLTM2NDcuMjdaTTQ1NDY5LjQsLTM2MTcuMjJMNDU0NjkuNCwtMzYxNi45Mkw0NTQ2OS4yLC0zNjE2LjkyTDQ1NDY5LjQsLTM2MTcuMjJaIi8+PC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K") no-repeat left center; mask:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzc4IDQ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTc3MjM3LjIsLTE1MzcwLjEpIj4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTU3NDcuOSwxMzQyNC42KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNzE1NTUyLDAsMCwwLjcxNTU1MiwxNzI2OC4yLDQxMy4zNTcpIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjk1MTY2MywwLDAsMC42MzEzNTQsMTg0MDcuOSw0NTczLjQ1KSI+PHBhdGggZD0iTTQ1ODcxLjMsLTM4MDguNDFDNDU4NzEuMywtMzgzMi44IDQ1ODU4LjIsLTM4NTIuNiA0NTg0MiwtMzg1Mi42QzQ1ODQyLC0zODUyLjYgNDU4MTIsLTM4NTIuNiA0NTgxMiwtMzg1Mi42QzQ1Nzk1LjgsLTM4NTIuNiA0NTc4Mi42LC0zODMyLjggNDU3ODIuNiwtMzgwOC40MUw0NTc4Mi42LC0zODAwLjk1QzQ1NzgyLjYsLTM3NzYuNTYgNDU3OTUuOCwtMzc1Ni43NiA0NTgxMiwtMzc1Ni43NkM0NTgxMiwtMzc1Ni43NiA0NTg0MiwtMzc1Ni43NiA0NTg0MiwtMzc1Ni43NkM0NTg1OC4yLC0zNzU2Ljc2IDQ1ODcxLjMsLTM3NzYuNTYgNDU4NzEuMywtMzgwMC45NUM0NTg3MS4zLC0zODAwLjk1IDQ1ODcxLjMsLTM4MDguNDEgNDU4NzEuMywtMzgwOC40MVpNNDU4NTcuMywtMzgwOC40MUw0NTg1Ny4zLC0zODAwLjk1QzQ1ODU3LjMsLTM3ODguMjcgNDU4NTAuNCwtMzc3Ny45NyA0NTg0MiwtMzc3Ny45N0w0NTgxMiwtMzc3Ny45N0M0NTgwMy41LC0zNzc3Ljk3IDQ1Nzk2LjcsLTM3ODguMjcgNDU3OTYuNywtMzgwMC45NUM0NTc5Ni43LC0zODAwLjk1IDQ1Nzk2LjcsLTM4MDguNDEgNDU3OTYuNywtMzgwOC40MUM0NTc5Ni43LC0zODIxLjEgNDU4MDMuNSwtMzgzMS4zOSA0NTgxMiwtMzgzMS4zOUw0NTg0MiwtMzgzMS4zOUM0NTg1MC40LC0zODMxLjM5IDQ1ODU3LjMsLTM4MjEuMSA0NTg1Ny4zLC0zODA4LjQxWiIvPjwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjYwODc1LDAsMCwwLjYwODc1LDM0MjQ2LjgsNDM4Ni44NCkiPjxwYXRoIGQ9Ik00NTQ4OC44LC0zNjY3LjA4TDQ1NDg4LjgsLTM2NjcuMTJMNDU0NTUuOCwtMzY2Ny4xMkM0NTQ0Mi42LC0zNjY3LjEyIDQ1NDMxLjksLTM2NTYuNDQgNDU0MzEuOSwtMzY0My4yOEM0NTQzMS45LC0zNjQzLjI4IDQ1NDMxLjksLTM2MzUuNTQgNDU0MzEuOSwtMzYzNS41NEM0NTQzMS45LC0zNjIyLjM5IDQ1NDQyLjYsLTM2MTEuNzEgNDU0NTUuOCwtMzYxMS43MUw0NTUzOSwtMzYxMS43MUw0NTUyNi4zLC0zNTg5LjcxTDQ1NDU1LjgsLTM1ODkuNzFDNDU0MzAuNSwtMzU4OS43MSA0NTQwOS45LC0zNjEwLjI1IDQ1NDA5LjksLTM2MzUuNTRMNDU0MDkuOSwtMzY0My4yOEM0NTQwOS45LC0zNjY4LjU4IDQ1NDMwLjUsLTM2ODkuMTIgNDU0NTUuOCwtMzY4OS4xMkw0NTUwOC42LC0zNjg5LjEyQzQ1NTI1LjQsLTM2ODkuMTIgNDU1MzksLTM2NzUuNTIgNDU1MzksLTM2NTguNzZDNDU1MzksLTM2NDIuMDEgNDU1MjUuNCwtMzYyOC40MSA0NTUwOC42LC0zNjI4LjQxTDQ1NDM4LjgsLTM2MjguNDFMNDU0NTEuNSwtMzY1MC40MUw0NTUwOC43LC0zNjUwLjQxQzQ1NTEzLjMsLTM2NTAuNDEgNDU1MTcsLTM2NTQuMTUgNDU1MTcsLTM2NTguNzVDNDU1MTcsLTM2NjMuMzUgNDU1MTMuMywtMzY2Ny4wOCA0NTUwOC43LC0zNjY3LjA4TDQ1NDg4LjgsLTM2NjcuMDhaIi8+PC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjA4NzUsMCwwLDAuNjA4NzUsMzQ0NjguMiw0Mzc5Ljg1KSI+PHBhdGggZD0iTTQ1NjM2LjUsLTM2NzcuNjJMNDU3MzUuMiwtMzY3Ny42MkM0NTc1MS45LC0zNjc3LjYyIDQ1NzY1LjUsLTM2NjQuMDIgNDU3NjUuNSwtMzY0Ny4yN0M0NTc2NS41LC0zNjMwLjUyIDQ1NzUxLjksLTM2MTYuOTIgNDU3MzUuMiwtMzYxNi45Mkw0NTY2My4xLC0zNjE2LjkyTDQ1Njc1LjgsLTM2MzguOTJMNDU3MzUuMiwtMzYzOC45MkM0NTczOS44LC0zNjM4LjkyIDQ1NzQzLjUsLTM2NDIuNjYgNDU3NDMuNSwtMzY0Ny4yNkM0NTc0My41LC0zNjUxLjg2IDQ1NzM5LjgsLTM2NTUuNTkgNDU3MzUuMiwtMzY1NS41OUw0NTcxNS40LC0zNjU1LjU5TDQ1NzE1LjQsLTM2NTUuNjJMNDU2NTguNSwtMzY1NS42Mkw0NTY1OC41LC0zNTc4LjIyTDQ1NjM2LjUsLTM1NzguMjJMNDU2MzYuNSwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC42MDg3NSwzNDI5MSw0Mzc5Ljg1KSI+PHBhdGggZD0iTTQ1NjM2LjUsLTM2NzcuNjJMNDU3MzUuMiwtMzY3Ny42MkM0NTc1MS45LC0zNjc3LjYyIDQ1NzY1LjUsLTM2NjQuMDIgNDU3NjUuNSwtMzY0Ny4yN0M0NTc2NS41LC0zNjMwLjUyIDQ1NzUxLjksLTM2MTYuOTIgNDU3MzUuMiwtMzYxNi45Mkw0NTY2My4xLC0zNjE2LjkyTDQ1Njc1LjgsLTM2MzguOTJMNDU3MzUuMiwtMzYzOC45MkM0NTczOS44LC0zNjM4LjkyIDQ1NzQzLjUsLTM2NDIuNjYgNDU3NDMuNSwtMzY0Ny4yNkM0NTc0My41LC0zNjUxLjg2IDQ1NzM5LjgsLTM2NTUuNTkgNDU3MzUuMiwtMzY1NS41OUw0NTcxNS40LC0zNjU1LjU5TDQ1NzE1LjQsLTM2NTUuNjJMNDU2NTguNSwtMzY1NS42Mkw0NTY1OC41LC0zNTc4LjIyTDQ1NjM2LjUsLTM1NzguMjJMNDU2MzYuNSwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC43Njk2OTgsMzQyMDAuOCw0OTcxLjc1KSI+PHBhdGggZD0iTTQ2MDU0LjQsLTM2NzcuNjJMNDU5NDAuOSwtMzY3Ny42Mkw0NTkyOC4yLC0zNjYwLjIyTDQ2MDQxLjcsLTM2NjAuMjJMNDYwNTQuNCwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC43Njk2OTgsMzQyMDAuOCw0OTk1LjMxKSI+PHBhdGggZD0iTTQ2MDU0LjQsLTM2NzcuNjJMNDU5NDAuOSwtMzY3Ny42Mkw0NTkyOC4yLC0zNjYwLjIyTDQ2MDQxLjcsLTM2NjAuMjJMNDYwNTQuNCwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC43Njk2OTgsMzQyMDAuOCw1MDE4Ljg3KSI+PHBhdGggZD0iTTQ2MDU0LjQsLTM2NzcuNjJMNDU5NDAuOSwtMzY3Ny42Mkw0NTkyOC4yLC0zNjYwLjIyTDQ2MDQxLjcsLTM2NjAuMjJMNDYwNTQuNCwtMzY3Ny42MloiLz48L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDg3NSwwLDAsMC42MDg3NSwzNDEzNi43LDQzNzkuODUpIj48cGF0aCBkPSJNNDU1NDkuNywtMzY0Ny4yN0w0NTU0OS43LC0zNjQ3LjI3QzQ1NTQ5LjYsLTM2NTEuODcgNDU1NDUuOSwtMzY1NS41OSA0NTU0MS4zLC0zNjU1LjU5TDQ1NTIxLjUsLTM2NTUuNTlMNDU1MjEuNSwtMzY1NS42Mkw0NTQ2NC42LC0zNjU1LjYyTDQ1NDY0LjYsLTM1NzguMjJMNDU0NDIuNiwtMzU3OC4yMkw0NTQ0Mi42LC0zNjc3LjYyTDQ1NTQxLjMsLTM2NzcuNjJDNDU1NTcuNiwtMzY3Ny42MiA0NTU3MSwtMzY2NC42NyA0NTU3MS42LC0zNjQ4LjQ3TDQ1NTcxLjcsLTM2NDguNDdMNDU1NzEuNywtMzU3OC4yMkw0NTU0OS43LC0zNTc4LjIyTDQ1NTQ5LjcsLTM2NDcuMjdaTTQ1NDY5LjQsLTM2MTcuMjJMNDU0NjkuNCwtMzYxNi45Mkw0NTQ2OS4yLC0zNjE2LjkyTDQ1NDY5LjQsLTM2MTcuMjJaIi8+PC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K") no-repeat left center;
  -webkit-mask-size:contain; mask-size:contain; }
.nav__links{ display:flex; gap:clamp(20px,2.4vw,40px); align-items:center; list-style:none; }
.nav__links a{ font-size:.82rem; letter-spacing:.01em; font-weight:480; color:var(--ink); text-decoration:none; opacity:.82; transition:opacity .25s ease; }
.nav__links a:hover, .nav__links a.is-current{ opacity:1; }
.nav__links a.is-current{ color:var(--accent); }
.nav__links .is-cta{ display:inline-flex; align-items:center; padding:9px 18px; border:1px solid var(--ink); border-radius:100px; opacity:1; }
.nav__burger{ display:none; width:26px; height:16px; position:relative; background:none; border:0; padding:0; cursor:pointer; z-index:45; }
.nav__burger span{ position:absolute; left:0; right:0; height:2px; border-radius:2px; background:var(--ink); transition:transform .32s ease, opacity .2s ease, top .32s ease; }
.nav__burger span:nth-child(1){ top:0; }
.nav__burger span:nth-child(2){ top:50%; transform:translateY(-50%); }
.nav__burger span:nth-child(3){ top:auto; bottom:0; }
body.menu-open .nav__burger span:nth-child(1){ top:50%; transform:translateY(-50%) rotate(45deg); }
body.menu-open .nav__burger span:nth-child(2){ opacity:0; }
body.menu-open .nav__burger span:nth-child(3){ top:50%; bottom:auto; transform:translateY(-50%) rotate(-45deg); }

@media (max-width:820px){
  .nav{ flex-wrap:wrap; }
  .nav__burger{ display:block; order:2; margin-left:auto; z-index:46; }
  .nav__logo{ height:12px; order:1; }
  .brandmark{ width:104px; height:19px; order:1; position:relative; z-index:46; }
  /* full-screen overlay menu */
  .nav__links{ position:fixed; inset:0; z-index:44; width:100vw; height:100svh; margin:0;
    flex-direction:column; align-items:center; justify-content:center; gap:4px;
    background:rgba(255,255,255,.985); -webkit-backdrop-filter:blur(22px) saturate(1.3); backdrop-filter:blur(22px) saturate(1.3);
    opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-10px);
    transition:opacity .34s ease, transform .4s cubic-bezier(.22,1,.36,1), visibility .34s; }
  .nav__links li{ width:auto; }
  .nav__links a{ display:block; padding:15px 10px; font-size:1.5rem; font-weight:500; text-align:center; opacity:.92; border-top:0; }
  .nav__links .is-cta{ margin-top:12px; border:1px solid var(--ink); border-radius:100px; padding:13px 34px; font-size:1.2rem; }
  body.menu-open{ overflow:hidden; }
  body.menu-open .nav{ background:transparent; box-shadow:none; }
  body.menu-open .nav__links{ opacity:1; visibility:visible; pointer-events:auto; transform:none; }
}

/* ---------- INTERIOR PAGE HEADER ---------- */
.phead{ padding:clamp(116px,16vh,180px) var(--pad) clamp(30px,5vh,60px); }
.phead__inner{ max-width:1320px; margin:0 auto; }
.phead__crumb{ font-size:.8rem; color:var(--ink-soft); margin-bottom:18px; }
.phead__crumb a{ text-decoration:none; color:var(--ink-soft); }
.phead__crumb a:hover{ color:var(--ink); }
.phead__eyebrow{ font-size:.74rem; letter-spacing:.24em; text-transform:uppercase; font-weight:600; color:var(--accent); }
.phead h1{ margin-top:14px; font-size:clamp(2rem,4vw,3.4rem); line-height:1.04; letter-spacing:-.035em; font-weight:560; color:var(--ink); max-width:20ch; }
.phead__copy{ margin-top:18px; max-width:56ch; font-size:clamp(1rem,1.15vw,1.15rem); line-height:1.55; font-weight:370; color:var(--ink-soft); }

/* ---------- BUTTONS ---------- */
.btn-solid{ display:inline-flex; align-items:center; gap:9px; padding:14px 28px; border-radius:100px; font-weight:560; font-size:1rem; text-decoration:none;
  background:var(--ink); color:#fff; border:1px solid var(--ink); transition:transform .3s ease, background .3s ease; }
.btn-solid:hover{ transform:translateY(-2px); background:#000; }
.btn-line{ display:inline-flex; align-items:center; gap:9px; padding:14px 28px; border-radius:100px; font-weight:560; font-size:1rem; text-decoration:none;
  background:#fff; color:var(--ink); border:1px solid rgba(13,16,18,.18); transition:transform .3s ease, border-color .3s ease; }
.btn-line:hover{ transform:translateY(-2px); border-color:var(--ink); }
.btn-ghost{ display:inline-flex; align-items:center; gap:9px; padding:12px 22px; border-radius:100px; white-space:nowrap;
  border:1px solid var(--ink); color:var(--ink); font-weight:500; font-size:.95rem; text-decoration:none; transition:background .3s ease, color .3s ease; }
.btn-ghost:hover{ background:var(--ink); color:#fff; }
.btn-arrow{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s ease; }
.btn-solid:hover .btn-arrow, .btn-ghost:hover .btn-arrow, .btn-line:hover .btn-arrow{ transform:translateX(4px); }

/* mobile: primary/secondary CTA buttons go full-width and stack */
@media (max-width:640px){
  .btn-solid, .btn-line, .btn-ghost{ width:100%; justify-content:center; }
}

/* ---------- FOOTER ---------- */
.ftr{ background:#0d1012; color:#c7cdd0; padding:clamp(52px,7vh,88px) var(--pad) clamp(26px,4vh,40px); }
.ftr__inner{ max-width:1320px; margin:0 auto; }
.ftr__top{ display:grid; grid-template-columns:1.6fr repeat(3,1fr) 1.4fr; gap:clamp(28px,3vw,54px); padding-bottom:clamp(34px,5vh,56px); border-bottom:1px solid rgba(255,255,255,.1); }
.ftr__logo{ height:16px; width:auto; }
.ftr__logo path{ fill:#fff; }
.ftr .brandmark{ background-color:#fff; width:104px; height:17px; }
.ftr__tag{ margin-top:18px; max-width:34ch; font-size:.95rem; line-height:1.55; font-weight:370; color:#8b9296; }
.ftr__col h4, .ftr__news h4{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:#6f767a; }
.ftr__col a{ display:block; margin-top:13px; color:#c7cdd0; text-decoration:none; font-size:.95rem; transition:color .25s ease; }
.ftr__col a:hover{ color:#fff; }
.ftr__news p{ margin-top:13px; font-size:.9rem; line-height:1.5; color:#8b9296; }
.ftr__form{ margin-top:16px; display:flex; gap:8px; }
.ftr__form input{ flex:1; min-width:0; padding:12px 16px; border-radius:100px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.05); color:#fff; font-size:.9rem; font-family:inherit; }
.ftr__form input::placeholder{ color:#6f767a; }
.ftr__form button{ flex:none; width:44px; height:44px; border-radius:50%; border:0; cursor:pointer; background:var(--accent); color:#fff; display:grid; place-items:center; transition:transform .3s ease; }
.ftr__form button:hover{ transform:scale(1.06); }
.ftr__form button svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ftr__bottom{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-top:24px; }
.ftr__legal{ font-size:.84rem; color:#6f767a; }
.ftr__legal a{ color:#8b9296; text-decoration:none; }
.ftr__legal a:hover{ color:#fff; }
.ftr__social{ display:flex; gap:12px; }
.ftr__social a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.14); display:grid; place-items:center; color:#c7cdd0; transition:background .25s ease, color .25s ease; }
.ftr__social a:hover{ background:#fff; color:#0d1012; }
.ftr__social svg{ width:16px; height:16px; fill:currentColor; }
@media (max-width:900px){
  .ftr__top{ grid-template-columns:1fr 1fr; gap:32px; }
  .ftr__brand, .ftr__news{ grid-column:1 / -1; }
}
@media (max-width:600px){
  .ftr__top{ grid-template-columns:1fr; }
  .ftr__bottom{ flex-direction:column; align-items:flex-start; }
}

/* product package with a soft grounding shadow at its base */
.pkg{ position:relative; display:inline-block; line-height:0; }
.pkg > img{ position:relative; z-index:1; display:block; width:100%; height:auto; transition:transform .45s cubic-bezier(.22,1,.36,1); }
.pkg::after{ content:""; position:absolute; z-index:0; left:50%; bottom:-4px; transform:translateX(-50%);
  width:90%; height:24px; border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(18,26,31,.22), rgba(18,26,31,0) 72%); filter:blur(8px); pointer-events:none; }

/* ============================================================
   Interior pages — unified line icons + scroll reveal (v2)
   ============================================================ */
/* Boundary-less, geometric line icons. Any .licn wrapper OR the
   legacy per-page icon wrappers get the same treatment: no box,
   larger, consistent stroke, gentle infinite float. */
@keyframes icnFloat{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-5px) } }
.interior .licn,
.interior .card__ico, .interior .point__ico, .interior .feat__ico,
.interior .who__ico, .interior .val__ico, .interior .hubcard__ico,
.interior .ppt__ico, .interior .minsight__ico{
  width:auto; height:auto; background:none !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important; padding:0 !important; display:block;
}
.interior .licn svg,
.interior .card__ico svg, .interior .point__ico svg, .interior .feat__ico svg,
.interior .who__ico svg, .interior .val__ico svg, .interior .hubcard__ico svg,
.interior .ppt svg, .interior .ppt__ico svg, .interior .minsight__ico svg{
  width:54px; height:54px; fill:none; stroke:var(--c, var(--accent));
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; overflow:visible;
}
.interior .hubcard__ico svg{ width:58px; height:58px; }
/* draw-on: children start hidden, JS reveals stroke on scroll */
.interior .icn-draw > *{ stroke-dasharray:1; stroke-dashoffset:1; }
.interior .icn-draw.is-drawn > *{ stroke-dashoffset:0; }
@media (prefers-reduced-motion:reduce){ .interior .icn-draw > *{ stroke-dashoffset:0 !important; } }

/* check-bullet: boundary-less tick (no circle) */
.interior .ck__b, .interior .valid__ck{
  width:auto !important; height:auto !important; background:none !important; border-radius:0 !important; margin-top:2px;
}
.interior .ck__b svg, .interior .valid__ck svg{
  width:20px; height:20px; stroke:var(--c, var(--accent)) !important; stroke-width:2.4;
}

/* scroll reveal for card-like blocks + [data-reveal] on interior pages */
.interior .will-reveal{ opacity:0; transform:translateY(20px);
  transition:opacity .65s ease var(--rev-d,0ms), transform .65s cubic-bezier(.22,1,.36,1) var(--rev-d,0ms); }
.interior .will-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .interior .will-reveal{ opacity:1 !important; transform:none !important; } }

/* ============================================================
   Interior pages — recurring hero visual (video + patch) & effects
   ============================================================ */
@keyframes floaty2{ 0%,100%{ transform:translateY(0) rotate(0) } 50%{ transform:translateY(-12px) rotate(-1.5deg) } }
.phead--split{ display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(28px,4vw,60px); align-items:center; }
.herovis{ position:relative; aspect-ratio:4/3.3; border-radius:28px; overflow:hidden;
  border:1px solid rgba(13,16,18,.07); background:radial-gradient(120% 120% at 50% 12%, color-mix(in srgb,var(--c) 16%,#fff), #fff 72%);
  box-shadow:0 40px 80px -56px rgba(40,90,100,.55); }
.herovis video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.85; mix-blend-mode:multiply; }
.herovis__patch{ position:absolute; inset:0; margin:auto; width:56%; height:auto; z-index:2;
  filter:drop-shadow(0 26px 42px rgba(30,80,90,.3)); animation:floaty2 8s ease-in-out infinite; }
.herovis__ring{ position:absolute; inset:12%; border:1px solid color-mix(in srgb,var(--c) 40%,transparent); border-radius:50%; z-index:1; }
.herovis__ring:nth-of-type(2){ inset:22%; opacity:.6; }
@media (prefers-reduced-motion:reduce){ .herovis__patch{ animation:none; } }
@media (max-width:900px){ .phead--split{ grid-template-columns:1fr; } .herovis{ order:-1; width:min(460px,100%); justify-self:center; } }

/* CTA light-ribbon shimmer (recurring effect) */
.interior .cta2__box{ position:relative; overflow:hidden; }
.interior .cta2__box::before{ content:""; position:absolute; top:-60%; left:-30%; width:60%; height:220%;
  background:linear-gradient(75deg, transparent, color-mix(in srgb,var(--c) 22%,#fff), transparent);
  transform:rotate(8deg); animation:ctaShine 7s ease-in-out infinite; pointer-events:none; z-index:0; }
.interior .cta2__box > *{ position:relative; z-index:1; }
@keyframes ctaShine{ 0%{ transform:translateX(-40%) rotate(8deg) } 55%,100%{ transform:translateX(320%) rotate(8deg) } }
@media (prefers-reduced-motion:reduce){ .interior .cta2__box::before{ animation:none; opacity:.4; } }

/* photoband: add a soft aqua gradient so it ties to the brand palette */
.photoband{ background:linear-gradient(120deg,#0d1012, #0f2a2e); }
.photoband::after{ content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(90deg, rgba(13,16,18,.82) 0%, rgba(13,16,18,.35) 55%, color-mix(in srgb,var(--c) 30%, transparent) 100%); }
.photoband__in{ z-index:2; }

/* perf: drop heavy hero video on small screens (patch + gradient remain) */
@media (max-width:600px){ .herovis video{ display:none; } .herovis{ aspect-ratio:5/4; } }

/* ---------- Back to top button (global) ---------- */
.to-top{ position:fixed; right:clamp(16px,3vw,28px); bottom:clamp(16px,3vw,28px); width:44px; height:44px; border-radius:50%;
  border:1px solid rgba(13,16,18,.12); background:rgba(255,255,255,.92); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  box-shadow:0 12px 30px -12px rgba(40,70,80,.4); display:grid; place-items:center; cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .3s ease, transform .3s ease, visibility .3s; z-index:50; color:var(--accent); }
.to-top.show{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:#fff; }
.to-top svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media print{ .to-top{ display:none !important; } }

/* footer click-to-email */
.ftr__contact{ margin-top:12px; font-size:.85rem; }
.ftr__contact a{ color:#c7cdd0; text-decoration:none; } .ftr__contact a:hover{ color:#fff; }
.ftr__addr{ margin-top:8px; font-size:.8rem; line-height:1.5; color:#8b9296; font-style:normal; }

/* WhatsApp floating chat button (sitewide) */
.wa-fab{ position:fixed; right:20px; bottom:84px; z-index:60; width:54px; height:54px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 14px 32px -10px rgba(0,0,0,.4); transition:transform .25s ease; }
.wa-fab:hover{ transform:scale(1.07); }
.wa-fab svg{ width:30px; height:30px; fill:#fff; }
@media (max-width:640px){ .wa-fab{ right:16px; bottom:78px; width:50px; height:50px; } .wa-fab svg{ width:27px; height:27px; } }

/* footer newsletter feedback */
.ftr__form{ flex-wrap:wrap; }
.ftr__ok{ padding:12px 0; font-size:.9rem; font-weight:500; color:var(--accent); }
.ftr__err{ flex-basis:100%; margin-top:6px; font-size:.8rem; color:#e0786a; }
