PageSourceSearch

https://www.sonicite.ai/_next/static/chunks/0b0.dd-h8j49m.js

js sonicite.ai collected 2026-10-05 12:40:07 UTC 67,689 bytes, 3 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18271,(e,n,a)=>{n.exports=JSON.parse('{"en":{"header":"<header class=\\"site-header is-docked\\"><a class=\\"nav-brand\\" href=\\"/?lang=en\\" aria-label=\\"Sonicite home\\"><img class=\\"nav-mark\\" src=\\"/design/2026-09-08/logo-motion/mark.svg\\" alt=\\"\\"><img class=\\"nav-word\\" src=\\"/design/2026-09-08/logo-motion/wordmark.png\\" alt=\\"Sonicite\\"></a><nav class=\\"primary-nav\\" id=\\"primary-nav\\" aria-label=\\"Primary\\"><details class=\\"products-menu\\"><summary>Products</summary><div class=\\"product-links\\"><a href=\\"/flow?lang=en\\">Flow <span>Music workflow</span></a><a href=\\"/field?lang=en\\">Field <span>Brands &amp; spaces</span></a><a href=\\"/flux?lang=en\\">Flux <span>Coming soon</span></a></div></details><a href=\\"/experiences?lang=en\\">Experiences</a><a href=\\"/blog?lang=en\\">Blog</a><a href=\\"/about?lang=en\\">About</a><a href=\\"/contact?lang=en\\">Contact</a></nav><div class=\\"header-tools\\"><a class=\\"language-link\\" href=\\"/?lang=en\\" lang=\\"zh-CN\\">CN</a><button id=\\"menu-toggle\\" aria-controls=\\"primary-nav\\" aria-expanded=\\"false\\" hidden=\\"\\">Menu</button></div></header>","footer":"<footer class=\\"site-footer motion-visible\\">\\n  <div class=\\"sf-accent\\" aria-hidden=\\"true\\"></div>\\n\\n  \\n  <div class=\\"content-shell sf-sub-rail\\">\\n    <div class=\\"sf-sub-intro\\">\\n      <p>Stay in tune.</p>\\n      <span>Notes on sound, products and what we’re building.</span>\\n    </div>\\n    <form class=\\"sf-sub-form\\" action=\\"/api/subscribe\\" method=\\"post\\">\\n      <label class=\\"sf-sub-row\\" for=\\"sf-sub-email\\">\\n        <input id=\\"sf-sub-email\\" type=\\"email\\" name=\\"email\\" placeholder=\\"Enter your email\\" autocomplete=\\"email\\" required=\\"\\" class=\\"sf-sub-input\\" aria-label=\\"Email address\\">\\n        <button type=\\"submit\\" class=\\"sf-sub-btn\\" aria-label=\\"Subscribe\\">\\n          <span>Subscribe</span>\\n          <svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n            <path d=\\"M5 12h14M13 6l6 6-6 6\\" stroke=\\"currentColor\\" stroke-width=\\"1.6\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"></path>\\n          </svg>\\n        </button>\\n      </label>\\n    <p class=\\"subscribe-note\\" role=\\"status\\" aria-live=\\"polite\\"></p></form>\\n  </div>\\n\\n  <div class=\\"content-shell sf-grid\\">\\n\\n    \\n    <div class=\\"sf-col sf-brand\\">\\n      <a href=\\"/?lang=en\\" class=\\"sf-logo\\" aria-label=\\"Sonicite home\\">\\n        <span class=\\"footer-mark\\"><img src=\\"/design/2026-09-08/logo-motion/mark.svg\\" alt=\\"\\"></span><img src=\\"/design/2026-09-08/logo-motion/wordmark.png\\" alt=\\"Sonicite\\" class=\\"footer-wordmark\\">\\n      </a>\\n      <p class=\\"sf-tagline\\">Sound, finally on purpose.</p>\\n    </div>\\n\\n    \\n    <div class=\\"sf-col\\">\\n      <h5 class=\\"sf-col-title\\">Products</h5>\\n      <ul>\\n        <li><a href=\\"/flow?lang=en\\">Sonicite Flow</a></li>\\n        <li><a href=\\"/field?lang=en\\">Sonicite Field</a></li>\\n        <li><a href=\\"/flux?lang=en\\">Sonicite Flux · Coming Soon</a></li>\\n      </ul>\\n    </div>\\n\\n    \\n    <div class=\\"sf-col\\">\\n      <h5 class=\\"sf-col-title\\">Company</h5>\\n      <ul>\\n        <li><a href=\\"/experiences?lang=en\\">Experiences</a></li>\\n        <li><a href=\\"/blog?lang=en\\">Blog</a></li>\\n        <li><a href=\\"/about?lang=en\\">About</a></li>\\n        <li><a href=\\"/contact?lang=en\\">Contact</a></li>\\n      </ul>\\n    </div>\\n\\n    \\n    <a class=\\"sf-fm-panel\\" href=\\"https://sonicite.fm\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\" aria-label=\\"Listen to our music on Sonicite FM\\">\\n      <span class=\\"sf-fm-panel-head\\">\\n        <small>SONICITE.FM</small>\\n        <b aria-hidden=\\"true\\">↗</b>\\n      </span>\\n      <span class=\\"sf-fm-panel-copy sf-copy-en\\">\\n        <strong>Listen to our music.</strong>
1\\n        <span>Mixes and original sound, playing elsewhere.</span>\\n      </span>\\n      \\n      <span class=\\"sf-fm-bauhaus\\" aria-hidden=\\"true\\">\\n        <i class=\\"sf-bh-ring\\"></i>\\n        <i class=\\"sf-bh-square\\"></i>\\n        <i class=\\"sf-bh-dot\\"></i>\\n        <i class=\\"sf-bh-line\\"></i>\\n      </span>\\n    </a>\\n  </div>\\n\\n  \\n  <div class=\\"content-shell sf-base\\">\\n    <div class=\\"sf-base-left\\">\\n      \\n      \\n    </div>\\n\\n    <div class=\\"sf-base-center sf-social\\">\\n      <a href=\\"https://www.instagram.com/sonicite.ai\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"Instagram\\">\\n        <svg viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <rect x=\\"3\\" y=\\"3\\" width=\\"18\\" height=\\"18\\" rx=\\"5\\" stroke=\\"currentColor\\" stroke-width=\\"1.6\\"></rect>\\n          <circle cx=\\"12\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.6\\"></circle>\\n          <circle cx=\\"17.5\\" cy=\\"6.5\\" r=\\"1.1\\" fill=\\"currentColor\\"></circle>\\n        </svg>\\n      </a>\\n      <a href=\\"https://www.youtube.com/@sonicite-ai\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"YouTube\\">\\n        <svg viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <path d=\\"M22.5 7.2c-.25-1.5-1-2.4-2.4-2.6C17.8 4.2 12 4.2 12 4.2s-5.8 0-8.1.4c-1.4.2-2.15 1.1-2.4 2.6C1.2 9.4 1.2 12 1.2 12s0 2.6.3 4.8c.25 1.5 1 2.4 2.4 2.6 2.3.4 8.1.4 8.1.4s5.8 0 8.1-.4c1.4-.2 2.15-1.1 2.4-2.6.3-2.2.3-4.8.3-4.8s0-2.6-.3-4.8z\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></path>\\n          <path d=\\"M10 9l5 3-5 3V9z\\" fill=\\"currentColor\\"></path>\\n        </svg>\\n      </a>\\n      <a href=\\"https://xhslink.com/m/5FNXRtD0fWp\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link sf-social-text\\" aria-label=\\"Xiaohongshu / RED\\">\\n        <span>RED</span>\\n      </a>\\n      <a href=\\"https://soundcloud.com/sonicite-fm\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"SoundCloud\\">\\n        <svg viewBox=\\"0 0 24 16\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <g stroke=\\"currentColor\\" stroke-width=\\"1.4\\" stroke-linecap=\\"round\\">\\n            <line x1=\\"1\\" y1=\\"10\\" x2=\\"1\\" y2=\\"14\\"></line>\\n            <line x1=\\"3\\" y1=\\"8\\" x2=\\"3\\" y2=\\"14\\"></line>\\n            <line x1=\\"5\\" y1=\\"6\\" x2=\\"5\\" y2=\\"14\\"></line>\\n            <line x1=\\"7\\" y1=\\"4\\" x2=\\"7\\" y2=\\"14\\"></line>\\n            <line x1=\\"9\\" y1=\\"2.5\\" x2=\\"9\\" y2=\\"14\\"></line>\\n            <line x1=\\"11\\" y1=\\"4\\" x2=\\"11\\" y2=\\"14\\"></line>\\n          </g>\\n          <path d=\\"M13 14V6.5c0-.5.5-.9 1-.7 1.8.5 3.2 2 3.5 3.8.6-.4 1.3-.6 2-.6 2 0 3.5 1.5 3.5 3.5S21.5 16 19.5 16H13z\\" fill=\\"currentColor\\" opacity=\\"0.92\\"></path>\\n        </svg>\\n      </a>\\n      <a href=\\"https://www.mixcloud.com/sonicite-fm\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"MixCloud\\">\\n        <svg viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <circle cx=\\"7\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></circle>\\n          <circle cx=\\"12\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></circle>\\n          <circle cx=\\"17\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></circle>\\n        </svg>\\n      </a>\\n    </div>\\n\\n    <div class=\\"sf-base-right\\">\\n      <span>© 2026 Sonicite. All rights reserved.</span>\\n    </div>\\n  </div>\\n</footer>"},"zh":{"header":"<header class=\\"site-header is-docked\\"><a class=\\"nav-brand\\" href=\\"/?lang=zh\\" aria-label=\\"Sonicite 首页\\"><img class=\\"nav-mark\\" src=\\"/design/2026-09-08/logo-motion/mark.svg\\" alt=\\"\\"><img class=\\"nav-word\\" src=\\"/design/2026-09-08/logo-motion/wordmark.png\\" alt=\\"Sonicite\\"></a><nav class=\\"primary-nav\\" id=\\"primary-nav\\" aria-label=\\"主导航\\"><details class=\\"products-menu\\"><summary>产品</summary><div class=\\"product-links\\"><a href=\\"/flow?lang=zh\\">Flow <span>音乐工作流</span></a><a href=\\"/field?lang=zh\\">Field <span>品牌与空间</span></a><a href=\\"/flux?lang=zh\\">Flux <span>即将推出</span></a></div></details><a href=\\"/experiences?lang=zh\\">活动</a><a href=\\"/blog?lang=zh\\">博客</a><a href=\\"/about?lang=zh\\">关于</a><a href=\\"/contact?lang=zh\\">联系</a></nav><div class=\\"header-tools\\"><a class=\\"language-link\\" href=\\"/?lang=zh\\" lang=\\"en\\">EN</a><button id=\\"menu-toggle\\" aria-controls=\\"primary-nav\\" aria-expanded=\\"false\\" hidden=\\"\\">菜单</button></div></header>","footer":"<footer class=\\"site-footer motion-visible\\">\\n  <div class=\\"sf-accent\\" aria-hidden=\\"true\\"></div>\\n\\n  \\n  <div class=\\"content-shell sf-sub-rail\\">\\n    <div class=\\"sf-sub-intro\\">\\n      <p>保持同频。</p>
1\\n      <span>接收声音、产品与 Sonicite 最新动态。</span>\\n    </div>\\n    <form class=\\"sf-sub-form\\" action=\\"/api/subscribe\\" method=\\"post\\">\\n      <label class=\\"sf-sub-row\\" for=\\"sf-sub-email\\">\\n        <input id=\\"sf-sub-email\\" type=\\"email\\" name=\\"email\\" placeholder=\\"输入邮箱\\" autocomplete=\\"email\\" required=\\"\\" class=\\"sf-sub-input\\" aria-label=\\"电子邮箱\\">\\n        <button type=\\"submit\\" class=\\"sf-sub-btn\\" aria-label=\\"订阅\\">\\n          <span>订阅</span>\\n          <svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n            <path d=\\"M5 12h14M13 6l6 6-6 6\\" stroke=\\"currentColor\\" stroke-width=\\"1.6\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"></path>\\n          </svg>\\n        </button>\\n      </label>\\n    <p class=\\"subscribe-note\\" role=\\"status\\" aria-live=\\"polite\\"></p></form>\\n  </div>\\n\\n  <div class=\\"content-shell sf-grid\\">\\n\\n    \\n    <div class=\\"sf-col sf-brand\\">\\n      <a href=\\"/?lang=zh\\" class=\\"sf-logo\\" aria-label=\\"Sonicite home\\">\\n        <span class=\\"footer-mark\\"><img src=\\"/design/2026-09-08/logo-motion/mark.svg\\" alt=\\"\\"></span><img src=\\"/design/2026-09-08/logo-motion/wordmark.png\\" alt=\\"Sonicite\\" class=\\"footer-wordmark\\">\\n      </a>\\n      <p class=\\"sf-tagline\\">Sound, finally on purpose.</p>\\n    </div>\\n\\n    \\n    <div class=\\"sf-col\\">\\n      <h5 class=\\"sf-col-title\\">产品</h5>\\n      <ul>\\n        <li><a href=\\"/flow?lang=zh\\">Sonicite Flow</a></li>\\n        <li><a href=\\"/field?lang=zh\\">Sonicite Field</a></li>\\n        <li><a href=\\"/flux?lang=zh\\">Sonicite Flux · 即将推出</a></li>\\n      </ul>\\n    </div>\\n\\n    \\n    <div class=\\"sf-col\\">\\n      <h5 class=\\"sf-col-title\\">公司</h5>\\n      <ul>\\n        <li><a href=\\"/experiences?lang=zh\\">活动</a></li>\\n        <li><a href=\\"/blog?lang=zh\\">博客</a></li>\\n        <li><a href=\\"/about?lang=zh\\">关于</a></li>\\n        <li><a href=\\"/contact?lang=zh\\">联系</a></li>\\n      </ul>\\n    </div>\\n\\n    \\n    <a class=\\"sf-fm-panel\\" href=\\"https://sonicite.fm\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\" aria-label=\\"Listen to our music on Sonicite FM\\">\\n      <span class=\\"sf-fm-panel-head\\">\\n        <small>SONICITE.FM</small>\\n        <b aria-hidden=\\"true\\">↗</b>\\n      </span>\\n      \\n      <span class=\\"sf-fm-panel-copy sf-copy-cn\\">\\n        <strong>来听听我们的音乐。</strong>\\n        <span>在 Sonicite FM 收听 Mix 与原创声音。</span>\\n      </span>\\n      <span class=\\"sf-fm-bauhaus\\" aria-hidden=\\"true\\">\\n        <i class=\\"sf-bh-ring\\"></i>\\n        <i class=\\"sf-bh-square\\"></i>\\n        <i class=\\"sf-bh-dot\\"></i>\\n        <i class=\\"sf-bh-line\\"></i>\\n      </span>\\n    </a>\\n  </div>\\n\\n  \\n  <div class=\\"content-shell sf-base\\">\\n    <div class=\\"sf-base-left\\">\\n      \\n      \\n    </div>\\n\\n    <div class=\\"sf-base-center sf-social\\">\\n      <a href=\\"https://www.instagram.com/sonicite.ai\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"Instagram\\">\\n        <svg viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <rect x=\\"3\\" y=\\"3\\" width=\\"18\\" height=\\"18\\" rx=\\"5\\" stroke=\\"currentColor\\" stroke-width=\\"1.6\\"></rect>\\n          <circle cx=\\"12\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.6\\"></circle>\\n          <circle cx=\\"17.5\\" cy=\\"6.5\\" r=\\"1.1\\" fill=\\"currentColor\\"></circle>\\n        </svg>\\n      </a>\\n      <a href=\\"https://www.youtube.com/@sonicite-ai\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"YouTube\\">\\n        <svg viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <path d=\\"M22.5 7.2c-.25-1.5-1-2.4-2.4-2.6C17.8 4.2 12 4.2 12 4.2s-5.8 0-8.1.4c-1.4.2-2.15 1.1-2.4 2.6C1.2 9.4 1.2 12 1.2 
112s0 2.6.3 4.8c.25 1.5 1 2.4 2.4 2.6 2.3.4 8.1.4 8.1.4s5.8 0 8.1-.4c1.4-.2 2.15-1.1 2.4-2.6.3-2.2.3-4.8.3-4.8s0-2.6-.3-4.8z\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></path>\\n          <path d=\\"M10 9l5 3-5 3V9z\\" fill=\\"currentColor\\"></path>\\n        </svg>\\n      </a>\\n      <a href=\\"https://xhslink.com/m/5FNXRtD0fWp\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link sf-social-text\\" aria-label=\\"Xiaohongshu / RED\\">\\n        <span>RED</span>\\n      </a>\\n      <a href=\\"https://soundcloud.com/sonicite-fm\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"SoundCloud\\">\\n        <svg viewBox=\\"0 0 24 16\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <g stroke=\\"currentColor\\" stroke-width=\\"1.4\\" stroke-linecap=\\"round\\">\\n            <line x1=\\"1\\" y1=\\"10\\" x2=\\"1\\" y2=\\"14\\"></line>\\n            <line x1=\\"3\\" y1=\\"8\\" x2=\\"3\\" y2=\\"14\\"></line>\\n            <line x1=\\"5\\" y1=\\"6\\" x2=\\"5\\" y2=\\"14\\"></line>\\n            <line x1=\\"7\\" y1=\\"4\\" x2=\\"7\\" y2=\\"14\\"></line>\\n            <line x1=\\"9\\" y1=\\"2.5\\" x2=\\"9\\" y2=\\"14\\"></line>\\n            <line x1=\\"11\\" y1=\\"4\\" x2=\\"11\\" y2=\\"14\\"></line>\\n          </g>\\n          <path d=\\"M13 14V6.5c0-.5.5-.9 1-.7 1.8.5 3.2 2 3.5 3.8.6-.4 1.3-.6 2-.6 2 0 3.5 1.5 3.5 3.5S21.5 16 19.5 16H13z\\" fill=\\"currentColor\\" opacity=\\"0.92\\"></path>\\n        </svg>\\n      </a>\\n      <a href=\\"https://www.mixcloud.com/sonicite-fm\\" target=\\"_blank\\" rel=\\"noopener\\" class=\\"sf-social-link\\" aria-label=\\"MixCloud\\">\\n        <svg viewBox=\\"0 0 24 24\\" fill=\\"none\\" aria-hidden=\\"true\\">\\n          <circle cx=\\"7\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></circle>\\n          <circle cx=\\"12\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></circle>\\n          <circle cx=\\"17\\" cy=\\"12\\" r=\\"4\\" stroke=\\"currentColor\\" stroke-width=\\"1.5\\"></circle>\\n        </svg>\\n      </a>\\n    </div>\\n\\n    <div class=\\"sf-base-right\\">\\n      <span>© 2026 Sonicite. 保留所有权利。</span>\\n    </div>\\n  </div>\\n</footer>"}}')},47536,(e,n,a)=>{n.exports=JSON.parse("\"/* ============================================================\\n   SONICITE GLOBAL FOOTER · v3\\n   One primary action above; quiet newsletter + FM in the footer.\\n   ============================================================ */\\n\\n.handoff-chrome .site-footer {\\n  position: relative;\\n  overflow: hidden;\\n  padding: 0 0 clamp(24px, 2.6vw, 38px);\\n  color: rgba(232, 230, 222, .7);\\n  background: #050505;\\n  border-top: 1px solid rgba(232, 230, 222, .08);\\n}\\n\\n.handoff-chrome .sf-accent {\\n  position: absolute;\\n  inset: 0 0 auto;\\n  height: 1px;\\n  pointer-events: none;\\n  background: linear-gradient(90deg,\\n    transparent 0%,\\n    rgba(200, 184, 255, .32) 32%,\\n    rgba(180, 200, 232, .3) 54%,\\n    rgba(232, 180, 190, .28) 72%,\\n    transparent 100%);\\n}\\n\\n/* Newsletter is a utility rail, not a promotional card. */\\n.handoff-chrome .sf-sub-rail {\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: center;\\n  align-items: center;\\n  gap: clamp(22px, 2.8vw, 32px);\\n  min-height: clamp(164px, 18vw, 210px);\\n  padding-top: clamp(34px, 4.5vw, 58px);\\n  padding-bottom: clamp(34px, 4.5vw, 58px);\\n  border-bottom: 1px solid rgba(232, 230, 222, .08);\\n  text-align: center;\\n}\\n\\n.handoff-chrome .sf-sub-intro {\\n  min-width: 0;\\n}\\n\\n.handoff-chrome .sf-sub-intro p {\\n  margin: 0;\\n  color: rgba(241, 239, 230, .9);\\n  font: 400 clamp(1.55rem, 2.3vw, 2.15rem)/1.05 var(--serif, 'Fraunces', serif);\\n  letter-spacing: -.018em;\\n}\\n\\n.handoff-chrome .sf-sub-intro span {\\n  display: block;\\n  margin-top: 8px;\\n  color: rgba(232, 230, 222, .42);\\n  font: 400 .78rem/1.4 var(--sans, 'Space Grotesk', sans-serif);\\n  letter-spacing: .015em;\\n}\\n\\n.handoff-chrome .sf-sub-form { width: min(100%, 660px); min-width: 0; margin: 0; }\\n\\n.handoff-chrome .sf-sub-row {\\n  display: flex;\\n  gap: 12px;\\n  align-items: center;\\n  min-width: 0;\\n  padding: 0 0 10px;\\n  border: 0;\\n  border-bottom: 1px solid rgba(232, 230, 222, .28);\\n  border-radius: 0;\\n  background: transparent;\\n  transition: border-color .35s ease, box-shadow .35s ease;\\n}\\n\\n.handoff-chrome .sf-sub-row:focus-within {\\n  border-color: rgba(210, 200, 242, .76);\\n  box-shadow: 0 8px 22px -18px rgba(200, 184, 255, .9);\\n}\\n\\n.handoff-chrome .sf-sub-input {\\n  width: 100%;\\n  min-width: 0;\\n  padding: 10px 0;\\n  color: #f1efe6;\\n  background: transparent;\\n  border: 0;\\n  outline: 0;\\n  font: 400 .94rem/1.3 var(--sans, 'Space Grotesk', sans-serif);\\n}\\n\\n.handoff-chrome .sf-sub-input::placeholder { color: rgba(232, 230, 222, .3); }\\n\\n.handoff-chrome .sf-sub-btn {\\n  display: inline-flex;\\n  gap: 9px;\\n  align-items: center;\\n  align-self: center;\\n  padding: 8px 0 8px 18px;\\n  color: rgba(241, 239, 230, .82);\\n  background: transparent;\\n  border: 0;\\n  cursor: pointer;\\n  font: 500 .61rem/1 var(--mono, 'JetBrains Mono', monospace);\\n  letter-spacing: .14em;\\n  text-transform: uppercase;\\n  border-radius: 0;\\n  transition: color .3s ease, background-color .3s ease;\\n}\\n\\n.handoff-chrome .sf-sub-btn svg { transition: transform .4s cubic-bezier(.16, 1, .3, 1); }\\n.handoff-chrome .sf-sub-btn:hover { color: #fff; background: transparent; }\\n.handoff-chrome .sf-sub-btn:hover svg { transform: translateX(3px); }\\n.handoff-chrome .sf-sub-btn.is-sent { color: #c8b8ff; background: transparent; }\\n\\n/* Main footer grid */\\n.handoff-chrome .sf-grid {\\n  display: grid;\\n  grid-template-columns: minmax(0, 1.1fr) minmax(130px, .7fr) minmax(130px, .7fr) minmax(300px, 1.35fr);\\n  gap: clamp(28px, 3.6vw, 64px);\\n  align-items: stretch;\\n  padding-top: clamp(44px, 5.5vw, 72px);\\n  padding-bottom: clamp(38px, 4.5vw, 60px);\\n}\\n\\n.handoff-chrome .sf-col h5,\\n.handoff-chrome .sf-col-title {\\n  margin: 0 0 22px;\\n  color: rgba(232, 230, 222, .5);\\n  font: 500 .68rem/1.2 var(--mono, 'JetBrains Mono', monospace);\\n  letter-spacing: .22em;\\n  text-transform: uppercase;\\n}\\n\\n.handoff-chrome .sf-col ul { margin: 0; padding: 0; list-style: none; }\\n.handoff-chrome .sf-col li { margin: 0 0 10px; }\\n\\n.handoff-chrome .sf-col a {\\n  display: inline-block;\\n  color: rgba(232, 230, 222, .7);\\n  text-decoration: none;\\n  font: 400 .95rem/1.4 var(--sans, 'Space Grotesk', sans-serif);\\n  transition: color .35s ease, transform .35s cubic-bezier(.22, 1, .36, 1);\\n}\\n\\n.handoff-chrome .sf-col a:hover { color: #f1efe6; transform: translateX(2px); }\\n\\n.handoff-chrome .sf-brand .sf-logo {\\n  display: inline-flex;\\n  align-items: center;\\n  color: #f1efe6;\\n  text-decoration: none;\\n}\\n\\n.handoff-chrome .sf-brand .sonicite-logo-img {\\n  display: block;\\n  width: auto;
1\\n  height: 26px;\\n  transition: opacity .35s ease;\\n}\\n\\n.handoff-chrome .sf-brand .sf-logo:hover .sonicite-logo-img { opacity: .85; }\\n.handoff-chrome .sf-brand .logo-mark { width: 26px; height: auto; color: #f1efe6; }\\n\\n.handoff-chrome .sf-logo-text {\\n  color: #f1efe6;\\n  font: 400 1.18rem/1 var(--sans, 'Space Grotesk', sans-serif);\\n  letter-spacing: -.01em;\\n}\\n\\n.handoff-chrome .sf-tagline {\\n  max-width: 22ch;\\n  margin: 16px 0 0;\\n  color: rgba(232, 230, 222, .68);\\n  font: italic 400 1.05rem/1.4 var(--serif, 'Fraunces', serif);\\n  letter-spacing: -.005em;\\n}\\n\\n/* Sonicite FM takes the former newsletter column. */\\n.handoff-chrome .sf-fm-panel {\\n  position: relative;\\n  isolation: isolate;\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: space-between;\\n  min-height: 188px;\\n  padding: 20px 22px 22px;\\n  overflow: hidden;\\n  color: #171918;\\n  text-decoration: none;\\n  border: 0;\\n  border-radius: 12px;\\n  -webkit-backdrop-filter: blur(18px) saturate(.82);\\n          backdrop-filter: blur(18px) saturate(.82);\\n  background:\\n    radial-gradient(90% 120% at 100% 0%, rgba(200, 184, 255, .22), transparent 55%),\\n    radial-gradient(70% 100% at 0% 100%, rgba(232, 180, 190, .13), transparent 62%),\\n    linear-gradient(125deg, rgba(232, 235, 232, .96), rgba(198, 203, 201, .93));\\n  background-size: 135% 135%, 150% 150%, 100% 100%;\\n  box-shadow:\\n    inset 0 1px 0 rgba(255, 255, 255, .72),\\n    inset 0 -1px 0 rgba(13, 16, 15, .08),\\n    0 18px 48px -30px rgba(0, 0, 0, .85);\\n  animation: sfFmDrift 12s ease-in-out infinite alternate;\\n  transition: filter .45s ease, box-shadow .45s ease, transform .55s cubic-bezier(.16, 1, .3, 1);\\n}\\n\\n.handoff-chrome .sf-fm-panel::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  z-index: 1;\\n  top: -35%;\\n  bottom: -35%;\\n  left: -34%;\\n  width: 24%;\\n  pointer-events: none;\\n  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);\\n  filter: blur(10px);\\n  transform: skewX(-17deg);\\n  animation: sfFmSheen 7.5s cubic-bezier(.45, 0, .25, 1) infinite;\\n}\\n\\n.handoff-chrome .sf-fm-panel::after {\\n  content: \\\"\\\";\\n  position: absolute;\\n  z-index: -2;\\n  inset: 0;\\n  opacity: .28;\\n  background-image: radial-gradient(circle, rgba(23, 25, 24, .26) .65px, transparent .8px);\\n  background-size: 10px 10px;\\n  -webkit-mask-image: linear-gradient(90deg, transparent 18%, #000 100%);\\n          mask-image: linear-gradient(90deg, transparent 18%, #000 100%);\\n}\\n\\n.handoff-chrome .sf-fm-panel:hover {\\n  filter: brightness(1.045);\\n  transform: translateY(-3px);\\n  box-shadow:\\n    inset 0 1px 0 rgba(255, 255, 255, .85),\\n    inset 0 -1px 0 rgba(13, 16, 15, .08),\\n    0 24px 58px -28px rgba(0, 0, 0, .92);\\n}\\n\\n.handoff-chrome .sf-fm-panel-head {\\n  position: relative;\\n  z-index: 2;\\n  display: flex;\\n  align-items: center;\\n  justify-content: space-between;\\n}\\n\\n.handoff-chrome .sf-fm-panel-head small {\\n  color: rgba(23, 25, 24, .55);\\n  font: 500 .6rem/1.2 var(--mono, 'JetBrains Mono', monospace);\\n  letter-spacing: .18em;\\n}\\n\\n.handoff-chrome .sf-fm-panel-head b {\\n  color: rgba(23, 25, 24, .72);\\n  font: 400 1rem/1 var(--sans, 'Space Grotesk', sans-serif);\\n  transition: transform .45s cubic-bezier(.16, 1, .3, 1), color .3s ease;\\n}\\n\\n.handoff-chrome .sf-fm-panel:hover .sf-fm-panel-head b { color: #050505; transform: translate(3px, -3px); }\\n\\n.handoff-chrome .sf-fm-panel-copy {\\n  position: relative;\\n  z-index: 2;\\n  display: block;\\n  max-width: 18rem;\\n}\\n\\n.handoff-chrome .sf-fm-panel-copy strong {\\n  display: block;\\n  margin-bottom: 7px;\\n  color: #171918;\\n  font: 400 clamp(1.35rem, 1.9vw, 1.8rem)/1.06 var(--serif, 'Fraunces', serif);\\n  letter-spacing: -.025em;\\n}\\n\\n.handoff-chrome .sf-fm-panel-copy > span {\\n  display: block;\\n  max-width: 25ch;\\n  color: rgba(23, 25, 24, .58);\\n  font: 400 .78rem/1.45 var(--sans, 'Space Grotesk', sans-serif);\\n}\\n\\n.handoff-chrome .sf-copy-cn { display: none; }\\n.handoff-chrome html[data-lang=\\\"cn\\\"] .sf-copy-en { display: none; }\\n.handoff-chrome html[data-lang=\\\"cn\\\"] .sf-copy-cn { display: block; }\\n\\n/* Quiet, always-moving Bauhaus signal. */\\n.handoff-chrome .sf-fm-bauhaus {\\n  position: absolute;\\n  z-index: 0;\\n  inset: 0 0 0 38%;\\n  opacity: .66;\\n  pointer-events: none;\\n}\\n\\n.handoff-chrome .sf-fm-bauhaus i { position: absolute; display: block; }
1\\n\\n.handoff-chrome .sf-bh-ring {\\n  top: 17px;\\n  right: 36px;\\n  width: 92px;\\n  aspect-ratio: 1;\\n  border: 1px solid rgba(91, 73, 139, .48);\\n  border-radius: 50%;\\n  box-shadow: inset 0 0 0 18px rgba(200, 184, 255, .09);\\n  animation: sfBhOrbit 16s linear infinite;\\n}\\n\\n.handoff-chrome .sf-bh-ring::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 8px;\\n  left: 10px;\\n  width: 7px;\\n  height: 7px;\\n  border-radius: 50%;\\n  background: #c8b8ff;\\n  box-shadow: 0 0 14px rgba(200, 184, 255, .38);\\n}\\n\\n.handoff-chrome .sf-bh-square {\\n  right: 105px;\\n  bottom: 24px;\\n  width: 42px;\\n  height: 42px;\\n  border: 1px solid rgba(69, 105, 143, .5);\\n  transform: rotate(13deg);\\n  animation: sfBhSquare 9s ease-in-out infinite;\\n}\\n\\n.handoff-chrome .sf-bh-dot {\\n  right: 24px;\\n  bottom: 27px;\\n  width: 18px;\\n  height: 18px;\\n  border-radius: 50%;\\n  background: rgba(151, 95, 108, .72);\\n  animation: sfBhDot 7s ease-in-out infinite;\\n}\\n\\n.handoff-chrome .sf-bh-line {\\n  top: 50%;\\n  right: 6px;\\n  width: 130px;\\n  height: 1px;\\n  background: linear-gradient(90deg, transparent, rgba(143, 105, 59, .58));\\n  transform: rotate(-18deg);\\n  transform-origin: right center;\\n  animation: sfBhLine 11s ease-in-out infinite;\\n}\\n\\n.handoff-chrome .sf-fm-panel:hover .sf-fm-bauhaus { opacity: .95; }\\n\\n@keyframes sfBhOrbit { to { transform: rotate(360deg); } }\\n@keyframes sfBhSquare {\\n  0%, 100% { transform: translate(0, 0) rotate(13deg); }\\n  50% { transform: translate(-7px, -5px) rotate(58deg); }\\n}\\n@keyframes sfBhDot {\\n  0%, 100% { transform: translate(0, 0) scale(.88); }\\n  50% { transform: translate(-9px, -7px) scale(1); }\\n}\\n@keyframes sfBhLine {\\n  0%, 100% { transform: rotate(-18deg) scaleX(.75); opacity: .5; }\\n  50% { transform: rotate(-9deg) scaleX(1); opacity: .9; }\\n}\\n\\n@keyframes sfFmDrift {\\n  from { background-position: 100% 0%, 0% 100%, 0 0; }\\n  to { background-position: 78% 18%, 22% 76%, 0 0; }\\n}\\n\\n@keyframes sfFmSheen {\\n  0%, 18% { left: -34%; opacity: 0; }\\n  28% { opacity: .72; }\\n  52%, 100% { left: 116%; opacity: 0; }\\n}\\n\\n/* Legal + social base */\\n.handoff-chrome .sf-base {\\n  display: grid;\\n  grid-template-columns: 1fr auto 1fr;\\n  gap: 24px;\\n  align-items: center;\\n  padding-top: clamp(22px, 2.4vw, 36px);\\n  border-top: 1px solid rgba(232, 230, 222, .06);\\n}\\n\\n.handoff-chrome .sf-base-left { display: flex; gap: clamp(14px, 2vw, 28px); justify-content: flex-start; }\\n.handoff-chrome .sf-base-center { display: flex; gap: clamp(14px, 1.6vw, 22px); justify-content: center; align-items: center; flex-wrap: wrap; }\\n.handoff-chrome .sf-base-right { display: flex; justify-content: flex-end; }\\n\\n.handoff-chrome .sf-base-link,\\n.handoff-chrome .sf-base-right span {\\n  color: rgba(232, 230, 222, .5);\\n  text-decoration: none;\\n  font: 400 .82rem/1.4 var(--sans, 'Space Grotesk', sans-serif);\\n  transition: color .35s ease;\\n}\\n\\n.handoff-chrome .sf-base-link:hover { color: #f1efe6; }\\n.handoff-chrome .sf-social { gap: 14px; }\\n\\n.handoff-chrome .sf-social-link {\\n  display: inline-flex;\\n  align-items: center;\\n  justify-content: center;\\n  width: 34px;\\n  height: 34px;\\n  color: rgba(232, 230, 222, .55);\\n  text-decoration: none;\\n  border: 1px solid rgba(232, 230, 222, .1);\\n  border-radius: 50%;\\n  transition: color .3s ease, border-color .3s ease, background-color .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1);\\n}\\n\\n.handoff-chrome .sf-social-link svg { display: block; width: 16px; height: 16px; }\\n.handoff-chrome .sf-social-link:hover {\\n  color: #f1efe6;\\n  border-color: rgba(232, 230, 222, .32);\\n  background: rgba(255, 255, 255, .04);\\n  transform: translateY(-2px);\\n}\\n\\n.handoff-chrome .sf-social-text span {\\n  font: 600 .62rem/1 var(--mono, 'JetBrains Mono', monospace);\\n  letter-spacing: .14em;\\n}\\n\\n@media (max-width: 1050px) {\\n  .handoff-chrome .sf-sub-form { max-width: 620px; }\\n  .handoff-chrome .sf-grid { grid-template-columns: 1fr 1fr; }\\n  .handoff-chrome .sf-fm-panel { grid-column: 2; grid-row: 1 / span 2; min-height: 250px; }\\n}\\n\\n@media (max-width: 680px) {\\n  .handoff-chrome .sf-sub-rail { min-height: 168px; padding-top: 32px; padding-bottom: 32px; }\\n  .handoff-chrome .sf-sub-row { gap: 8px; }\\n  .handoff-chrome .sf-sub-btn span { display: none; }\\n  .handoff-chrome .sf-sub-note { text-align: left; }\\n  .handoff-chrome .sf-grid { grid-template-columns: 1fr 1fr; gap: 36px 24px; }\\n  .handoff-chrome .sf-brand { grid-column: 1 / -1; }\\n  .handoff-chrome .sf-fm-panel { grid-column: 1 / -1; grid-row: auto; min-height: 184px; }\\n  .handoff-chrome .sf-base { grid-template-columns: 1fr; gap: 14px; text-align: center; }\\n  .handoff-chrome .sf-base-left, .handoff-chrome .sf-base-center, .handoff-chrome .sf-base-right { justify-content: center; }\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n  .handoff-chrome .sf-fm-bauhaus i { animation: none !important; }\\n  .handoff-chrome .sf-fm-panel, .handoff-chrome .sf-fm-panel::before { animation: none !important; }\\n  .handoff-chrome .sf-fm-panel, .handoff-chrome .sf-fm-panel-head b, .handoff-chrome .sf-sub-btn svg { transition: none; }\\n}\\n\\n/* ============================================================\\n   SONICITE FOOTER · v4 editorial tightening\\n   One quiet rail, one luminous FM object, less visual furniture.\\n   ============================================================ */\\n.handoff-chrome .site-footer {\\n  background:\\n    radial-gradient(80% 42% at 76% 54%, rgba(112, 99, 138, .055), transparent 72%),\\n    #050505;\\n}\\n\\n.handoff-chrome .sf-accent {\\n  height: 1px;\\n  opacity: .5;\\n  background: linear-gradient(90deg, transparent 0%, rgba(200,184,255,.26) 48%, rgba(232,180,190,.2) 72%, transparent 100%);\\n}\\n\\n.handoff-chrome .sf-sub-rail {\\n  min-height: 178px;\\n  gap: 22px;\\n  padding: 40px clamp(20px, 5vw, 72px) 44px;\\n  background: transparent;\\n  border-bottom: 0;\\n}\\n\\n.handoff-chrome .sf-sub-intro p {\\n  color: #f1efe6;\\n  font-size: clamp(1.6rem, 2.5vw, 2.25rem);\\n}\\n\\n.handoff-chrome .sf-sub-intro span {\\n  margin-top: 7px;\\n  color: rgba(232, 230, 222, .44);\\n  font-size: .76rem;\\n}
1\\n\\n.handoff-chrome .sf-sub-form { width: min(100%, 780px); }\\n.handoff-chrome .sf-sub-row {\\n  gap: 14px;\\n  padding: 5px 7px 5px 18px;\\n  border: 0;\\n  border-radius: 4px;\\n  background: #e7e8e3;\\n  box-shadow: 0 14px 32px -28px rgba(0,0,0,.8);\\n  transition: background-color .35s ease, box-shadow .35s ease;\\n}\\n.handoff-chrome .sf-sub-row:focus-within { background: #f1f1ed; box-shadow: 0 16px 34px -25px rgba(200,184,255,.58); }\\n.handoff-chrome .sf-sub-input { color: #1b1d1c; font-size: .98rem; }\\n.handoff-chrome .sf-sub-input::placeholder { color: rgba(27,29,28,.52); }\\n.handoff-chrome .sf-sub-btn {\\n  color: #1b1d1c;\\n  padding: 10px 14px;\\n  background: transparent;\\n  font-size: .61rem;\\n  letter-spacing: .2em;\\n}\\n.handoff-chrome .sf-sub-btn:hover { color: #5c4b88; background: transparent; }\\n\\n.handoff-chrome .sf-grid {\\n  grid-template-columns: minmax(0, 1fr) minmax(130px, .62fr) minmax(130px, .62fr) minmax(300px, 1.2fr);\\n  gap: clamp(26px, 3.2vw, 54px);\\n  padding-top: clamp(42px, 4.8vw, 62px);\\n  padding-bottom: clamp(34px, 4vw, 52px);\\n}\\n\\n.handoff-chrome .sf-fm-panel {\\n  min-height: 204px;\\n  padding: 22px 24px 24px;\\n  border-radius: 16px;\\n  background:\\n    radial-gradient(92% 130% at 96% 0%, rgba(200,184,255,.28), transparent 56%),\\n    radial-gradient(80% 110% at 4% 100%, rgba(232,180,190,.2), transparent 64%),\\n    linear-gradient(128deg, rgba(201,205,204,.93), rgba(170,176,174,.9));\\n  background-size: 135% 135%, 145% 145%, 100% 100%;\\n  box-shadow:\\n    inset 0 1px 0 rgba(255,255,255,.62),\\n    inset 0 -1px 0 rgba(13,16,15,.1),\\n    0 26px 62px -38px rgba(0,0,0,.95);\\n}\\n\\n.handoff-chrome .sf-fm-panel::before { opacity: .78; }\\n.handoff-chrome .sf-fm-panel::after { opacity: .2; }\\n.handoff-chrome .sf-fm-panel:hover {\\n  filter: brightness(1.035) saturate(1.04);\\n  transform: translateY(-4px);\\n}\\n\\n.handoff-chrome .sf-fm-panel-copy strong { font-size: clamp(1.4rem, 2vw, 1.95rem); }\\n.handoff-chrome .sf-fm-bauhaus { opacity: .58; }\\n\\n@media (max-width: 680px) {\\n  .handoff-chrome .sf-sub-rail { min-height: 158px; padding-top: 30px; padding-bottom: 32px; }\\n  .handoff-chrome .sf-grid { padding-top: 42px; }\\n}\\n\\n/* Homepage chrome, scoped extraction in homepage cascade order. */\\n.handoff-chrome .site-header{position:fixed;z-index:50;top:0;left:0;width:100%;height:90px;padding:0 4.5%;display:flex;align-items:center;gap:30px;font-size:11px;color:#e7e1ec;border-bottom:1px solid transparent;}\\n.handoff-chrome .nav-brand{display:flex;align-items:center;gap:6%;width:155px;flex-shrink:0;opacity:0;pointer-events:none}\\n.handoff-chrome .nav-mark{width:22%;aspect-ratio:1}\\n.handoff-chrome .nav-word{width:72%}\\n.handoff-chrome .primary-nav{margin-left:auto;display:flex;align-items:center;gap:27px;opacity:0;visibility:hidden}\\n.handoff-chrome .primary-nav>a,.handoff-chrome .products-menu>summary{padding:14px 0}\\n.handoff-chrome .primary-nav a:hover,.handoff-chrome .products-menu>summary:hover{color:#fff}\\n.handoff-chrome .header-tools{display:flex;align-items:center;gap:22px;margin-left:auto}\\n.handoff-chrome .header-tools button,.handoff-chrome .language-link{font-size:11px;min-height:44px;display:inline-flex;align-items:center}\\n.handoff-chrome .language-link{letter-spacing:.04em}\\n.handoff-chrome .products-menu{position:relative}\\n.handoff-chrome .products-menu summary{list-style:none;cursor:pointer}\\n.handoff-chrome .products-menu summary::-webkit-details-marker{display:none}\\n.handoff-chrome .products-menu summary::after{content:'⌄';margin-left:7px;color:#b4a9c4}\\n.handoff-chrome .product-links{position:absolute;top:40px;left:-22px;min-width:225px;background:#15131beF;border:1px solid #ffffff20;padding:10px 0;backdrop-filter:blur(18px)}\\n.handoff-chrome .product-links a{display:flex;gap:22px;padding:13px 20px;align-items:center}\\n.handoff-chrome .product-links span{margin-left:auto;font-size:10px;color:#aaa1b4}\\n.handoff-chrome .product-links a:hover{background:#ffffff08}\\n.handoff-chrome .products-menu:not([open]) .product-links{display:none}\\n.handoff-chrome #menu-toggle[hidden]{display:none}\\n.handoff-chrome .site-header a:focus-visible,.handoff-chrome .site-header summary:focus-visible{outline:2px solid #cfb7e7;outline-offset:5px}\\n@media(max-width:760px){.handoff-chrome .site-header{height:72px;gap:15px;padding:0 6%}
1\\n.handoff-chrome .nav-brand{width:122px}\\n.handoff-chrome .header-tools{gap:17px}\\n.handoff-chrome .primary-nav{position:absolute;top:72px;left:0;right:0;margin:0;padding:20px 6% 28px;background:#111017f5;border-bottom:1px solid #ffffff20;flex-direction:column;align-items:stretch;gap:3px}\\n.handoff-chrome .primary-nav>a{padding:11px 0}\\n.handoff-chrome .product-links{position:static;min-width:0;margin-bottom:10px;backdrop-filter:none;background:transparent;border:0;border-left:1px solid #ffffff25;padding:0}\\n.handoff-chrome .product-links a{padding:10px 16px}\\n.handoff-chrome .header-tools button{font-size:10px}\\n}\\n.handoff-chrome .content-shell{width:min(90%,1440px);margin-inline:auto}\\n.handoff-chrome .site-header{height:80px;gap:28px;font-size:12px}\\n.handoff-chrome .site-header.is-docked{box-shadow:0 1px 0 var(--line)}\\n.handoff-chrome .primary-nav{gap:28px}\\n.handoff-chrome .header-tools{margin-left:25px;gap:18px}\\n.handoff-chrome .language-link{display:grid;place-items:center;width:36px;height:36px;min-height:36px;border:1px solid var(--line);border-radius:50%;padding:0}\\n.handoff-chrome .primary-nav>a{position:relative}\\n.handoff-chrome .primary-nav>a:after{content:'';position:absolute;bottom:9px;left:0;width:100%;height:1px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .35s}\\n.handoff-chrome .primary-nav>a:hover:after{transform:scaleX(1)}\\n.handoff-chrome .site-footer{padding:35px 0 0;background:transparent;border:0}\\n.handoff-chrome .sf-sub-rail{background:transparent;padding-block:45px 55px;border:0;min-height:0}\\n.handoff-chrome .sf-sub-intro p{font-family:inherit;font-style:normal;font-size:27px}\\n.handoff-chrome .sf-sub-intro span{font-size:13px}\\n.handoff-chrome .sf-sub-form{max-width:780px}\\n.handoff-chrome .sf-sub-row{background:#e5e6e2;border-radius:3px;border:1px solid #e5e6e2;box-shadow:none;padding:8px 16px;min-height:58px;transition:box-shadow .3s,background .3s}\\n.handoff-chrome .sf-sub-row:focus-within{background:#f0ede7;box-shadow:0 0 0 4px #c0a6d528}\\n.handoff-chrome .sf-sub-input{color:#222028;height:auto;cursor:text;font-size:14px}\\n.handoff-chrome .sf-sub-input::placeholder{color:#635e67}\\n.handoff-chrome .sf-sub-btn{color:#222028;font-family:inherit;font-size:10px;white-space:nowrap}\\n.handoff-chrome .sf-sub-btn:hover{color:#654c80}\\n.handoff-chrome .subscribe-note{font-size:10px;color:#a29aaa;line-height:1.5;margin:12px 0 0}\\n.handoff-chrome .sf-grid{padding-block:35px 55px}\\n.handoff-chrome .sf-logo{display:flex;align-items:center;gap:12px;transform:none}\\n.handoff-chrome .footer-mark{display:block;width:42px;height:42px;flex-shrink:0;animation:markSway 18s ease-in-out infinite}\\n.handoff-chrome .footer-mark img{width:100%;height:100%;object-fit:contain}\\n.handoff-chrome .footer-wordmark{width:150px;height:auto}\\n.handoff-chrome .sf-tagline{font-family:inherit;font-style:normal;font-size:12px}\\n.handoff-chrome .sf-col-title{font-family:inherit;font-size:10px}\\n.handoff-chrome .sf-col ul{list-style:none;padding:0}\\n.handoff-chrome .sf-col a{transition:color .35s,translate .35s}\\n.handoff-chrome .sf-col a:hover{color:var(--violet);translate:3px 0}\\n.handoff-chrome .sf-fm-panel{background:linear-gradient(140deg,#bfbbcd24,#a9c0c718);border:1px solid var(--line);color:var(--paper);border-radius:12px;box-shadow:none;min-height:210px}\\n.handoff-chrome .sf-fm-panel-copy{display:flex;flex-direction:column;gap:15px}\\n.handoff-chrome .sf-fm-panel-copy strong{font-family:inherit;font-style:normal;font-size:28px}\\n.handoff-chrome .sf-fm-panel-copy span{color:var(--muted)}\\n.handoff-chrome .sf-fm-panel-head{color:#bcb5c8}\\n.handoff-chrome .sf-base{border-color:var(--line)}\\n.handoff-chrome .sf-base-left:empty{display:none}\\n.handoff-chrome .sf-base-link{font-family:inherit}\\n.handoff-chrome .sf-social-link:hover{translate:0 -3px}\\n@keyframes panelArrival{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}\\n@keyframes signalBreathe{0%,100%{translate:0 0}50%{translate:0 -7px}}\\n@keyframes signalOrbit{0%,100%{rotate:-3deg}50%{rotate:3deg}}\\n@keyframes markSway{0%,100%{transform:perspective(400px) rotateY(-16deg) rotateZ(-2deg)}50%{transform:perspective(400px) rotateY(16deg) rotateZ(2deg)}}\\n@media(min-width:1600px){.handoff-chrome .content-shell{width:88%}\\n}\\n@media(max-width:760px){.handoff-chrome .site-header{height:72px;gap:16px}\\n.handoff-chrome .header-tools{margin-left:auto;gap:14px}\\n.handoff-chrome .primary-nav{background:#101016}
1\\n.handoff-chrome .sf-sub-rail{padding-block:35px}\\n}\\n@media(max-width:480px){.handoff-chrome .content-shell{width:88%}\\n.handoff-chrome .sf-fm-panel{min-height:200px}\\n.handoff-chrome .language-link{width:32px;height:32px;min-height:32px}\\n}\\n@media(prefers-reduced-motion:reduce){.handoff-chrome .footer-mark{animation:none!important;transition:none!important}\\n}\\n.handoff-chrome .site-footer:not(.motion-visible) .footer-mark{animation-play-state:paused}\\n.handoff-chrome .sf-grid{grid-template-columns:minmax(180px,1fr) minmax(120px,.65fr) minmax(120px,.65fr) minmax(230px,1.1fr);gap:32px}\\n.handoff-chrome .sf-fm-panel{grid-column:auto;grid-row:auto;animation:none}\\n.handoff-chrome .sf-fm-panel-copy strong{color:var(--paper)}\\n.handoff-chrome .sf-fm-panel::before,.handoff-chrome .sf-fm-panel::after{display:none}\\n.handoff-chrome .sf-fm-bauhaus{opacity:.25}\\n.handoff-chrome .sf-fm-panel-copy{position:relative;z-index:2}\\n.handoff-chrome .sf-logo{max-width:220px}\\n.handoff-chrome .footer-wordmark{min-width:0;width:150px}\\n.handoff-chrome .sf-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:25px}\\n@media(max-width:1100px){.handoff-chrome .sf-grid{grid-template-columns:1.3fr 1fr 1fr;gap:35px}\\n.handoff-chrome .sf-fm-panel{grid-column:1/-1;min-height:180px}\\n.handoff-chrome .sf-fm-panel-copy{max-width:420px}\\n}\\n@media(max-width:600px){.handoff-chrome .sf-grid{grid-template-columns:1fr 1fr;gap:36px 24px}\\n.handoff-chrome .sf-brand{grid-column:1/-1}\\n.handoff-chrome .sf-fm-panel{grid-column:1/-1}\\n.handoff-chrome .sf-base{justify-content:center;text-align:center}\\n.handoff-chrome .sf-sub-rail{width:88%}\\n.handoff-chrome .sf-sub-row{padding-inline:12px;gap:8px}\\n.handoff-chrome .sf-sub-input{min-width:0;width:100%}\\n.handoff-chrome .sf-sub-btn{font-size:8px;letter-spacing:.08em}\\n.handoff-chrome .sf-sub-btn svg{width:15px}\\n}\\n.handoff-chrome .sf-fm-panel-head small,.handoff-chrome .sf-fm-panel-head b{color:#c4bdcd}\\n.handoff-chrome .sf-sub-btn span{display:inline}\\n.handoff-chrome .sf-copy-cn strong{font-weight:450}\\n@keyframes scoreFloat{0%,100%{translate:0 0}50%{translate:3% -5px}}\\n@keyframes spaceFloat{0%,100%{rotate:-3deg}50%{rotate:3deg}}\\n@keyframes touchTurn{to{rotate:360deg}}\\n.handoff-chrome .primary-nav{font-size:12.48px;letter-spacing:.04em}\\n.handoff-chrome .listening>.content-shell{width:100%;max-width:none}\\n.handoff-chrome .listening>.content-shell>.section-kicker,.handoff-chrome .listening>.content-shell>.section-title,.handoff-chrome .listening>.content-shell>.section-intro{margin-left:5%;margin-right:5%}\\n.handoff-chrome .site-footer{padding-top:55px}\\n.handoff-chrome .sf-sub-intro p{font-family:var(--display);font-size:32px;font-weight:400}\\n.handoff-chrome .sf-sub-intro span{font-size:14px}\\n.handoff-chrome .sf-col-title{font-family:var(--mono)}\\n@media(max-width:600px){.handoff-chrome .listening>.content-shell>.section-title,.handoff-chrome .listening>.content-shell>.section-kicker,.handoff-chrome .listening>.content-shell>.section-intro{margin-left:6%;margin-right:6%}\\n}\\n@keyframes codaBreath{0%,100%{scale:.95;opacity:.4;rotate:-3deg}50%{scale:1.07;opacity:.85;rotate:3deg}}\\n@keyframes cardSignal{0%,100%{translate:0 0;scale:1}50%{translate:0 -7px;scale:1.045}}\\n\\n.handoff-chrome .product-site{--violet:#b5a0d2;--sans:\\\"Helvetica Neue\\\",Arial,sans-serif;--mono:monospace}\\n.handoff-chrome .site-header,.handoff-chrome .site-footer{font-family:var(--sans);line-height:1.5}\\n.handoff-chrome .site-header{background:#101016;border-bottom:1px solid #ffffff1a;backdrop-filter:none}\\n.handoff-chrome .nav-brand{opacity:1;pointer-events:auto;width:155px}\\n.handoff-chrome .primary-nav{opacity:1;visibility:visible}\\n.handoff-chrome .site-header button{border:0;background:none;color:inherit;padding:0}\\n.handoff-chrome .site-header a{text-decoration:none}\\n.handoff-chrome .site-footer{background:radial-gradient(ellipse at 25% 0%,#5b4a6520,transparent 65%),#101016}\\n.handoff-chrome .site-footer .content-shell{width:90%;max-width:1600px;margin-inline:auto}\\n.handoff-chrome .product-subnav{padding-top:80px;border-bottom:1px solid var(--line);background:#14131b}\\n.handoff-chrome .product-subnav>.shell{display:flex;justify-content:flex-end;padding-block:10px}\\n.handoff-chrome .product-subnav .switcher{position:static;display:flex;gap:6px}\\n.handoff-chrome .product-subnav .switcher button{padding:7px 18px;font-size:12px}\\n.handoff-chrome .site-footer a:focus-visible,.handoff-chrome .site-header a:focus-visible{outline:2px solid #b5a0d2;outline-offset:5px}\\n@media(min-width:761px){.handoff-chrome #menu-toggle{display:none}}
1\\n@media(max-width:760px){\\n.handoff-chrome .nav-brand{width:122px}.handoff-chrome .primary-nav{display:none}\\n.handoff-chrome .site-header.menu-open .primary-nav{display:flex}\\n.handoff-chrome #menu-toggle{display:inline-flex;align-items:center;min-height:44px}\\n.handoff-chrome .product-subnav{padding-top:72px}.handoff-chrome .product-subnav>.shell{justify-content:center}\\n.handoff-chrome .site-footer .content-shell{width:88%}\\n}\\n\\n/* Limit homepage materials to shared chrome; retain the approved editorial layouts. */\\n.handoff-chrome .site-header,.handoff-chrome .site-footer{--paper:#eee9df;--muted:#aaa6b3;--line:#d3c9df29;--violet:#b5a0d2;--sans:'Helvetica Neue',Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1);font-style:normal}\\n.handoff-chrome .site-header{box-sizing:border-box;z-index:1000}\\n.handoff-chrome .site-header .nav-brand img{display:block;height:auto;object-fit:contain}\\n.handoff-chrome .site-header .primary-nav{font-weight:400;text-transform:none}\\n.handoff-chrome .site-header a[aria-current=page]:after{transform:scaleX(1)}\\n.handoff-chrome .site-header .language-link{border:1px solid #d3c9df29;border-radius:50%}\\n.handoff-chrome .site-footer .sf-logo{border:0}\\n.handoff-chrome .site-footer .footer-mark img{display:block}\\n.handoff-chrome .site-footer .sf-sub-input{font-family:var(--sans);outline:none;background:transparent;border:0;box-shadow:none}\\n.handoff-chrome .site-footer .sf-sub-btn{border:0;background:transparent;cursor:pointer}\\n.handoff-chrome .site-footer .sf-col-title{letter-spacing:.12em}\\n.handoff-chrome .site-header .product-links a{font-size:13px}\\n.handoff-chrome .site-footer .sf-sub-intro p{line-height:1.2}\\n\"")},2795,54161,e=>{"use strict";var n=e.i(43476),a=e.i(71645),t=e.i(18271),r=e.i(47536);async function o(e,n,{timeoutMs:a=15e3}={}){if(e.dataset.pending||!e.reportValidity())return;let t="zh"===n,r="contactForm"===e.id,i=e.querySelector("[role=status],.subscribe-note,#ctStatus"),s=e.querySelector("button[type=submit]"),l=new FormData(e),f={email:l.get("email"),locale:n};r&&Object.assign(f,{name:l.get("name"),message:l.get("message")});let d=new AbortController,c=setTimeout(()=>d.abort(),a);e.dataset.pending="true",e.setAttribute("aria-busy","true"),s&&(s.disabled=!0);let h=e=>{i&&(i.textContent=e)};h(t?"正在提交…":"Sending…");try{let n=await fetch(r?"/api/contact":"/api/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f),signal:d.signal}),a=await n.json();if(!n.ok||!a.ok)throw Error("Submission failed");h(t?r?"留言已收到,谢谢。":"欢迎邮件已发送,请查收。":r?"Your message has been received. Thank you.":"Your welcome email has been sent."),e.reset()}catch(e){h("AbortError"===e.name?t?"请求超时,暂未确认结果。请稍后查看,或联系 [email protected]。":"The request timed out; delivery is not confirmed. Please check later or email [email protected].":t?"提交失败,请重试,或联系 [email protected]。":"Unable to send. Please retry or email [email protected].")}finally{clearTimeout(c),delete e.dataset.pending,e.removeAttribute("aria-busy"),s&&(s.disabled=!1)}}function i({locale:e="zh",setLocale:o,current:s}){let l="en"===e?"en":"zh",f=(0,a.useRef)(null);return(0,a.useEffect)(()=>(function(e,{locale:n,onLocaleChange:a,current:t}={}){if(!e)return()=>{};let r=new AbortController,o={signal:r.signal},i=e.querySelector("#menu-toggle"),s=e.querySelector(".products-menu"),l=e.querySelector(".language-link"),f=matchMedia("(max-width:760px)"),d=()=>{e.classList.remove("menu-open"),i?.setAttribute("aria-expanded","false"),s&&(s.open=!1)};if(i&&(i.hidden=!1),l&&n){let e=new URL(location.href);e.searchParams.set("lang","zh"===n?"en":"zh"),l.href=e.pathname+e.search+e.hash}return e.querySelectorAll("a[aria-current],summary[aria-current]").forEach(e=>e.removeAttribute("aria-current")),e.querySelectorAll(".primary-nav a").forEach(e=>{new URL(e.href).pathname===`/${t}`&&e.setAttribute("aria-current","page")}),["flow","field","flux"].includes(t)&&s?.querySelector("summary").setAttribute("aria-current","page"),e.addEventListener("click",t=>{t.target.closest("#menu-toggle")?i.setAttribute("aria-expanded",String(e.classList.toggle("menu-open"))):!t.target.closest(".language-link")||!a||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey?t.target.closest(".primary-nav a")&&d():(t.preventDefault(),d(),a("zh"===n?"en":"zh"))},o),document.addEventListener("click",n=>{e.contains(n.target)||d()},o),document.addEventListener("keydown",n=>{"Escape"===n.key&&(s?.open||e.classList.contains("menu-open"))&&(n.preventDefault(),n.stopImmediatePropagation(),d(),(f.matches?i:s?.querySelector("summary"))?.focu
1s())},{...o,capture:!0}),f.addEventListener("change",d,o),()=>{r.abort(),d()}})(f.current.querySelector("header"),{locale:l,onLocaleChange:o,current:s}),[l,o,s]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{children:r.default}),(0,n.jsx)("div",{ref:f,className:"handoff-chrome product-site editorial-site coherent",dangerouslySetInnerHTML:{__html:t.default[l].header}})]})}function s({locale:e="zh"}){let a="en"===e?"en":"zh";return(0,n.jsx)("div",{className:"handoff-chrome product-site editorial-site coherent",onSubmitCapture:function(e){e.preventDefault(),o(e.target,a)},dangerouslySetInnerHTML:{__html:t.default[a].footer}})}e.s(["HandoffFooter",0,s,"HandoffInvitation",0,function({locale:e="zh",className:a="",eyebrow:t,title:r,description:o,action:i,plainKicker:s=!1}){let l="en"!==e;return(0,n.jsx)("section",{className:`handoff-invitation ${a}`,children:(0,n.jsxs)("div",{className:"handoff-invitation-inner",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:s?"handoff-kicker":"sc-section-rule handoff-kicker",children:(0,n.jsx)("span",{className:s?void 0:"sc-section-rule-label",children:t||(l?"保持联系":"Keep in touch")})}),(0,n.jsx)("h2",{children:r||(l?"带着你的想法,一起做点什么":"There’s room for your ideas, too")}),(0,n.jsx)("p",{children:o||(l?"喜欢音乐,喜欢动手做东西,或有个想一起探索的念头,都欢迎来聊聊。":"Make music, build something, or explore an idea with us. We’d love to hear from you.")}),(0,n.jsxs)("a",{href:`/contact?lang=${l?"zh":"en"}`,children:[i||(l?"聊聊你的想法":"Start a conversation")," ",(0,n.jsx)("span",{"aria-hidden":"true",children:"↗"})]})]}),(0,n.jsx)("div",{className:"handoff-invitation-art","aria-hidden":"true",children:Array.from({length:6},(e,a)=>(0,n.jsx)("i",{style:{"--ring":a}},a))})]})})},"HandoffNav",0,i],54161),e.s(["PageAmbient",0,function(){return(0,n.jsxs)("div",{className:"sc-page-ambient","aria-hidden":"true",children:[(0,n.jsx)("div",{className:"sc-amb-orb sc-amb-orb-1"}),(0,n.jsx)("div",{className:"sc-amb-orb sc-amb-orb-2"}),(0,n.jsx)("div",{className:"sc-amb-orb sc-amb-orb-3"})]})},"SectionRule",0,function({label:e}){return(0,n.jsx)("div",{className:"sc-section-rule",children:(0,n.jsx)("span",{className:"sc-section-rule-label",children:e})})},"SiteFooter",0,s,"SiteNav",0,i],2795)},88143,(e,n,a)=>{"use strict";function t({widthInt:e,heightInt:n,blurWidth:a,blurHeight:r,blurDataURL:o,objectFit:i}){let s=a?40*a:e,l=r?40*r:n,f=s&&l?`viewBox='0 0 ${s} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${f}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${f?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${o}'/%3E%3C/svg%3E`}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImageBlurSvg",{enumerable:!0,get:function(){return t}})},87690,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return i}};for(var r in t)Object.defineProperty(a,r,{enumerable:!0,get:t[r]});let o=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImgProps",{enumerable:!0,get:function(){return f}}),e.r(33525);let t=e.r(43369),r=e.r(88143),o=e.r(87690),i=["-moz-initial","fill","none","scale-down",void 0];function s(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function f({src:e,sizes:n,unoptimized:a=!1,priority:d=!1,preload:c=!1,loading:h,className:p,quality:m,width:u,height:g,fill:b=!1,style:x,overrideSrc:y,onLoad:v,onLoadingComplete:w,placeholder:k="empty",blurDataURL:S,fetchPriority:z,decoding:_="async",layout:j,objectFit:C,objectPosition:O,lazyBoundary:E,lazyRoot:P,...M},R){var F;let N,I,A,{imgConf:B,showAltText:D,blurComplete:T,defaultLoader:L}=R,q=B||o.imageConfigDefault;if("allSizes"in q)N=q;else{let e=[...q.deviceSizes,...q.imageSizes].sort((e,n)=>e-n),n=q.deviceSizes.sort((e,n)=>e-n),a=q.qualities?.sort((e,n)=>e-n);N={...q,allSizes:e,deviceSizes:n,qualities:a}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,
1configurable:!0});let $=M.loader||L;delete M.loader,delete M.srcSet;let U="__next_img_default"in $;if(U){if("custom"===N.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=$;$=n=>{let{config:a,...t}=n;return e(t)}}if(j){"fill"===j&&(b=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[j];e&&(x={...x,...e});let a={responsive:"100vw",fill:"100vw"}[j];a&&!n&&(n=a)}let X="",G=l(u),H=l(g);if((F=e)&&"object"==typeof F&&(s(F)||void 0!==F.src)){let n=s(e)?e.default:e;if(!n.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(n)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!n.height||!n.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(n)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(I=n.blurWidth,A=n.blurHeight,S=S||n.blurDataURL,X=n.src,!b)if(G||H){if(G&&!H){let e=G/n.width;H=Math.round(n.height*e)}else if(!G&&H){let e=H/n.height;G=Math.round(n.width*e)}}else G=n.width,H=n.height}let W=!d&&!c&&("lazy"===h||void 0===h);(!(e="string"==typeof e?e:X)||e.startsWith("data:")||e.startsWith("blob:"))&&(a=!0,W=!1),N.unoptimized&&(a=!0),U&&!N.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(a=!0);let Y=l(m),V=Object.assign(b?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:C,objectPosition:O}:{},D?{}:{color:"transparent"},x),J=T||"empty"===k?null:"blur"===k?`url("data:image/svg+xml;charset=utf-8,${(0,r.getImageBlurSvg)({widthInt:G,heightInt:H,blurWidth:I,blurHeight:A,blurDataURL:S||"",objectFit:V.objectFit})}")`:`url("${k}")`,K=i.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Q=J?{backgroundSize:K,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:J}:{},Z=function({config:e,src:n,unoptimized:a,width:r,quality:o,sizes:i,loader:s}){if(a){if(n.startsWith("/")&&!n.startsWith("//")){let e=(0,t.getDeploymentId)();if(e){let a=n.indexOf("?");if(-1!==a){let t=new URLSearchParams(n.slice(a+1));t.get("dpl")||(t.append("dpl",e),n=n.slice(0,a)+"?"+t.toString())}else n+=`?dpl=${e}`}}return{src:n,srcSet:void 0,sizes:void 0}}let{widths:l,kind:f}=function({deviceSizes:e,allSizes:n},a,t){if(t){let a=/(^|\s)(1?\d?\d)vw/g,r=[];for(let e;e=a.exec(t);)r.push(parseInt(e[2]));if(r.length){let a=.01*Math.min(...r);return{widths:n.filter(n=>n>=e[0]*a),kind:"w"}}return{widths:n,kind:"w"}}return"number"!=typeof a?{widths:e,kind:"w"}:{widths:[...new Set([a,2*a].map(e=>n.find(n=>n>=e)||n[n.length-1]))],kind:"x"}}(e,r,i),d=l.length-1;return{sizes:i||"w"!==f?i:"100vw",srcSet:l.map((a,t)=>`${s({config:e,src:n,quality:o,width:a})} ${"w"===f?a:t+1}${f}`).join(", "),src:s({config:e,src:n,quality:o,width:l[d]})}}({config:N,src:e,unoptimized:a,width:G,quality:Y,sizes:n,loader:$}),ee=W?"lazy":h;return{props:{...M,loading:ee,fetchPriority:z,width:G,height:H,decoding:_,className:p,style:{...V,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:y||Z.src},meta:{unoptimized:a,preload:c||d,placeholder:k,fill:b}}}},98879,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return s}});let t=e.r(71645),r="u"<typeof window,o=r?()=>{}:t.useLayoutEffect,i=r?()=>{}:t.useEffect;function s(e){let{headManager:n,reduceComponentsToState:a}=e;function s(){if(n&&n.mountedInstances){let e=t.Children.toArray(Array.from(n.mountedInstances).filter(Boolean));n.updateHead(a(e))}}return r&&(n?.mountedInstances?.add(e.children),s()),o(()=>(n?.mountedInstances?.add(e.children),()=>{n?.mountedInstances?.delete(e.children)})),o(()=>(n&&(n._pendingUpdate=s),()=>{n&&(n._pendingUpdate=s)})),i(()=>(n&&n._pendingUpdate&&(n._pendingUpdate(),n._pendingUpdate=null),()=>{n&&n._pendingUpdate&&(n._pendingUpdate(),n._pendingUpdate=null)})),null}},25633,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t={default:function(){return u},defaultHead:function(){return c}};for(var r in t)Object.defineProperty(a,r,{enumerable:!0,get:t[r]});let o=e.r(55682),i=e.r(90809),s=e.r(43476),l=i._(e.r(71645)),f=o._(e.r(98879)),d=e.r(42732);function c(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,n){return"string"==typeof n||"number"==typeof n?e:n.type===l.default.Fragment?e.concat(l.default.Children.toArray(n.props.children).reduce((e,n)=>"string"==typeof n||"number"==typeof n?e:e.concat(n),[])):e.concat(n)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function m(e){let n,a,t,r;return e.reduce(h,[]).reverse().concat(c().reverse()).filter((n=new Set,a=new Set,t=new Set,r={},e=>{let o=!0,i=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){i=!0;let a=e.key.slice(e.key.indexOf("$")+1);n.has(a)?o=!1:n.add(a)}switch(e.type){case"title":case"base":a.has(e.type)?o=!1:a.add(e.type);break;case"meta":for(let n=0,a=p.length;n<a;n++){let a=p[n];if(e.props.hasOwnProperty(a))if("charSet"===a)t.has(a)?o=!1:t.add(a);else{let n=e.props[a],t=r[a]||new Set;
2("name"!==a||!i)&&t.has(n)?o=!1:(t.add(n),r[a]=t)}}}return o})).reverse().map((e,n)=>{let a=e.key||n;return l.default.cloneElement(e,{key:a})})}let u=function({children:e}){let n=(0,l.useContext)(d.HeadManagerContext);return(0,s.jsx)(f.default,{reduceComponentsToState:m,headManager:n,children:e})};("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),n.exports=a.default)},18556,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let t=e.r(55682)._(e.r(71645)),r=e.r(87690),o=t.default.createContext(r.imageConfigDefault)},65856,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"RouterContext",{enumerable:!0,get:function(){return t}});let t=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,n,a)=>{"use strict";function t(e,n){let a=e||75;return n?.qualities?.length?n.qualities.reduce((e,n)=>Math.abs(n-a)<Math.abs(e-a)?n:e,n.qualities[0]):a}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"findClosestQuality",{enumerable:!0,get:function(){return t}})},1948,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return i}});let t=e.r(70965),r=e.r(43369);function o({config:e,src:n,width:a,quality:i}){let s=(0,r.getDeploymentId)();if(n.startsWith("/")&&!n.startsWith("//")){let e=n.indexOf("?");if(-1!==e){let a=new URLSearchParams(n.slice(e+1)),t=a.get("dpl");if(t){s=t,a.delete("dpl");let r=a.toString();n=n.slice(0,e)+(r?"?"+r:"")}}}if(n.startsWith("/")&&n.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${n}" is using a query string which is not configured in images.localPatterns.
3Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,t.findClosestQuality)(i,e);return`${e.path}?url=${encodeURIComponent(n)}&w=${a}&q=${l}${n.startsWith("/")&&s?`&dpl=${s}`:""}`}o.__next_img_default=!0;let i=o},18581,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return r}});let t=e.r(71645);function r(e,n){let a=(0,t.useRef)(null),r=(0,t.useRef)(null);return(0,t.useCallback)(t=>{if(null===t){let e=a.current;e&&(a.current=null,e());let n=r.current;n&&(r.current=null,n())}else e&&(a.current=o(e,t)),n&&(r.current=o(n,t))},[e,n])}function o(e,n){if("function"!=typeof e)return e.current=n,()=>{e.current=null};{let a=e(n);return"function"==typeof a?a:()=>e(null)}}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),n.exports=a.default)},5500,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"Image",{enumerable:!0,get:function(){return v}});let t=e.r(55682),r=e.r(90809),o=e.r(43476),i=r._(e.r(71645)),s=t._(e.r(74080)),l=t._(e.r(25633)),f=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let h=e.r(65856),p=t._(e.r(1948)),m=e.r(18581),u={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function g(e,n,a,t,r,o,i){let s=e?.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==n&&r(!0),a?.current){let n=new Event("load");Object.defineProperty(n,"target",{writable:!1,value:e});let t=!1,r=!1;a.current({...n,nativeEvent:n,currentTarget:e,target:e,isDefaultPrevented:()=>t,isPropagationStopped:()=>r,persist:()=>{},preventDefault:()=>{t=!0,n.preventDefault()},stopPropagation:()=>{r=!0,n.stopPropagation()}})}t?.current&&t.current(e)}}))}function b(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let x=(0,i.forwardRef)(({src:e,srcSet:n,sizes:a,height:t,width:r,decoding:s,className:l,style:f,fetchPriority:d,placeholder:c,loading:h,unoptimized:p,fill:u,onLoadRef:x,onLoadingCompleteRef:y,setBlurComplete:v,setShowAltText:w,sizesInput:k,onLoad:S,onError:z,..._},j)=>{let C=(0,i.useCallback)(e=>{e&&(z&&(e.src=e.src),e.complete&&g(e,c,x,y,v,p,k))},[e,c,x,y,v,z,p,k]),O=(0,m.useMergedRef)(j,C);return(0,o.jsx)("img",{..._,...b(d),loading:h,width:r,height:t,decoding:s,"data-nimg":u?"fill":"1",className:l,style:f,sizes:a,srcSet:n,src:e,ref:O,onLoad:e=>{g(e.currentTarget,c,x,y,v,p,k)},onError:e=>{w(!0),"empty"!==c&&v(!0),z&&z(e)}})});function y({isAppRouter:e,imgAttributes:n}
3){let a={as:"image",imageSrcSet:n.srcSet,imageSizes:n.sizes,crossOrigin:n.crossOrigin,referrerPolicy:n.referrerPolicy,...b(n.fetchPriority)};return e&&s.default.preload?(s.default.preload(n.src,a),null):(0,o.jsx)(l.default,{children:(0,o.jsx)("link",{rel:"preload",href:n.srcSet?void 0:n.src,...a},"__nimg-"+n.src+n.srcSet+n.sizes)})}let v=(0,i.forwardRef)((e,n)=>{let a=(0,i.useContext)(h.RouterContext),t=(0,i.useContext)(c.ImageConfigContext),r=(0,i.useMemo)(()=>{let e=u||t||d.imageConfigDefault,n=[...e.deviceSizes,...e.imageSizes].sort((e,n)=>e-n),a=e.deviceSizes.sort((e,n)=>e-n),r=e.qualities?.sort((e,n)=>e-n);return{...e,allSizes:n,deviceSizes:a,qualities:r,localPatterns:"u"<typeof window?t?.localPatterns:e.localPatterns}},[t]),{onLoad:s,onLoadingComplete:l}=e,m=(0,i.useRef)(s);(0,i.useEffect)(()=>{m.current=s},[s]);let g=(0,i.useRef)(l);(0,i.useEffect)(()=>{g.current=l},[l]);let[b,v]=(0,i.useState)(!1),[w,k]=(0,i.useState)(!1),{props:S,meta:z}=(0,f.getImgProps)(e,{defaultLoader:p.default,imgConf:r,blurComplete:b,showAltText:w});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(x,{...S,unoptimized:z.unoptimized,placeholder:z.placeholder,fill:z.fill,onLoadRef:m,onLoadingCompleteRef:g,setBlurComplete:v,setShowAltText:k,sizesInput:e.sizes,ref:n}),z.preload?(0,o.jsx)(y,{isAppRouter:!a,imgAttributes:S}):null]})});("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),n.exports=a.default)},94909,(e,n,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t={default:function(){return d},getImageProps:function(){return f}};for(var r in t)Object.defineProperty(a,r,{enumerable:!0,get:t[r]});let o=e.r(55682),i=e.r(8927),s=e.r(5500),l=o._(e.r(1948));function f(e){let{props:n}=(0,i.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,a]of Object.entries(n))void 0===a&&delete n[e];return{props:n}}let d=s.Image},57688,(e,n,a)=>{n.exports=e.r(94909)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.