nuxt-og-image 6.2.4 → 6.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/tw4.cjs +1 -1
- package/dist/chunks/tw4.mjs +1 -1
- package/dist/chunks/uno.cjs +1 -1
- package/dist/chunks/uno.mjs +1 -1
- package/dist/devtools/200.html +1 -1
- package/dist/devtools/404.html +1 -1
- package/dist/devtools/_nuxt/{B9YJLOLG.js → BXPqj_uX.js} +1 -1
- package/dist/devtools/_nuxt/Bo4lSgm2.js +3 -0
- package/dist/devtools/_nuxt/C9JKABtj.js +1 -0
- package/dist/devtools/_nuxt/CHHO6nw6.js +1 -0
- package/dist/devtools/_nuxt/DevtoolsSnippet.BaNDy_jv.css +1 -0
- package/dist/devtools/_nuxt/Dy0Vu_Hf.js +1 -0
- package/dist/devtools/_nuxt/aOrl9V8N.js +4 -0
- package/dist/devtools/_nuxt/builds/latest.json +1 -1
- package/dist/devtools/_nuxt/builds/meta/116b189e-4f49-45f9-b21c-dfb518abeb03.json +1 -0
- package/dist/devtools/_nuxt/entry.DgipzMgL.css +2 -0
- package/dist/devtools/_nuxt/iJA-9P1Z.js +2 -0
- package/dist/devtools/_nuxt/jJVhk0xb.js +174 -0
- package/dist/devtools/_nuxt/pages.DyP4FhjX.css +1 -0
- package/dist/devtools/debug/index.html +1 -1
- package/dist/devtools/docs/index.html +1 -1
- package/dist/devtools/index.html +1 -1
- package/dist/devtools/templates/index.html +1 -1
- package/dist/module.cjs +1 -1
- package/dist/module.d.cts +33 -0
- package/dist/module.d.mts +33 -0
- package/dist/module.d.ts +33 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/server/og-image/context.d.ts +1 -1
- package/dist/runtime/server/og-image/context.js +41 -5
- package/dist/runtime/server/og-image/core/plugins/imageSrc.js +73 -12
- package/dist/runtime/server/og-image/takumi/renderer.js +5 -3
- package/dist/runtime/server/util/eventHandlers.js +34 -3
- package/dist/runtime/shared.d.ts +5 -0
- package/dist/runtime/shared.js +10 -0
- package/dist/runtime/types.d.ts +9 -0
- package/dist/shared/{nuxt-og-image.CvPWboEh.mjs → nuxt-og-image.CA6cPvTd.mjs} +48 -3
- package/dist/shared/{nuxt-og-image.Ni0_6XZ0.cjs → nuxt-og-image.DVJetxwr.cjs} +49 -4
- package/package.json +5 -5
- package/dist/devtools/_nuxt/CGddsLij.js +0 -1
- package/dist/devtools/_nuxt/CNPcxXHG.js +0 -173
- package/dist/devtools/_nuxt/D84yDWKI.js +0 -1
- package/dist/devtools/_nuxt/DLPfJAyQ.js +0 -2
- package/dist/devtools/_nuxt/DevtoolsSection.a-2R---I.css +0 -1
- package/dist/devtools/_nuxt/DevtoolsSnippet.D9AS35aC.css +0 -1
- package/dist/devtools/_nuxt/Dy6LapUo.js +0 -4
- package/dist/devtools/_nuxt/Ll4Fy5iv.js +0 -3
- package/dist/devtools/_nuxt/builds/meta/05e8381a-ae36-4c96-9530-7973642e8e38.json +0 -1
- package/dist/devtools/_nuxt/entry._es5B19-.css +0 -2
- package/dist/devtools/_nuxt/pages.CcgChwrv.css +0 -1
- package/dist/devtools/_nuxt/u09lXEfj.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.763%;ascent-override:100.218%;descent-override:29.4219%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:102.174%;ascent-override:106.68%;descent-override:31.319%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.667%;ascent-override:108.278%;descent-override:31.7881%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Arial;src:local(Arial);size-adjust:101.615%;ascent-override:107.268%;descent-override:31.4914%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.5696%;ascent-override:114.053%;descent-override:33.4834%;line-gap-override:0%}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}.twitter-card{flex-direction:column;max-height:100%;font-family:Hubot Sans,Hubot Sans Fallback\: BlinkMacSystemFont,Hubot Sans Fallback\: Segoe UI,Hubot Sans Fallback\: Helvetica Neue,Hubot Sans Fallback\: Arial,Hubot Sans Fallback\: Noto Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:relative}.twitter-card-inner{width:100%;max-width:600px;margin:0 auto}.twitter-card .card-container{background:oklch(100% 0 0);border:1px solid oklch(92% .01 285);border-radius:16px;transition:border-color .2s,box-shadow .2s;overflow:hidden;box-shadow:0 4px 24px oklch(0% 0 0/.06)}.dark .twitter-card .card-container{background:oklch(18% .04 285);border-color:oklch(28% .04 285);box-shadow:0 4px 24px oklch(0% 0 0/.2)}.twitter-card .card-container:hover{border-color:oklch(85% .02 285);box-shadow:0 6px 32px oklch(0% 0 0/.1)}.dark .twitter-card .card-container:hover{border-color:oklch(35% .04 285)}.twitter-card .card-image{background:oklch(96% .01 285);position:relative;overflow:hidden}.dark .twitter-card .card-image{background:oklch(22% .04 285)}.twitter-card .card-image img,.twitter-card .card-image>:first-child:not(.card-image-overlay){-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.twitter-card .card-image-overlay{position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.05)}.dark .twitter-card .card-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.05)}.twitter-card .card-content{padding:12px 14px}.twitter-card .card-domain{color:oklch(55% .04 285);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}.twitter-card .card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 0;font-size:15px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.twitter-card .card-time{color:oklch(55% .04 285);margin-top:12px;font-size:14px}.devtools-toolbar[data-v-923f0202]{border-bottom:1px solid var(--color-border);align-items:center;display:flex}.devtools-toolbar-default[data-v-923f0202]{background:var(--color-surface-elevated);justify-content:space-between;gap:.75rem;padding:.625rem .75rem;position:relative}@media (width>=640px){.devtools-toolbar-default[data-v-923f0202]{padding:.75rem 1rem}}.devtools-toolbar-minimal[data-v-923f0202]{background:var(--color-surface-sunken);gap:.5rem;padding:.5rem 1rem;font-size:.75rem}.devtools-empty[data-v-e2f1d7e2]{text-align:center;flex-direction:column;align-items:center;max-width:32rem;margin:0 auto;display:flex}.devtools-empty-icon[data-v-e2f1d7e2]{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:4rem;height:4rem;margin-bottom:1.5rem;display:inline-flex}.devtools-empty-icon-default[data-v-e2f1d7e2]{color:var(--seo-green);background:oklch(65% .2 145/.12)}.dark .devtools-empty-icon-default[data-v-e2f1d7e2]{background:oklch(65% .2 145/.15)}.devtools-empty-icon-error[data-v-e2f1d7e2]{color:oklch(55% .2 25);background:oklch(55% .2 25/.12)}.dark .devtools-empty-icon-error[data-v-e2f1d7e2]{color:oklch(75% .15 25);background:oklch(55% .2 25/.15)}.devtools-empty-title[data-v-e2f1d7e2]{color:var(--color-text);margin-bottom:.75rem;font-size:1.125rem;font-weight:600}@media (width>=640px){.devtools-empty-title[data-v-e2f1d7e2]{font-size:1.25rem}}.devtools-empty-description[data-v-e2f1d7e2]{color:var(--color-text-muted);margin-bottom:1.25rem;font-size:.875rem;line-height:1.5}@media (width>=640px){.devtools-empty-description[data-v-e2f1d7e2]{font-size:1rem}}.devtools-empty-actions[data-v-e2f1d7e2]{flex-direction:column;align-items:center;gap:.75rem;display:flex}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.763%;ascent-override:100.218%;descent-override:29.4219%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:102.174%;ascent-override:106.68%;descent-override:31.319%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.667%;ascent-override:108.278%;descent-override:31.7881%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Arial;src:local(Arial);size-adjust:101.615%;ascent-override:107.268%;descent-override:31.4914%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.5696%;ascent-override:114.053%;descent-override:33.4834%;line-gap-override:0%}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}.facebook-card{background:#f0f2f5;border:1px solid #dadde1;border-radius:0;max-width:500px;margin:0 auto;font-family:Hubot Sans,Hubot Sans Fallback\: BlinkMacSystemFont,Hubot Sans Fallback\: Segoe UI,Hubot Sans Fallback\: Helvetica Neue,Hubot Sans Fallback\: Arial,Hubot Sans Fallback\: Noto Sans,Helvetica,Arial,sans-serif;overflow:hidden;box-shadow:0 4px 24px oklch(0% 0 0/.1)}.dark .facebook-card{background:#242526;border-color:oklch(28% .02 285);box-shadow:0 4px 24px oklch(0% 0 0/.2)}.facebook-image{aspect-ratio:2;background:#e4e6e9;width:100%;position:relative;overflow:hidden}.dark .facebook-image{background:oklch(25% .02 285)}.facebook-image img,.facebook-image>:first-child:not(.facebook-image-overlay){-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.facebook-image-overlay{position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.05)}.dark .facebook-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.05)}.facebook-content{background:#f0f2f5;padding:12px 14px}.dark .facebook-content{background:#242526}.facebook-sitename{color:#606770;letter-spacing:.03em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:0 0 4px;font-size:12px;overflow:hidden}.dark .facebook-sitename{color:oklch(60% .02 285)}.facebook-title{color:#1c1e21;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 4px;font-size:16px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.dark .facebook-title{color:oklch(95% .01 285)}.facebook-description{color:#606770;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.4;display:-webkit-box;overflow:hidden}.dark .facebook-description{color:oklch(70% .02 285)}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.763%;ascent-override:100.218%;descent-override:29.4219%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:102.174%;ascent-override:106.68%;descent-override:31.319%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.667%;ascent-override:108.278%;descent-override:31.7881%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Arial;src:local(Arial);size-adjust:101.615%;ascent-override:107.268%;descent-override:31.4914%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.5696%;ascent-override:114.053%;descent-override:33.4834%;line-gap-override:0%}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}.linkedin-card{background:oklch(100% 0 0);border:1px solid #e0e0e0;border-radius:8px;width:100%;max-width:552px;margin:0 auto;font-family:Hubot Sans,Hubot Sans Fallback\: BlinkMacSystemFont,Hubot Sans Fallback\: Segoe UI,Hubot Sans Fallback\: Helvetica Neue,Hubot Sans Fallback\: Arial,Hubot Sans Fallback\: Noto Sans,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden;box-shadow:0 4px 24px oklch(0% 0 0/.1)}.dark .linkedin-card{background:#1b1f23;border-color:oklch(28% .02 285);box-shadow:0 4px 24px oklch(0% 0 0/.2)}.linkedin-image{aspect-ratio:2;background:#f3f2ef;width:100%;position:relative;overflow:hidden}.dark .linkedin-image{background:oklch(22% .02 285)}.linkedin-image img,.linkedin-image>:first-child:not(.linkedin-image-overlay){-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.linkedin-image-overlay{position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.05)}.dark .linkedin-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.05)}.linkedin-content{padding:12px 14px}.linkedin-title{color:oklch(15% .02 285);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 4px;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.dark .linkedin-title{color:oklch(95% .01 285)}.linkedin-sitename{color:oklch(50% .03 285);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.discord-card{background:#f2f3f5;border:1px solid #e3e5e8;border-left-width:4px;border-radius:8px;max-width:432px;margin:0 auto;font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif;display:flex;overflow:hidden}.dark .discord-card{background:#2b2d31;border-color:#232428 #232428 #232428 #1e1f22}.discord-body{flex:1;min-width:0;padding:8px 16px 16px 12px}.discord-sitename{color:#4e5058;margin-bottom:2px;font-size:12px;font-weight:400;line-height:16px}.dark .discord-sitename{color:#b5bac1}.discord-title{color:#006ce7;cursor:pointer;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:16px;font-weight:700;line-height:22px;display:-webkit-box;overflow:hidden}.dark .discord-title{color:#00a8fc}.discord-title:hover{text-decoration:underline}.discord-description{color:#313338;-webkit-line-clamp:3;white-space:pre-wrap;-webkit-box-orient:vertical;margin-bottom:16px;font-size:14px;line-height:18px;display:-webkit-box;overflow:hidden}.dark .discord-description{color:#dbdee1}.discord-image{border-radius:4px;max-width:400px;max-height:300px;position:relative;overflow:hidden}.discord-image img,.discord-image>:first-child:not(.discord-image-overlay){border-radius:4px;max-width:100%;max-height:300px;display:block}.discord-image-overlay{pointer-events:none;border-radius:4px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.04)}.dark .discord-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.06)}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.763%;ascent-override:100.218%;descent-override:29.4219%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:102.174%;ascent-override:106.68%;descent-override:31.319%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.667%;ascent-override:108.278%;descent-override:31.7881%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Arial;src:local(Arial);size-adjust:101.615%;ascent-override:107.268%;descent-override:31.4914%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.5696%;ascent-override:114.053%;descent-override:33.4834%;line-gap-override:0%}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}.slack-card{-webkit-font-smoothing:antialiased;background:oklch(100% 0 0);border-radius:8px;max-width:500px;min-height:200px;margin:0 auto;padding:8px 0;font-family:Hubot Sans,Hubot Sans Fallback\: BlinkMacSystemFont,Hubot Sans Fallback\: Segoe UI,Hubot Sans Fallback\: Helvetica Neue,Hubot Sans Fallback\: Arial,Hubot Sans Fallback\: Noto Sans,Lato,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.46;display:flex}.dark .slack-card{background:#1a1d21}.slack-bar{background:#a855f7;border-radius:4px;flex-shrink:0;width:4px;margin:4px 0}.slack-content{flex:1;min-width:0;padding:0 12px}.slack-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.slack-favicon img{-o-object-fit:cover;object-fit:cover;border-radius:3px;width:16px;height:16px}.slack-sitename{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.slack-title{color:#1264a3;cursor:pointer;margin-bottom:2px;font-size:15px;font-weight:600}.dark .slack-title{color:#1d9bd1}.slack-title:hover{text-decoration:underline}.slack-description{color:oklch(55% .04 285);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.dark .slack-description{color:oklch(70% .03 285)}.slack-image{border-radius:6px;max-width:320px;position:relative;overflow:hidden}.slack-image img,.slack-image>:first-child:not(.slack-image-overlay){width:100%;height:auto}.slack-image-overlay{pointer-events:none;border-radius:6px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.05)}.dark .slack-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.05)}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.763%;ascent-override:100.218%;descent-override:29.4219%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:102.174%;ascent-override:106.68%;descent-override:31.319%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.667%;ascent-override:108.278%;descent-override:31.7881%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Arial;src:local(Arial);size-adjust:101.615%;ascent-override:107.268%;descent-override:31.4914%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.5696%;ascent-override:114.053%;descent-override:33.4834%;line-gap-override:0%}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}.whatsapp-dual-preview{flex-wrap:wrap;justify-content:center;gap:24px;font-family:Hubot Sans,Hubot Sans Fallback\: BlinkMacSystemFont,Hubot Sans Fallback\: Segoe UI,Hubot Sans Fallback\: Helvetica Neue,Hubot Sans Fallback\: Arial,Hubot Sans Fallback\: Noto Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.whatsapp-section{flex-direction:column;gap:8px;display:flex}.whatsapp-label{color:oklch(55% .03 285);margin:0;font-size:12px}.dark .whatsapp-label{color:oklch(60% .03 285)}.whatsapp-inline-card{background:#dcf8c6;border-radius:8px;max-width:360px;display:flex;overflow:hidden;box-shadow:0 4px 20px oklch(0% 0 0/.1)}.dark .whatsapp-inline-card{background:#1f2c34;box-shadow:0 4px 20px oklch(0% 0 0/.2)}.whatsapp-inline-image{background:oklch(85% .02 165);flex-shrink:0;width:80px;height:80px;position:relative;overflow:hidden}.dark .whatsapp-inline-image{background:oklch(25% .03 165)}.whatsapp-inline-image img,.whatsapp-inline-image>:first-child:not(.whatsapp-image-overlay){-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.whatsapp-inline-content{flex:1;min-width:0;padding:10px}.whatsapp-title-inline{color:oklch(20% .02 285);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:13px;font-weight:500;display:-webkit-box;overflow:hidden}.dark .whatsapp-title-inline{color:#e9edef}.whatsapp-description-inline{color:oklch(40% .03 285);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:11px;display:-webkit-box;overflow:hidden}.dark .whatsapp-description-inline{color:#8696a0}.whatsapp-url-inline{color:oklch(50% .03 285);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;margin-top:3px;font-size:11px;display:flex;overflow:hidden}.dark .whatsapp-url-inline{color:#8696a0}.whatsapp-full-card{background:#dcf8c6;border-radius:8px;width:360px;overflow:hidden;box-shadow:0 4px 20px oklch(0% 0 0/.1)}.dark .whatsapp-full-card{background:#1f2c34;box-shadow:0 4px 20px oklch(0% 0 0/.2)}.whatsapp-full-image{aspect-ratio:2;background:oklch(85% .02 165);width:100%;position:relative;overflow:hidden}.dark .whatsapp-full-image{background:oklch(25% .03 165)}.whatsapp-full-image img,.whatsapp-full-image>:first-child:not(.whatsapp-image-overlay){-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.whatsapp-full-content{background:#dcf8c6;padding:14px}.dark .whatsapp-full-content{background:#1f2c34}.whatsapp-title{color:oklch(20% .02 285);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:500;display:-webkit-box;overflow:hidden}.dark .whatsapp-title{color:#e9edef}.whatsapp-description{color:oklch(40% .03 285);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:4px;font-size:13px;display:-webkit-box;overflow:hidden}.dark .whatsapp-description{color:#8696a0}.whatsapp-url{color:oklch(50% .03 285);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;margin-top:8px;font-size:13px;display:flex;overflow:hidden}.dark .whatsapp-url{color:#8696a0}.whatsapp-image-overlay{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.05)}.dark .whatsapp-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.05)}.whatsapp-inline-card--squared{max-width:560px}.whatsapp-inline-card--squared .whatsapp-inline-image{width:128px;height:128px}.whatsapp-inline-card--squared .whatsapp-title-inline{-webkit-line-clamp:2;font-size:14px}.whatsapp-inline-card--squared .whatsapp-description-inline{-webkit-line-clamp:3;font-size:12px}.whatsapp-inline-card--squared .whatsapp-url-inline{font-size:12px}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.763%;ascent-override:100.218%;descent-override:29.4219%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:102.174%;ascent-override:106.68%;descent-override:31.319%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.667%;ascent-override:108.278%;descent-override:31.7881%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Arial;src:local(Arial);size-adjust:101.615%;ascent-override:107.268%;descent-override:31.4914%;line-gap-override:0%}@font-face{font-family:Hubot Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.5696%;ascent-override:114.053%;descent-override:33.4834%;line-gap-override:0%}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular Italic),local(Hubot Sans Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold Italic),url(../_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Regular),local(Hubot Sans),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Medium),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans SemiBold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2)format("woff2");font-display:swap;unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2)format("woff2");font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-weight:700;font-style:normal}@font-face{font-family:Hubot Sans;src:local(Hubot Sans Bold),url(../_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}.bluesky-card{background:oklch(100% 0 0);border:1px solid oklch(88% .01 260);border-radius:12px;width:100%;max-width:513px;margin:0 auto;font-family:Hubot Sans,Hubot Sans Fallback\: BlinkMacSystemFont,Hubot Sans Fallback\: Segoe UI,Hubot Sans Fallback\: Helvetica Neue,Hubot Sans Fallback\: Arial,Hubot Sans Fallback\: Noto Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden;box-shadow:0 4px 24px oklch(0% 0 0/.08)}.dark .bluesky-card{background:#171d27;border-color:#2c3a4e;box-shadow:0 4px 24px oklch(0% 0 0/.25)}.bluesky-image{aspect-ratio:2;background:oklch(96% .01 260);width:100%;position:relative;overflow:hidden}.dark .bluesky-image{background:oklch(22% .02 260)}.bluesky-image img,.bluesky-image>:first-child:not(.bluesky-image-overlay){-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.bluesky-image-overlay{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.05)}.dark .bluesky-image-overlay{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.05)}.bluesky-content{padding:12px 14px}.bluesky-title{color:oklch(15% .02 260);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 2px;font-size:15px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.dark .bluesky-title{color:oklch(95% .01 260)}.bluesky-description{color:oklch(50% .02 260);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 8px;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.dark .bluesky-description{color:oklch(65% .02 260)}.bluesky-domain{color:#abb8c9;letter-spacing:0;border-top:1px solid oklch(92% .01 260);align-items:center;gap:4px;padding-top:8px;font-size:11.3px;display:flex}.dark .bluesky-domain{border-top-color:oklch(28% .02 260)}.bluesky-globe{flex-shrink:0;width:13px;height:13px}.devtools-panel[data-v-4f65da6e]{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 8px 32px oklch(0% 0 0/.12)}.dark .devtools-panel[data-v-4f65da6e]{box-shadow:0 8px 32px oklch(0% 0 0/.4)}.devtools-panel-header[data-v-4f65da6e]{background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.625rem .75rem;display:flex}.devtools-panel-title[data-v-4f65da6e]{color:var(--color-text);font-size:.875rem;font-weight:500}.devtools-panel-actions[data-v-4f65da6e]{align-items:center;gap:.25rem;display:flex}.devtools-panel-content[data-v-4f65da6e]{flex:1;overflow:auto}.preview-container[data-v-3517e82f]{flex-direction:column;height:calc(100vh - 100px);min-height:500px;display:flex;overflow:hidden}.preview-container[data-v-3517e82f]:hover{border-color:var(--color-border);box-shadow:none}@media (height<=600px){.preview-container[data-v-3517e82f]{border-left:0;border-right:0;border-radius:0;height:100vh;min-height:0}}.component-info[data-v-3517e82f]{align-items:center;gap:.5rem;font-size:.8125rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.component-path-link[data-v-3517e82f]{font-family:var(--font-mono,ui-monospace,monospace);font-size:.8125rem}.size-variant-bar[data-v-3517e82f]{background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.375rem .75rem;display:flex}@media (width>=640px){.size-variant-bar[data-v-3517e82f]{padding:.375rem 1rem}}.size-variant-label[data-v-3517e82f]{color:var(--color-text-subtle);letter-spacing:.02em;white-space:nowrap;font-size:.6875rem}.size-variant-group[data-v-3517e82f]{background:var(--color-border);border-radius:6px;gap:1px;display:flex;overflow:hidden}.size-variant-btn[data-v-3517e82f]{background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.6875rem;line-height:1;transition:background .12s,color .12s;display:flex}.size-variant-btn.active[data-v-3517e82f],.size-variant-btn[data-v-3517e82f]:hover{background:var(--color-surface-sunken);color:var(--color-text)}.size-variant-name[data-v-3517e82f]{font-weight:500}.size-variant-px[data-v-3517e82f]{font-family:var(--font-mono,ui-monospace,monospace);opacity:.6;font-size:.625rem}.size-variant-btn.active .size-variant-px[data-v-3517e82f]{opacity:.8}.preview-area[data-v-3517e82f]{flex:1;justify-content:center;align-items:center;padding:1rem;transition:padding .2s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:auto}@media (width>=640px){.preview-area[data-v-3517e82f]{padding:1.5rem}.preview-area--panel-open[data-v-3517e82f]{padding-right:20rem}}.preview-content[data-v-3517e82f]{width:100%;max-width:42rem;margin:0 auto;transition:max-width .2s cubic-bezier(.22,1,.36,1)}.preview-content--no-transition[data-v-3517e82f]{transition:none}@media (height<=600px){.preview-area[data-v-3517e82f]{padding:.5rem;overflow:hidden}.preview-content[data-v-3517e82f]{flex-direction:column;justify-content:center;max-width:100%;max-height:calc(100vh - 160px);display:flex}.preview-content[data-v-3517e82f] img{-o-object-fit:contain;object-fit:contain;width:auto;max-height:calc(100vh - 280px)}.preview-content[data-v-3517e82f] .bluesky-image,.preview-content[data-v-3517e82f] .discord-image,.preview-content[data-v-3517e82f] .facebook-image,.preview-content[data-v-3517e82f] .linkedin-image,.preview-content[data-v-3517e82f] .slack-image{max-height:calc(100vh - 280px)}}.raw-preview-wrapper[data-v-3517e82f]{width:100%;position:relative}.raw-preview[data-v-3517e82f]{border-radius:var(--radius-lg);width:100%;overflow:hidden;box-shadow:0 4px 24px oklch(0% 0 0/.08)}.raw-preview--dragging[data-v-3517e82f]{-webkit-user-select:none;user-select:none}.dark .raw-preview[data-v-3517e82f]{box-shadow:0 4px 24px oklch(0% 0 0/.3)}.raw-resize-handle[data-v-3517e82f]{cursor:col-resize;z-index:2;justify-content:center;align-items:center;width:28px;height:100%;display:flex;position:absolute;top:0;right:-14px}.raw-resize-grip[data-v-3517e82f]{background:var(--color-border);border-radius:2px;width:4px;height:32px;transition:background .15s,height .15s}.raw-preview--dragging~.raw-resize-handle .raw-resize-grip[data-v-3517e82f],.raw-resize-handle:hover .raw-resize-grip[data-v-3517e82f]{background:var(--color-text-subtle);height:48px}.raw-resize-readout[data-v-3517e82f]{color:var(--color-text-subtle);font-family:var(--font-mono,ui-monospace,monospace);white-space:nowrap;font-size:.625rem;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.status-line[data-v-3517e82f]{color:var(--color-text-subtle);text-align:center;margin-top:1rem;font-size:.75rem}@media (height<=600px){.status-line[data-v-3517e82f]{margin-top:.375rem;font-size:.6875rem}}.props-panel[data-v-3517e82f]{z-index:10;width:18rem;position:absolute;top:7rem;bottom:.75rem;right:.75rem}@media (width>=640px){.props-panel[data-v-3517e82f]{top:8rem;bottom:1rem;right:1rem}}@media (height<=600px){.props-panel[data-v-3517e82f]{border-radius:var(--radius-md);top:5.5rem;bottom:.25rem;right:.25rem}}.props-field[data-v-3517e82f]{padding:.375rem .75rem}.props-field-label[data-v-3517e82f]{color:var(--color-text-muted);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.375rem;margin-bottom:.25rem;font-size:.6875rem;font-weight:500;display:flex}.fonts-tab[data-v-3517e82f]{flex-direction:column;display:flex}.fonts-detected[data-v-3517e82f]{border-bottom:1px solid var(--color-border-subtle);padding:.5rem .75rem}.fonts-detected-inner[data-v-3517e82f]{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.fonts-detected-label[data-v-3517e82f]{color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;margin-right:.125rem;font-size:.5625rem;font-weight:600}.fonts-chip[data-v-3517e82f]{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);color:var(--color-text-muted);font-family:var(--font-mono);border-radius:3px;align-items:center;gap:.1875rem;padding:.0625rem .3125rem;font-size:.625rem;line-height:1.4;display:inline-flex}.fonts-chip--family[data-v-3517e82f]{color:var(--seo-green);background:oklch(65% .2 145/.06);border-color:oklch(65% .2 145/.2)}.dark .fonts-chip--family[data-v-3517e82f]{background:oklch(65% .2 145/.1)}.fonts-chip--error[data-v-3517e82f]{color:oklch(55% .2 25);background:oklch(55% .2 25/.08);border-color:oklch(55% .2 25/.25)}.dark .fonts-chip--error[data-v-3517e82f]{color:oklch(75% .15 25);background:oklch(55% .2 25/.12)}.fonts-resolved[data-v-3517e82f]{border-bottom:none;padding-top:0}.fonts-detected+.fonts-resolved[data-v-3517e82f]{padding-top:0}.fonts-detected-sep[data-v-3517e82f]{background:var(--color-border);flex-shrink:0;width:1px;height:.75rem;margin:0 .125rem}.fonts-specimen[data-v-3517e82f]{flex-direction:column;display:flex}.fonts-family-row[data-v-3517e82f]{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:.375rem .75rem;transition:background .15s cubic-bezier(.22,1,.36,1);display:flex}.fonts-family-row[data-v-3517e82f]:hover{background:var(--color-surface-sunken)}.fonts-family-row.active[data-v-3517e82f]{background:oklch(65% .2 145/.06)}.dark .fonts-family-row.active[data-v-3517e82f]{background:oklch(65% .2 145/.08)}.fonts-family-name[data-v-3517e82f]{color:var(--color-text);font-size:.8125rem;font-weight:500;line-height:1.3}.fonts-family-row.active .fonts-family-name[data-v-3517e82f]{color:var(--seo-green)}.fonts-family-meta[data-v-3517e82f]{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.fonts-family-size[data-v-3517e82f]{color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.01em;font-size:.5625rem}.fonts-family-check[data-v-3517e82f]{color:var(--seo-green);flex-shrink:0;width:.875rem;height:.875rem}.fonts-variants[data-v-3517e82f]{border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;gap:.375rem .625rem;padding:.125rem .75rem .5rem 1rem;display:flex}.fonts-variant[data-v-3517e82f]{flex-wrap:wrap;align-items:baseline;gap:.25rem;display:flex}.fonts-variant-dot[data-v-3517e82f]{background:var(--color-border);border-radius:50%;flex-shrink:0;align-self:center;width:5px;height:5px}.fonts-variant.loaded .fonts-variant-dot[data-v-3517e82f]{background:var(--seo-green)}.fonts-variant-label[data-v-3517e82f]{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:.625rem;line-height:1}.fonts-variant.loaded .fonts-variant-label[data-v-3517e82f]{color:var(--color-text-muted)}.fonts-variant-count[data-v-3517e82f]{opacity:.7;font-size:.5625rem}.fonts-subset-chip[data-v-3517e82f],.fonts-variant-count[data-v-3517e82f]{color:var(--color-text-subtle);font-family:var(--font-mono)}.fonts-subset-chip[data-v-3517e82f]{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:2px;padding:.0625rem .1875rem;font-size:.5rem;line-height:1}.fonts-variant.loaded .fonts-subset-chip[data-v-3517e82f]{color:var(--color-text-muted)}.fonts-empty[data-v-3517e82f]{color:var(--color-text-subtle);text-align:center;padding:1rem .75rem;font-size:.75rem}.prop-editor[data-v-3517e82f]{gap:.375rem;padding:.5rem .75rem}.prop-editor[data-v-3517e82f],.prop-field[data-v-3517e82f]{flex-direction:column;display:flex}.prop-field[data-v-3517e82f]{gap:.125rem}.prop-label[data-v-3517e82f]{color:var(--color-text-subtle);letter-spacing:.01em;font-size:.6875rem}.prop-input[data-v-3517e82f],.prop-label[data-v-3517e82f]{font-family:var(--font-mono)}.prop-input[data-v-3517e82f]{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text);outline:none;padding:.25rem .375rem;font-size:.75rem;transition:border-color .15s}.prop-input[data-v-3517e82f]:focus{border-color:var(--seo-green)}.prop-input-color[data-v-3517e82f]{cursor:pointer;width:2.5rem;height:1.5rem;padding:.125rem}.prop-input-json[data-v-3517e82f]{resize:vertical;min-height:2.5rem;line-height:1.4}.prop-editor-empty[data-v-3517e82f]{color:var(--color-text-subtle);text-align:center;padding:1rem .75rem;font-size:.75rem}.inline-code[data-v-3517e82f]{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--seo-green);font-family:var(--font-mono);padding:.125rem .375rem;font-size:.8125rem}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/jJVhk0xb.js"}}</script><link rel="stylesheet" href="/__nuxt-og-image/_nuxt/entry.DgipzMgL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/jJVhk0xb.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CHHO6nw6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/D2zWjF09.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/Co3OAyKc.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/C-b6hTTf.js"><script type="module" src="/__nuxt-og-image/_nuxt/jJVhk0xb.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"116b189e-4f49-45f9-b21c-dfb518abeb03",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774546027085,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/jJVhk0xb.js"}}</script><link rel="stylesheet" href="/__nuxt-og-image/_nuxt/entry.DgipzMgL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/jJVhk0xb.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CHHO6nw6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/D2zWjF09.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/Co3OAyKc.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/C-b6hTTf.js"><script type="module" src="/__nuxt-og-image/_nuxt/jJVhk0xb.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"116b189e-4f49-45f9-b21c-dfb518abeb03",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774546027086,false]</script></body></html>
|
package/dist/devtools/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/jJVhk0xb.js"}}</script><link rel="stylesheet" href="/__nuxt-og-image/_nuxt/entry.DgipzMgL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/jJVhk0xb.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CHHO6nw6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/D2zWjF09.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/Co3OAyKc.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/C-b6hTTf.js"><script type="module" src="/__nuxt-og-image/_nuxt/jJVhk0xb.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT_SITE_CONFIG__={_priority:{env:-15,url:-3},env:"production",url:"https:\u002F\u002Fnuxtseo.com"}</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"116b189e-4f49-45f9-b21c-dfb518abeb03",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774546027086,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-og-image/_nuxt/jJVhk0xb.js"}}</script><link rel="stylesheet" href="/__nuxt-og-image/_nuxt/entry.DgipzMgL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/jJVhk0xb.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CHHO6nw6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/D2zWjF09.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/Co3OAyKc.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/C-b6hTTf.js"><script type="module" src="/__nuxt-og-image/_nuxt/jJVhk0xb.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"116b189e-4f49-45f9-b21c-dfb518abeb03",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774546027086,false]</script></body></html>
|
package/dist/module.cjs
CHANGED
|
@@ -9,7 +9,7 @@ require('nuxt-site-config/kit');
|
|
|
9
9
|
require('ohash');
|
|
10
10
|
require('pathe');
|
|
11
11
|
require('pkg-types');
|
|
12
|
-
const module$1 = require('./shared/nuxt-og-image.
|
|
12
|
+
const module$1 = require('./shared/nuxt-og-image.DVJetxwr.cjs');
|
|
13
13
|
require('nuxtseo-shared/kit');
|
|
14
14
|
require('../dist/runtime/logger.js');
|
|
15
15
|
require('node:crypto');
|
package/dist/module.d.cts
CHANGED
|
@@ -137,6 +137,39 @@ interface ModuleOptions {
|
|
|
137
137
|
* @example { provider: 'cloudflare', binding: 'BROWSER' }
|
|
138
138
|
*/
|
|
139
139
|
browser?: BrowserConfig;
|
|
140
|
+
/**
|
|
141
|
+
* Security limits for image generation. Prevents denial of service via
|
|
142
|
+
* oversized dimensions, unbounded DPR, or long-running renders.
|
|
143
|
+
*/
|
|
144
|
+
security?: {
|
|
145
|
+
/** Maximum allowed width or height in pixels. @default 2048 */
|
|
146
|
+
maxDimension?: number;
|
|
147
|
+
/** Maximum device pixel ratio (takumi renderer). @default 2 */
|
|
148
|
+
maxDpr?: number;
|
|
149
|
+
/** Render timeout in milliseconds. Returns 408 on timeout. @default 15000 */
|
|
150
|
+
renderTimeout?: number;
|
|
151
|
+
/**
|
|
152
|
+
* Maximum allowed length (in characters) for the query string on runtime OG image requests.
|
|
153
|
+
* Requests exceeding this limit receive a 400 response.
|
|
154
|
+
*
|
|
155
|
+
* Set to a number to enable (e.g. `2048`). Leave `null` to disable.
|
|
156
|
+
*
|
|
157
|
+
* @default null
|
|
158
|
+
*/
|
|
159
|
+
maxQueryParamSize?: number | null;
|
|
160
|
+
/**
|
|
161
|
+
* Restrict runtime image generation to requests whose Host header matches allowed hosts.
|
|
162
|
+
* - `true`: only allow requests whose Host matches the site config URL host
|
|
163
|
+
* - `string[]`: allow the site config URL host plus these additional origins
|
|
164
|
+
* - `false` (default): no host restriction
|
|
165
|
+
*
|
|
166
|
+
* Uses h3's `getRequestHost` with `X-Forwarded-Host` support for reverse proxies.
|
|
167
|
+
* Prerendering and dev mode are never restricted.
|
|
168
|
+
*
|
|
169
|
+
* @default false
|
|
170
|
+
*/
|
|
171
|
+
restrictRuntimeImagesToOrigin?: boolean | string[];
|
|
172
|
+
};
|
|
140
173
|
}
|
|
141
174
|
interface ModuleHooks {
|
|
142
175
|
'nuxt-og-image:components': (ctx: {
|
package/dist/module.d.mts
CHANGED
|
@@ -137,6 +137,39 @@ interface ModuleOptions {
|
|
|
137
137
|
* @example { provider: 'cloudflare', binding: 'BROWSER' }
|
|
138
138
|
*/
|
|
139
139
|
browser?: BrowserConfig;
|
|
140
|
+
/**
|
|
141
|
+
* Security limits for image generation. Prevents denial of service via
|
|
142
|
+
* oversized dimensions, unbounded DPR, or long-running renders.
|
|
143
|
+
*/
|
|
144
|
+
security?: {
|
|
145
|
+
/** Maximum allowed width or height in pixels. @default 2048 */
|
|
146
|
+
maxDimension?: number;
|
|
147
|
+
/** Maximum device pixel ratio (takumi renderer). @default 2 */
|
|
148
|
+
maxDpr?: number;
|
|
149
|
+
/** Render timeout in milliseconds. Returns 408 on timeout. @default 15000 */
|
|
150
|
+
renderTimeout?: number;
|
|
151
|
+
/**
|
|
152
|
+
* Maximum allowed length (in characters) for the query string on runtime OG image requests.
|
|
153
|
+
* Requests exceeding this limit receive a 400 response.
|
|
154
|
+
*
|
|
155
|
+
* Set to a number to enable (e.g. `2048`). Leave `null` to disable.
|
|
156
|
+
*
|
|
157
|
+
* @default null
|
|
158
|
+
*/
|
|
159
|
+
maxQueryParamSize?: number | null;
|
|
160
|
+
/**
|
|
161
|
+
* Restrict runtime image generation to requests whose Host header matches allowed hosts.
|
|
162
|
+
* - `true`: only allow requests whose Host matches the site config URL host
|
|
163
|
+
* - `string[]`: allow the site config URL host plus these additional origins
|
|
164
|
+
* - `false` (default): no host restriction
|
|
165
|
+
*
|
|
166
|
+
* Uses h3's `getRequestHost` with `X-Forwarded-Host` support for reverse proxies.
|
|
167
|
+
* Prerendering and dev mode are never restricted.
|
|
168
|
+
*
|
|
169
|
+
* @default false
|
|
170
|
+
*/
|
|
171
|
+
restrictRuntimeImagesToOrigin?: boolean | string[];
|
|
172
|
+
};
|
|
140
173
|
}
|
|
141
174
|
interface ModuleHooks {
|
|
142
175
|
'nuxt-og-image:components': (ctx: {
|
package/dist/module.d.ts
CHANGED
|
@@ -137,6 +137,39 @@ interface ModuleOptions {
|
|
|
137
137
|
* @example { provider: 'cloudflare', binding: 'BROWSER' }
|
|
138
138
|
*/
|
|
139
139
|
browser?: BrowserConfig;
|
|
140
|
+
/**
|
|
141
|
+
* Security limits for image generation. Prevents denial of service via
|
|
142
|
+
* oversized dimensions, unbounded DPR, or long-running renders.
|
|
143
|
+
*/
|
|
144
|
+
security?: {
|
|
145
|
+
/** Maximum allowed width or height in pixels. @default 2048 */
|
|
146
|
+
maxDimension?: number;
|
|
147
|
+
/** Maximum device pixel ratio (takumi renderer). @default 2 */
|
|
148
|
+
maxDpr?: number;
|
|
149
|
+
/** Render timeout in milliseconds. Returns 408 on timeout. @default 15000 */
|
|
150
|
+
renderTimeout?: number;
|
|
151
|
+
/**
|
|
152
|
+
* Maximum allowed length (in characters) for the query string on runtime OG image requests.
|
|
153
|
+
* Requests exceeding this limit receive a 400 response.
|
|
154
|
+
*
|
|
155
|
+
* Set to a number to enable (e.g. `2048`). Leave `null` to disable.
|
|
156
|
+
*
|
|
157
|
+
* @default null
|
|
158
|
+
*/
|
|
159
|
+
maxQueryParamSize?: number | null;
|
|
160
|
+
/**
|
|
161
|
+
* Restrict runtime image generation to requests whose Host header matches allowed hosts.
|
|
162
|
+
* - `true`: only allow requests whose Host matches the site config URL host
|
|
163
|
+
* - `string[]`: allow the site config URL host plus these additional origins
|
|
164
|
+
* - `false` (default): no host restriction
|
|
165
|
+
*
|
|
166
|
+
* Uses h3's `getRequestHost` with `X-Forwarded-Host` support for reverse proxies.
|
|
167
|
+
* Prerendering and dev mode are never restricted.
|
|
168
|
+
*
|
|
169
|
+
* @default false
|
|
170
|
+
*/
|
|
171
|
+
restrictRuntimeImagesToOrigin?: boolean | string[];
|
|
172
|
+
};
|
|
140
173
|
}
|
|
141
174
|
interface ModuleHooks {
|
|
142
175
|
'nuxt-og-image:components': (ctx: {
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import 'nuxt-site-config/kit';
|
|
|
7
7
|
import 'ohash';
|
|
8
8
|
import 'pathe';
|
|
9
9
|
import 'pkg-types';
|
|
10
|
-
export { m as default } from './shared/nuxt-og-image.
|
|
10
|
+
export { m as default } from './shared/nuxt-og-image.CA6cPvTd.mjs';
|
|
11
11
|
import 'nuxtseo-shared/kit';
|
|
12
12
|
import '../dist/runtime/logger.js';
|
|
13
13
|
import 'node:crypto';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { H3Error, H3Event } from 'h3';
|
|
2
2
|
import type { OgImageRenderEventContext } from '../../types.js';
|
|
3
|
-
export declare function resolvePathCacheKey(e: H3Event, path: string,
|
|
3
|
+
export declare function resolvePathCacheKey(e: H3Event, path: string, resolvedOptions?: Record<string, any>): string;
|
|
4
4
|
export declare function resolveContext(e: H3Event): Promise<H3Error | OgImageRenderEventContext>;
|
|
@@ -7,14 +7,15 @@ import { useNitroApp } from "nitropack/runtime";
|
|
|
7
7
|
import { hash } from "ohash";
|
|
8
8
|
import { parseURL, withoutLeadingSlash, withoutTrailingSlash, withQuery } from "ufo";
|
|
9
9
|
import { normalizeKey } from "unstorage";
|
|
10
|
-
import {
|
|
10
|
+
import { logger } from "../../logger.js";
|
|
11
|
+
import { decodeOgImageParams, extractEncodedSegment, sanitizeProps, separateProps } from "../../shared.js";
|
|
11
12
|
import { autoEjectCommunityTemplate } from "../util/auto-eject.js";
|
|
12
13
|
import { createNitroRouteRuleMatcher } from "../util/kit.js";
|
|
13
14
|
import { normaliseOptions } from "../util/options.js";
|
|
14
15
|
import { useOgImageRuntimeConfig } from "../utils.js";
|
|
15
16
|
import { getBrowserRenderer, getSatoriRenderer, getTakumiRenderer } from "./instances.js";
|
|
16
17
|
const RE_HASH_MODE = /^o_([a-z0-9]+)$/i;
|
|
17
|
-
export function resolvePathCacheKey(e, path,
|
|
18
|
+
export function resolvePathCacheKey(e, path, resolvedOptions) {
|
|
18
19
|
const siteConfig = getSiteConfig(e, {
|
|
19
20
|
resolveRefs: true
|
|
20
21
|
});
|
|
@@ -23,8 +24,8 @@ export function resolvePathCacheKey(e, path, includeQuery = false) {
|
|
|
23
24
|
basePath,
|
|
24
25
|
import.meta.prerender ? "" : siteConfig.url
|
|
25
26
|
];
|
|
26
|
-
if (
|
|
27
|
-
hashParts.push(hash(
|
|
27
|
+
if (resolvedOptions)
|
|
28
|
+
hashParts.push(hash(resolvedOptions));
|
|
28
29
|
return [
|
|
29
30
|
!basePath || basePath === "/" ? "index" : basePath,
|
|
30
31
|
hash(hashParts)
|
|
@@ -65,6 +66,16 @@ export async function resolveContext(e) {
|
|
|
65
66
|
} else {
|
|
66
67
|
urlOptions = decodeOgImageParams(encodedSegment);
|
|
67
68
|
}
|
|
69
|
+
const maxQueryParamSize = runtimeConfig.security?.maxQueryParamSize;
|
|
70
|
+
if (maxQueryParamSize && !import.meta.prerender) {
|
|
71
|
+
const queryString = parseURL(e.path).search || "";
|
|
72
|
+
if (queryString.length > maxQueryParamSize) {
|
|
73
|
+
return createError({
|
|
74
|
+
statusCode: 400,
|
|
75
|
+
statusMessage: `[Nuxt OG Image] Query string exceeds maximum allowed length of ${maxQueryParamSize} characters.`
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
68
79
|
const query = getQuery(e);
|
|
69
80
|
let queryParams = {};
|
|
70
81
|
for (const k in query) {
|
|
@@ -92,6 +103,17 @@ export async function resolveContext(e) {
|
|
|
92
103
|
const routeRules = routeRuleMatcher(basePath);
|
|
93
104
|
const ogImageRouteRules = separateProps(routeRules.ogImage);
|
|
94
105
|
const options = defu(queryParams, urlOptions, ogImageRouteRules, runtimeConfig.defaults);
|
|
106
|
+
const maxDim = runtimeConfig.security?.maxDimension || 2048;
|
|
107
|
+
if (options.width != null) {
|
|
108
|
+
const w = Number(options.width);
|
|
109
|
+
options.width = Number.isFinite(w) ? Math.min(Math.max(1, w), maxDim) : void 0;
|
|
110
|
+
}
|
|
111
|
+
if (options.height != null) {
|
|
112
|
+
const h = Number(options.height);
|
|
113
|
+
options.height = Number.isFinite(h) ? Math.min(Math.max(1, h), maxDim) : void 0;
|
|
114
|
+
}
|
|
115
|
+
if (options.props && typeof options.props === "object")
|
|
116
|
+
options.props = sanitizeProps(options.props);
|
|
95
117
|
if (!options) {
|
|
96
118
|
return createError({
|
|
97
119
|
statusCode: 404,
|
|
@@ -99,10 +121,24 @@ export async function resolveContext(e) {
|
|
|
99
121
|
});
|
|
100
122
|
}
|
|
101
123
|
const normalised = normaliseOptions(options);
|
|
124
|
+
if (normalised.component && normalised.options.props && typeof normalised.options.props === "object") {
|
|
125
|
+
const builtinProps = /* @__PURE__ */ new Set(["colorMode", "timestamp"]);
|
|
126
|
+
const allowedProps = normalised.component.propNames || [];
|
|
127
|
+
const allowedSet = new Set(allowedProps);
|
|
128
|
+
const raw = normalised.options.props;
|
|
129
|
+
const filtered = {};
|
|
130
|
+
for (const key2 of Object.keys(raw)) {
|
|
131
|
+
if (allowedSet.has(key2) || builtinProps.has(key2))
|
|
132
|
+
filtered[key2] = raw[key2];
|
|
133
|
+
else if (import.meta.dev)
|
|
134
|
+
logger.warn(`[Nuxt OG Image] Prop "${key2}" is not declared by component "${normalised.component.pascalName}". Declared props: ${allowedProps.join(", ")}`);
|
|
135
|
+
}
|
|
136
|
+
normalised.options.props = filtered;
|
|
137
|
+
}
|
|
102
138
|
if (normalised.component?.category === "community")
|
|
103
139
|
autoEjectCommunityTemplate(normalised.component, runtimeConfig, { requestPath: e.path });
|
|
104
140
|
const rendererType = normalised.renderer;
|
|
105
|
-
const baseCacheKey = normalised.options.cacheKey || (hashMatch ? `hash:${hashMatch[1]}` : resolvePathCacheKey(e, basePathWithQuery,
|
|
141
|
+
const baseCacheKey = normalised.options.cacheKey || (hashMatch ? `hash:${hashMatch[1]}` : resolvePathCacheKey(e, basePathWithQuery, normalised.options));
|
|
106
142
|
const key = componentHash ? `${baseCacheKey}:${componentHash}` : baseCacheKey;
|
|
107
143
|
let renderer;
|
|
108
144
|
switch (rendererType) {
|