{"version":3,"file":"SolutionKit.n8TXdBKH.mjs","names":["__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","H","init_framer_BL70qLPA","init_AnnyDevKit","Style","css","C","FONT","MONO","BASE_CSS","init_SolutionKit"],"sources":["https:/framerusercontent.com/modules/KBEM8c31RAV9zSdcsxFO/bEoLg7z1iEsJXgpWRkep/SolutionKit.js"],"sourcesContent":["// Shared tokens, hooks and base CSS for the Solution/* sections (pilot: /solutions/raumbuchung,\n// variant A \"Ein Dienstag im Raum Elbe\"). Copy lives in each component as a de/en/fr dictionary;\n// edit all three languages together.\nimport*as React from\"react\";import{RenderTarget}from\"framer\";export{useLang,track}from\"https://framerusercontent.com/modules/XiQ0hDDArH73enH55Rpj/xNRJGBW9VrgEpcQ3yJkg/AnnyDevKit.js\";import{localPath as devLocalPath}from\"https://framerusercontent.com/modules/XiQ0hDDArH73enH55Rpj/xNRJGBW9VrgEpcQ3yJkg/AnnyDevKit.js\";// Real anny UI captured with fictional data (sources: assets/real-ui in the work root): the anny Display\n// app (Flutter ResourceGrid, apps/display in the mobile-apps monorepo, main at 433d894d), the Outlook add-in (app-outlook), the\n// shop booking panel, the admin calendar, the admin dashboard and the anny Agent. Never replace these with drawn UI.\nexport const UI={\"agent\":{\"de\":\"https://framerusercontent.com/images/ukwLGkaTQ7KVNbdDnqNXtpsk.webp\",\"en\":\"https://framerusercontent.com/images/neMPygragsrqrRpxMNz9nB8Vuc.webp\"},\"calendar-confirmed\":{\"de\":\"https://framerusercontent.com/images/A6xY9nbmrHQ5fkTk11vFl1OWzaY.webp\",\"en\":\"https://framerusercontent.com/images/X86TzqmWfs7TSmTVlnkL59pr9AA.webp\",\"fr\":\"https://framerusercontent.com/images/P8cfbmKZ4NbPDYP1HSgf7VCMx6k.webp\"},\"calendar-requested\":{\"de\":\"https://framerusercontent.com/images/zfBcyC0HwC7B1oSux9LWyFNujWI.webp\",\"en\":\"https://framerusercontent.com/images/nuQULtbGldCeZOsuVL05H1CsYsc.webp\",\"fr\":\"https://framerusercontent.com/images/owzIqB0d0rW6EWGHmoCUI6Sk9aI.webp\"},\"dashboard\":{\"de\":\"https://framerusercontent.com/images/KwKfSjFVDu59N4jexlJepUQ2So.webp\",\"en\":\"https://framerusercontent.com/images/KJLl7xIatHMpyor2C3nbiORCgG0.webp\",\"fr\":\"https://framerusercontent.com/images/f0XDR88ccIek3vOtWTJFeBEsQ1w.webp\"},\"display-checkedin\":{\"de\":\"https://framerusercontent.com/images/Mj70g0wLEDcjYl5ZBOzwacHns.webp\",\"en\":\"https://framerusercontent.com/images/qerLiEtNmoa5L6vBRBEb26hBIoU.webp\",\"fr\":\"https://framerusercontent.com/images/5NrEjNLugMTwwAQ1ByO4jFy738.webp\"},\"display-checkin\":{\"de\":\"https://framerusercontent.com/images/oVTligEQ17QSTNq6WmTvMVkDBY.webp\",\"en\":\"https://framerusercontent.com/images/c3q7WcG23T3lg8maIkXWeaO7Ra8.webp\",\"fr\":\"https://framerusercontent.com/images/gGjqcQ0i7ZfHvODXoQT2n78Ssk.webp\"},\"display-hero-booked\":{\"de\":\"https://framerusercontent.com/images/qfk5vUeOz8E3kBEOnGVsJEsJg.webp\",\"en\":\"https://framerusercontent.com/images/v5r8T5tFL6j0QrhCM49VzX6DQE.webp\",\"fr\":\"https://framerusercontent.com/images/VfR7EYgOljaupGJ43uMCYELZumo.webp\"},\"display-hero-free\":{\"de\":\"https://framerusercontent.com/images/kB6AlzzCnuL6PIyL5NrTBlMxqO8.webp\",\"en\":\"https://framerusercontent.com/images/GNva9flD28gcu51daLlbaGrcwU.webp\",\"fr\":\"https://framerusercontent.com/images/BUJoT7dLugtPz7NWvPD76PeP4Fg.webp\"},\"display-jourfixe\":{\"de\":\"https://framerusercontent.com/images/b3syKI19lfLxODBctjFYkv1429U.webp\",\"en\":\"https://framerusercontent.com/images/8E9AUrnHnE33FEPrCS365F0jPE.webp\",\"fr\":\"https://framerusercontent.com/images/9dOI8dqGpp6XSXJX9xdlGlgwK4.webp\"},\"display-report\":{\"de\":\"https://framerusercontent.com/images/WUgm9VTQzeKxObszB4s8jgUfTA8.webp\",\"en\":\"https://framerusercontent.com/images/sMUrxMxaNbldCECxclrGsmB7SUE.webp\",\"fr\":\"https://framerusercontent.com/images/0an8kcKgid9e2Nmk1DEhxP7XMCs.webp\"},\"display-sent\":{\"de\":\"https://framerusercontent.com/images/xQ0I21RzwbHgqM55sm0bspgNSqo.webp\",\"en\":\"https://framerusercontent.com/images/MfbmAOmg78SgSrNn9FB7CjtZIws.webp\",\"fr\":\"https://framerusercontent.com/images/D6vmPeiruHgFEOKYPq3bv0In7E.webp\"},\"display-released\":{\"de\":\"https://framerusercontent.com/images/XTN3ugSrPdDxUDOr3VZn0iyvns.webp\",\"en\":\"https://framerusercontent.com/images/amUsLaJshO9IJz5gvAc7NTRx14Q.webp\",\"fr\":\"https://framerusercontent.com/images/kvT2s7RaPjINZylP7poerAW3d8E.webp\"},\"mobile\":{\"de\":\"https://framerusercontent.com/images/Jvmd2JPYZPoyFvDRI89IfHbYuw.webp\",\"en\":\"https://framerusercontent.com/images/CPjBo2ESgblvSVcBOzRl9vd3fC8.webp\"},\"outlook-addons\":{\"de\":\"https://framerusercontent.com/images/NxgWWvwSuAvfQZySd0CC2h4wQ0.webp\",\"en\":\"https://framerusercontent.com/images/vht12gHPsxHg5Xr45QKzNVjzgA.webp\",\"fr\":\"https://framerusercontent.com/images/Qlte6ULUAuFerzBYG9kVapt9hao.webp\"},\"outlook-addons-empty\":{\"de\":\"https://framerusercontent.com/images/20HvrSSs1ZEHIHCryPLl0OvyN8.webp\",\"en\":\"https://framerusercontent.com/images/NVgH3fIlUYhaJHr7FRtGvC5zhws.webp\",\"fr\":\"https://framerusercontent.com/images/HRNllX20TNmjhH5v2GJPcx00rWk.webp\"},\"outlook-list\":{\"de\":\"https://framerusercontent.com/images/VrvwgImFI6M8h9ZdbPvWNMEa0Ss.webp\",\"en\":\"https://framerusercontent.com/images/BzmADZcmltuCoMfLaVKKDXr7sYg.webp\",\"fr\":\"https://framerusercontent.com/images/Ayovxbwl37SNfQ18CvX5COSaGk.webp\"},\"outlook-selected\":{\"de\":\"https://framerusercontent.com/images/1dhPdRyENBMA4XZhSKDdzumNAd0.webp\",\"en\":\"https://framerusercontent.com/images/f32a28vM6iLT7io3YwHOpXMIpo.webp\",\"fr\":\"https://framerusercontent.com/images/zV40ZgB4TqEpbOaOO2bHJjFk.webp\"},\"outlook-visitor-attendees\":{\"de\":\"https://framerusercontent.com/images/VfsnGroZkhJJ3UsIx5C1kemE.webp\",\"en\":\"https://framerusercontent.com/images/Zt3IayyUYZTuY1l9VJNY7GWdaE0.webp\",\"fr\":\"https://framerusercontent.com/images/rwVHnb3LUqzzThIUbPpXjW3ImLM.webp\"},\"outlook-visitor-form\":{\"de\":\"https://framerusercontent.com/images/7BalcBNMs0jLXKR0O3kBnTxzH6w.webp\",\"en\":\"https://framerusercontent.com/images/y09O9OfKCDqppv4Zu7BPxuRFnQ.webp\",\"fr\":\"https://framerusercontent.com/images/p0ziY7TP5RNFqMsGHJQOm7o1E.webp\"},\"outlook-visitor-registered\":{\"de\":\"https://framerusercontent.com/images/C041PmTKpriXWOLfkCCuYFqBo.webp\",\"en\":\"https://framerusercontent.com/images/fplJJPKG1zsUgF6BE9Ahm6jNLL8.webp\",\"fr\":\"https://framerusercontent.com/images/SHdz0GbrBev6i1jtyoPT8ChJOM.webp\"},\"shop-rental\":{\"de\":\"https://framerusercontent.com/images/HxVqXHQbrGMo0BetboRLMJp0U3Q.webp\",\"en\":\"https://framerusercontent.com/images/JJO5XZm5qYlVapJeEY2pqgqH3EI.webp\"},\"web\":{\"de\":\"https://framerusercontent.com/images/4NCKdED3D4YyoFZFHNBKcoQB7I.webp\",\"en\":\"https://framerusercontent.com/images/Ukgujy4zV71fIgfx18lkNoSIQMc.webp\"}};export function ui(key,lang){const m=UI[key]??{};return m[lang]??m.en??m.de??\"\";}export const C={ink:\"#081126\",body:\"#3B4252\",muted:\"#6B7280\",subtle:\"#7C8191\",primary:\"#3D69EF\",primaryHover:\"#537AED\",surface:\"#FFFFFF\",subtleBg:\"#F7F8FA\",border:\"rgba(8,17,38,.10)\",success:\"#2BCF78\",free:\"#12805C\",busy:\"#B5372B\",okBg:\"#E7F8EE\",okFg:\"#127A45\",waitBg:\"#FFF3E0\",waitFg:\"#9A6500\",purple:\"#6E22D1\",purpleBg:\"#F6F5FF\"};export const FONT=\"Inter, 'Inter Placeholder', system-ui, -apple-system, sans-serif\";export const SERIF=\"'Instrument Serif', Georgia, serif\";export const MONO=\"'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, monospace\";export const ASSETS={butterfly:\"https://framerusercontent.com/images/nSFpcnEpF5bgBRN2cJR5RZiYLX8.svg\",displayPhoto:\"https://framerusercontent.com/images/bUTfGwNTNUqSIbEqpOlfacVXpQ.webp\",ghost:\"https://framerusercontent.com/images/LNoGvCNt7d7YYQKyHmk1ar01YI.webp\",seminar:\"https://framerusercontent.com/images/CrhG2E1G7kbd0nZmSd3sCPapS6c.webp\",mapMp4:\"https://framerusercontent.com/assets/e2oxFnORQQKiOQA9drQNVHQZQ4.mp4\",mapWebm:\"https://framerusercontent.com/assets/ieovLrIMhEM8dSUCDeeWNyORjC0.webm\",mapPoster:\"https://framerusercontent.com/images/Wns2Pk5gyvVkLAHu4sra7WBmBY.webp\",mapDetail:\"https://framerusercontent.com/images/KOKEz50eY0kjRDQhu8o8qCm9qcA.webp\",mapFloors:\"https://framerusercontent.com/images/bXyZjxqpxbZDDmhYf5aGQnhkUs.webp\",mapReception:\"https://framerusercontent.com/images/7k7N4Tousda2i0zph2uvqECyis.webp\",outlookLogo:\"https://framerusercontent.com/images/SKvi4th8Kr9SLJbWhA2rIKhrYI.png\",copilotLogo:\"https://framerusercontent.com/images/Ex9V4qqHdwibdNSUM9ObGKe4qJo.png\",teamsLogo:\"https://framerusercontent.com/images/937GwRrANkvr4N5jpzLRHsU4A3k.png\",googleLogo:\"https://framerusercontent.com/images/jmeOgQhPXBnyozLjVQkJ7HdbI.png\",makeLogo:\"https://framerusercontent.com/images/PAxkSu66N4B7yI5uBqXraUpEXs.png\",n8nLogo:\"https://framerusercontent.com/images/KDjDz4W8EIYGIbPY5h6EjWXM1I.png\"};// Real brand marks for the booking-channel chips (the same logo files as the home page)\n// Smart locks have no single brand mark: a plain padlock\nconst LOCK=\"M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2zm2 0h6V7a3 3 0 0 0-6 0zm3 4a1.5 1.5 0 0 0-1 2.6V18h2v-1.4a1.5 1.5 0 0 0-1-2.6\";const APPLE=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\";const AI_MARK={chatgpt:\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\",claude:\"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z\"};// Solution pages with a different URL in EN and FR; everything else keeps its German path\nconst LOCAL_SLUGS={\"/solutions/raumbuchung\":\"/solutions/room-booking\",\"/solutions/arbeitsplatzbuchung\":\"/solutions/desk-booking\",\"/solutions/besuchermanagement\":\"/solutions/visitor-management\"};export function localPath(lang,path){return devLocalPath(lang,lang===\"de\"?path:LOCAL_SLUGS[path]??path);}export const AI_TOOLS=[[\"copilot\",\"Microsoft Copilot\"],[\"chatgpt\",\"ChatGPT\"],[\"claude\",\"Claude\"]];export function BrandLogo({name}){if(AI_MARK[name]){return /*#__PURE__*/React.createElement(\"svg\",{viewBox:\"0 0 24 24\",width:15,height:15,\"aria-hidden\":true,style:{flex:\"none\"}},/*#__PURE__*/React.createElement(\"path\",{d:AI_MARK[name],fill:\"#111\"}));}if(name===\"apple\"||name===\"lock\"){return /*#__PURE__*/React.createElement(\"svg\",{viewBox:\"0 0 24 24\",width:15,height:15,\"aria-hidden\":true,style:{flex:\"none\"}},/*#__PURE__*/React.createElement(\"path\",{d:name===\"apple\"?APPLE:LOCK,fill:\"#111\"}));}const src={copilot:ASSETS.copilotLogo,outlook:ASSETS.outlookLogo,teams:ASSETS.teamsLogo,google:ASSETS.googleLogo,make:ASSETS.makeLogo,n8n:ASSETS.n8nLogo}[name];return /*#__PURE__*/React.createElement(\"img\",{src,alt:\"\",\"aria-hidden\":true,width:16,height:16,style:{width:16,height:16,objectFit:\"contain\",flex:\"none\"}});}// Section shell shared by every Solution/* component. Container queries instead of media queries,\n// because the canvas renders breakpoints at their own width inside one window.\nexport const BASE_CSS=`\n.sol{container-type:inline-size;font-family:${FONT};color:${C.ink};letter-spacing:-.01em;-webkit-font-smoothing:antialiased;width:100%}\n.sol *{box-sizing:border-box;min-width:0}\n.sol h2,.sol h3,.sol p{margin:0}\n.sol h2,.sol h3{text-wrap:balance}\n.sol .w{max-width:1200px;margin:0 auto;padding-inline:20px}\n.sol .s{padding-block:64px}\n.sol .eyebrow{display:block;font:600 13px/1.2 ${FONT};letter-spacing:.06em;text-transform:uppercase;color:${C.primary}}\n.sol .h2{font-size:30px;line-height:1.15;letter-spacing:-.03em;font-weight:700;color:${C.ink}}\n.sol .h2 .m{color:${C.muted}}\n.sol .h3{font-size:20px;line-height:1.3;letter-spacing:-.02em;font-weight:600}\n.sol .lead{font-size:18px;line-height:1.55;color:${C.body}}\n.sol .body{font-size:16px;line-height:1.6;color:${C.body}}\n.sol .cap{font-size:12px;line-height:1.4;color:${C.subtle}}\n.sol .chips{display:flex;flex-wrap:wrap;gap:6px}\n.sol .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid ${C.border};border-radius:999px;padding:5px 10px;font-size:13px;line-height:1.2;background:#fff;white-space:nowrap;color:${C.ink}}\n.sol .ic{width:16px;height:16px;border-radius:4px;display:inline-grid;place-items:center;font:700 9px/1 ${FONT};color:#fff;flex:none}\n.sol .ic.ol{background:#0F6CBD}.sol .ic.tm{background:#5B5FC7}.sol .ic.gc{background:conic-gradient(#4285F4 0 25%,#34A853 0 50%,#FBBC05 0 75%,#EA4335 0)}\n.sol .ic.ds{background:${C.free}}.sol .ic.lk{background:#2E3A59}.sol .ic.ap{background:#111}.sol .ic.mp{background:#6E22D1}\n.sol .plan{font:600 10px/1 ${FONT};letter-spacing:.04em;text-transform:uppercase;color:${C.purple};background:${C.purpleBg};border-radius:6px;padding:5px 7px;white-space:nowrap;align-self:center}\n.sol .ui{background:#fff;border:1px solid rgba(8,17,38,.08);border-radius:14px;box-shadow:0 2px 6px rgba(8,17,38,.06),0 30px 60px -20px rgba(8,17,38,.28)}\n.sol .btn{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:13px 20px;font:500 15px/1.2 ${FONT};text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s}\n.sol .btn.p{background:${C.primary};color:#fff}.sol .btn.p:hover{background:${C.primaryHover}}\n.sol .btn.s2{background:#fff;color:${C.ink};border-color:${C.border}}.sol .btn.s2:hover{border-color:rgba(8,17,38,.25)}\n.sol .btn .arr{transition:transform .2s cubic-bezier(.2,.7,.2,1)}.sol .btn:hover .arr{transform:translateX(3px)}\n.sol .hide{opacity:0!important;transform:translateY(6px)!important}\n.sol .fade{transition:opacity .35s cubic-bezier(.2,.7,.2,1),transform .35s cubic-bezier(.2,.7,.2,1)}\n.sol .ai-badge{position:absolute;left:10px;bottom:10px;font:500 10px/1 ${FONT};color:#fff;background:rgba(8,17,38,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:6px;padding:5px 7px}\n@container (min-width:810px){\n .sol .w{padding-inline:40px}\n .sol .s{padding-block:96px}\n .sol .h2{font-size:36px}\n .sol .h3{font-size:22px}\n .sol .lead{font-size:19px}\n}\n@container (min-width:1200px){\n .sol .h2{font-size:40px}\n .sol .h3{font-size:24px}\n .sol .lead{font-size:20px}\n .sol .body{font-size:17px}\n}\n@media (prefers-reduced-motion:reduce){.sol *{animation:none!important;transition:none!important}}\n`;// Framer escapes \">\" and quotes inside <style>{…}</style> during SSR, which breaks child selectors\n// until hydration; inject as raw HTML instead.\nexport function Style({css}){return /*#__PURE__*/React.createElement(\"style\",{dangerouslySetInnerHTML:{__html:css}});}export function isStill(){const t=RenderTarget.current();return t===RenderTarget.canvas||t===RenderTarget.thumbnail||t===RenderTarget.export;}export function useReducedMotion(){const[reduced,setReduced]=React.useState(false);React.useEffect(()=>{if(typeof matchMedia===\"undefined\")return;const mq=matchMedia(\"(prefers-reduced-motion: reduce)\");setReduced(mq.matches);const on=()=>setReduced(mq.matches);mq.addEventListener?.(\"change\",on);return()=>mq.removeEventListener?.(\"change\",on);},[]);return reduced;}export function useInView(threshold=.35){const ref=React.useRef(null);const[inView,setInView]=React.useState(false);React.useEffect(()=>{const el=ref.current;if(!el||typeof IntersectionObserver===\"undefined\")return;const io=new IntersectionObserver(([e])=>setInView(e.isIntersecting),{threshold});io.observe(el);return()=>io.disconnect();},[threshold]);return[ref,inView];}// Steps through `durations` (ms per phase) and loops while the element is in view. Out of view it\n// rests on phase 0; on the canvas and with reduced motion it shows `restPhase`, the readable end state.\nexport function usePhaseLoop(durations,restPhase=durations.length-1){const[ref,inView]=useInView();const reduced=useReducedMotion();const still=isStill();const[phase,setPhase]=React.useState(restPhase);const key=durations.join(\",\");React.useEffect(()=>{if(still||reduced){setPhase(restPhase);return;}if(!inView)return;let i=0;let timer=0;setPhase(0);const next=()=>{timer=window.setTimeout(()=>{i=(i+1)%durations.length;setPhase(i);next();},durations[i]);};next();return()=>window.clearTimeout(timer);},[inView,reduced,still,key,restPhase]);return[ref,phase];}\nexport const __FramerMetadata__ = {\"exports\":{\"usePhaseLoop\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInView\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Lang\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isStill\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"UI\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ASSETS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useReducedMotion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useLang\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"track\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AI_TOOLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BrandLogo\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Style\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SERIF\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BASE_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MONO\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Logo\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ui\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"C\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SolutionKit.map"],"mappings":"A,oMAuDA,SAAgBM,EAAM,CAAC,OAAK,CAAC,MAAoB,gBAAoB,QAAQ,CAAC,wBAAwB,CAAC,OAAOC,CAAG,CAAC,CAAC,CAAE,C,0DAjDmjK,EAAE,CAAC,IAAI,UAAU,KAAK,UAAU,MAAM,UAAU,OAAO,UAAU,QAAQ,UAAU,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,OAAO,oBAAoB,QAAQ,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,OAAO,UAAU,OAAO,UAAU,OAAO,UAAU,SAAS,SAAS,EAAe,EAAK,mEAAwI,EAAK,8DAKznL,EAAS;8CACwBE,EAAK,SAASD,EAAE,IAAI;;;;;;gDAMlBC,EAAK,uDAAuDD,EAAE,QAAQ;uFAC/BA,EAAE,IAAI;oBACzEA,EAAE,MAAM;;mDAEuBA,EAAE,KAAK;kDACRA,EAAE,KAAK;iDACRA,EAAE,OAAO;;6EAEmBA,EAAE,OAAO,gHAAgHA,EAAE,IAAI;0GAClGC,EAAK;;yBAEtFD,EAAE,KAAK;6BACHC,EAAK,uDAAuDD,EAAE,OAAO,cAAcA,EAAE,SAAS;;kHAETC,EAAK;yBAC9FD,EAAE,QAAQ,2CAA2CA,EAAE,aAAa;qCACxDA,EAAE,IAAI,gBAAgBA,EAAE,OAAO;;;;yEAIKC,EAAK"}