@font-face{font-family:geologica;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-2bcd3c98c41d8771d92a.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:geologica;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-44317364e668c4e86e7e.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:geologica;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-4e506574fd0b21b788d0.woff2)format('woff2');unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:geologica;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-e2442cc83868631ceb06.woff2)format('woff2');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-face{font-family:geologica;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-33644ebda8e8fc534a16.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:geologica;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-0df4fc8d545871119432.woff2)format('woff2');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-face{font-family:geologica;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-2bcd3c98c41d8771d92a.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:geologica;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-44317364e668c4e86e7e.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:geologica;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-4e506574fd0b21b788d0.woff2)format('woff2');unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:geologica;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-e2442cc83868631ceb06.woff2)format('woff2');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-face{font-family:geologica;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-33644ebda8e8fc534a16.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:geologica;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-0df4fc8d545871119432.woff2)format('woff2');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-face{font-family:geologica;font-style:normal;font-weight:700;font-display:swap;src:url(/blog/assets/fonts/font-2bcd3c98c41d8771d92a.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:geologica;font-style:normal;font-weight:700;font-display:swap;src:url(/blog/assets/fonts/font-44317364e668c4e86e7e.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:geologica;font-style:normal;font-weight:700;font-display:swap;src:url(/blog/assets/fonts/font-4e506574fd0b21b788d0.woff2)format('woff2');unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:geologica;font-style:normal;font-weight:700;font-display:swap;src:url(/blog/assets/fonts/font-e2442cc83868631ceb06.woff2)format('woff2');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-face{font-family:geologica;font-style:normal;font-weight:700;font-display:swap;src:url(/blog/assets/fonts/font-33644ebda8e8fc534a16.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:geologica;font-style:normal;font-weight:700;font-display:swap;src:url(/blog/assets/fonts/font-0df4fc8d545871119432.woff2)format('woff2');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-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-9343de2ca5d9549f792e.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-4995a9a43ac659ec32fc.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-49c3da6c9a2b279b0f1f.woff2)format('woff2');unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-d44eb1936043a56038eb.woff2)format('woff2');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-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-9c38cb2d0d2d93c1ee6e.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-2c32b9b3ee358c119e21.woff2)format('woff2');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-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-9343de2ca5d9549f792e.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-4995a9a43ac659ec32fc.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-49c3da6c9a2b279b0f1f.woff2)format('woff2');unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-d44eb1936043a56038eb.woff2)format('woff2');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-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-9c38cb2d0d2d93c1ee6e.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-2c32b9b3ee358c119e21.woff2)format('woff2');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-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-8b55db3131aa41d0b0f2.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-c3f4223046fb9623a0e9.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-27a244d81d9faa46ec51.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-209F,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-5977fb8a281a636793b0.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AE,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F8D0-1F8D8,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FAC6,U+1FAC8,U+1FACC-1FADD,U+1FADF-1FAEB,U+1FAEF-1FAFA,U+1FB00-1FBFF}@font-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-505038d86b7b8f24704b.woff2)format('woff2');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-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-f72bdc75595bf844f68b.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:onest;font-style:normal;font-weight:400;font-display:swap;src:url(/blog/assets/fonts/font-cc61cbd632bb677cd55f.woff2)format('woff2');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-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-8b55db3131aa41d0b0f2.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-c3f4223046fb9623a0e9.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-27a244d81d9faa46ec51.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-209F,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-5977fb8a281a636793b0.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AE,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F8D0-1F8D8,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FAC6,U+1FAC8,U+1FACC-1FADD,U+1FADF-1FAEB,U+1FAEF-1FAFA,U+1FB00-1FBFF}@font-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-505038d86b7b8f24704b.woff2)format('woff2');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-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-f72bdc75595bf844f68b.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:onest;font-style:normal;font-weight:500;font-display:swap;src:url(/blog/assets/fonts/font-cc61cbd632bb677cd55f.woff2)format('woff2');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-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-8b55db3131aa41d0b0f2.woff2)format('woff2');unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-c3f4223046fb9623a0e9.woff2)format('woff2');unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-27a244d81d9faa46ec51.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-209F,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-5977fb8a281a636793b0.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AE,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F8D0-1F8D8,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FAC6,U+1FAC8,U+1FACC-1FADD,U+1FADF-1FAEB,U+1FAEF-1FAFA,U+1FB00-1FBFF}@font-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-505038d86b7b8f24704b.woff2)format('woff2');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-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-f72bdc75595bf844f68b.woff2)format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:onest;font-style:normal;font-weight:600;font-display:swap;src:url(/blog/assets/fonts/font-cc61cbd632bb677cd55f.woff2)format('woff2');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}:root{--header-height:113px;--font-ui:'Onest', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;--font-display:'Geologica', 'Onest', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;--font-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg:#0F1113;--bg-elev:#13171B;--bg-soft:rgba(255, 255, 255, .035);--bg-hover:rgba(255, 255, 255, .055);--line:rgba(255, 255, 255, .08);--line-2:rgba(255, 255, 255, .14);--ring:rgba(255, 255, 255, .22);--text-1:#F7F5F0;--text-2:#B9C0C7;--text-3:#8E98A2;--text-4:#66707A;--accent:#5EEAD4;--accent-ink:#5EEAD4;--accent-soft:rgba(94, 234, 212, .11);--accent-line:rgba(94, 234, 212, .45);--cta-bg:#F7F5F0;--cta-fg:#0C0F12;--cta-hover:#FFFFFF;--code-outer:rgba(255, 255, 255, .04);--code-inner:#0A0C0E;--code-text:#D6DADF;--tok-key:#9CDCFE;--tok-str:#E3B78E;--tok-num:#B5CEA8;--tok-com:#6E7C73;--tok-kw:#D7A6E6;--tok-fn:#8FD8C8;--note-bg:rgba(59, 130, 246, .12);--note-line:rgba(96, 165, 250, .35);--note-text:#A9CBFB;--tip-bg:rgba(34, 197, 94, .10);--tip-line:rgba(74, 222, 128, .32);--tip-text:#9BE8B5;--warn-bg:rgba(245, 158, 11, .10);--warn-line:rgba(251, 191, 36, .35);--warn-text:#F5CE7A;--req-bg:rgba(248, 113, 113, .12);--req-text:#FCA5A5;--get:#4ADE80;--post:#60A5FA;--fm-messages:#F4B08A;--fm-gemini:#9DB8FF;--fm-responses:#C7A7F5;--shadow-pop:0 24px 64px -16px rgba(0, 0, 0, .7);--overlay:rgba(4, 6, 8, .62);--header-bg:rgba(15, 17, 19, .88);color-scheme:dark}:root[data-theme=light]{--bg:#FAFAF8;--bg-elev:#FFFFFF;--bg-soft:rgba(12, 15, 18, .035);--bg-hover:rgba(12, 15, 18, .055);--line:rgba(12, 15, 18, .09);--line-2:rgba(12, 15, 18, .15);--ring:rgba(12, 15, 18, .25);--text-1:#0C0F12;--text-2:#3E454C;--text-3:#5F6973;--text-4:#7C858E;--accent:#0F766E;--accent-ink:#0F766E;--accent-soft:rgba(15, 118, 110, .09);--accent-line:rgba(15, 118, 110, .45);--cta-bg:#0C0F12;--cta-fg:#FFFFFF;--cta-hover:#000000;--code-outer:#F1F2EF;--code-inner:#FFFFFF;--code-text:#24292F;--tok-key:#0550AE;--tok-str:#A0461A;--tok-num:#116329;--tok-com:#6E7781;--tok-kw:#8250DF;--tok-fn:#0F766E;--note-bg:#EFF6FF;--note-line:#BFDBFE;--note-text:#1E40AF;--tip-bg:#F0FDF4;--tip-line:#BBF7D0;--tip-text:#166534;--warn-bg:#FFFBEB;--warn-line:#FDE68A;--warn-text:#92400E;--req-bg:rgba(220, 38, 38, .08);--req-text:#B91C1C;--get:#15803D;--post:#1D4ED8;--fm-messages:#9A3412;--fm-gemini:#1D4ED8;--fm-responses:#6D28D9;--shadow-pop:0 24px 64px -20px rgba(12, 15, 18, .28);--overlay:rgba(12, 15, 18, .38);--header-bg:rgba(250, 250, 248, .9);color-scheme:light}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-height) + 16px)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text-2);font:16px/28px var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer}img,svg{display:block}::selection{background:var(--accent);color:#0c0f12}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:8px 14px;border-radius:10px;background:var(--cta-bg);color:var(--cta-fg);text-decoration:none;font-weight:600}.skip:focus{top:12px}.ico{width:16px;height:16px;flex:none}.hdr{position:sticky;top:0;z-index:40;background:var(--header-bg);-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--line)}.hdr-row{max-width:1472px;margin:0 auto;padding:0 48px;display:flex;align-items:center}.hdr-top{height:64px;gap:12px}.hdr-tabs{height:48px;gap:24px;border-top:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text-1);text-decoration:none;border-radius:8px;flex:none}.brand svg{height:22px;width:auto}.brand .brand-sub{font:500 13px/1 var(--font-mono);color:var(--text-3);padding:4px 7px;border:1px solid var(--line-2);border-radius:6px}.hdr-search{margin-left:auto;display:inline-flex;align-items:center;gap:8px;height:36px;width:220px;padding:0 10px 0 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-soft);color:var(--text-3);font-size:14px;text-align:left}.hdr-search:hover{border-color:var(--ring);color:var(--text-2)}.hdr-search span{flex:1}kbd,.kbd{font:500 11px/1 var(--font-mono);color:var(--text-3);padding:3px 5px;border-radius:5px;border:1px solid var(--line-2);background:var(--bg-soft)}.hdr-links{display:flex;align-items:center;gap:22px;margin-left:12px}.hdr-links a{font-size:14px;line-height:20px;color:var(--text-2);text-decoration:none;white-space:nowrap}.hdr-links a:hover,.hdr-links a[aria-current=page]{color:var(--text-1)}.hdr-actions{display:flex;align-items:center;gap:8px;margin-left:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:12px;font:600 14px/1 var(--font-ui);text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--cta-bg);color:var(--cta-fg);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);border-radius:10px}.btn-primary:hover{background:var(--cta-hover)}.btn-primary:focus-visible{clip-path:none}.btn-ghost{border-color:var(--line-2);color:var(--text-1);background:0 0}.btn-ghost:hover{border-color:var(--ring);background:var(--bg-hover)}.btn.auth-in{display:none}:root[data-session=in] .btn.auth-in{display:inline-flex}:root[data-session=in] .auth-out{display:none!important}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:0;background:0 0;color:var(--text-3)}.icon-btn:hover{color:var(--text-1);background:var(--bg-hover)}.icon-btn svg{width:18px;height:18px}.theme-toggle .sun{display:none}:root[data-theme=light] .theme-toggle .sun{display:block}:root[data-theme=light] .theme-toggle .moon{display:none}.tab{position:relative;display:inline-flex;align-items:center;gap:8px;height:48px;min-height:44px;font-size:14px;color:var(--text-3);text-decoration:none;white-space:nowrap}.tab:hover{color:var(--text-1)}.tab[aria-current=page]{color:var(--text-1)}.tab[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1.5px;background:var(--accent)}.hdr-mobile{display:none}.crumbs{display:flex;align-items:center;gap:6px;min-width:0;font-size:14px;color:var(--text-3)}.crumbs b{font-weight:500;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell{max-width:1472px;margin:0 auto;padding:0 32px;display:flex;align-items:flex-start}.sidebar{position:sticky;top:var(--header-height);width:288px;flex:none;height:calc(100vh - var(--header-height));overflow-y:auto;padding:24px 32px 40px 0;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 32px);mask-image:linear-gradient(to bottom,transparent 0,#000 32px)}.sidebar::-webkit-scrollbar{display:none}.nav-group+.nav-group{margin-top:26px}.nav-title{display:flex;align-items:center;gap:10px;padding:0 0 6px 16px;font-size:14px;line-height:20px;font-weight:500;color:var(--text-1)}.nav-title .ico{color:var(--text-3)}.nav-list{list-style:none;margin:0;padding:0;display:grid;gap:1px}.nav-link{display:flex;align-items:center;gap:12px;min-height:36px;padding:6px 12px 6px 16px;border-radius:12px;color:var(--text-3);text-decoration:none;font-size:14px;line-height:20px;overflow-wrap:anywhere}.nav-link .ico{color:var(--text-4)}.nav-link:hover{color:var(--text-1);background:var(--bg-hover)}.nav-link[aria-current=page]{color:var(--accent-ink);background:var(--accent-soft);font-weight:500}.nav-link[aria-current=page] .ico{color:var(--accent-ink)}.nav-sub summary{list-style:none;cursor:pointer}.nav-sub summary::-webkit-details-marker{display:none}.nav-sub summary .chev{width:14px;height:14px;color:var(--text-4);transition:transform .15s ease}.nav-sub[open] summary .chev{transform:rotate(90deg)}.nav-sub .nav-list{padding:2px 0 6px 12px}.nav-sub .nav-link{padding-left:28px;font-size:13.5px;min-height:32px}.badge-mini{font:600 9px/1 var(--font-mono);padding:3px 4px;border-radius:5px;color:#fff;background:var(--post);letter-spacing:.02em;flex:none}.badge-mini.get{background:var(--get);color:#0c0f12}.main{flex:1;min-width:0;display:flex;justify-content:space-between;gap:48px;padding:40px 0 0 43px}.article{width:100%;max-width:689px;min-width:0;padding-bottom:64px}.toc{position:sticky;top:calc(var(--header-height) + 40px);width:264px;flex:none;max-height:calc(100vh - var(--header-height) - 57px);overflow-y:auto;scrollbar-width:none}.toc-title{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-4);margin-bottom:6px}.toc ol{list-style:none;margin:0;padding:0}.toc a{display:block;padding:4px 0;font-size:14px;line-height:24px;color:var(--text-3);text-decoration:none}.toc a:hover{color:var(--text-1)}.toc a.active{color:var(--accent-ink)}.toc .toc-help{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;line-height:20px;color:var(--text-3)}.toc .toc-help a{display:inline;padding:0;font-size:13px;color:var(--text-2);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px}.main.api{gap:52px}.main.api .article{max-width:545px}.code-panel{position:sticky;top:calc(var(--header-height) + 40px);width:448px;flex:none;max-height:calc(100vh - var(--header-height) - 57px);overflow-y:auto;display:grid;gap:24px;scrollbar-width:none}.code-panel .code-group{margin:0}.code-panel pre{font-size:12px;line-height:21.6px}.code-inline-api{display:none}.eyebrow{display:inline-block;font-size:16px;line-height:24px;color:var(--accent-ink);text-decoration:none;margin-bottom:8px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.copy-page{flex:none;height:32px;padding:0 10px;font-size:13px;font-weight:500;border-radius:10px;margin-top:4px;color:var(--text-2)}.copy-page .ico{width:14px;height:14px}.article h1{margin:0;font:600 36px/40px var(--font-display);letter-spacing:-.9px;color:var(--text-1);text-wrap:balance}.lead{margin:10px 0 36px;font-size:18px;line-height:28px;color:var(--text-3)}.article h2{position:relative;margin:44px 0 18px;font:600 24px/32px var(--font-display);letter-spacing:-.6px;color:var(--text-1)}.article h2:first-child{margin-top:0}.article h3{margin:32px 0 12px;font:600 18px/27px var(--font-display);color:var(--text-1)}.article h4{margin:36px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--line);font:600 18px/27px var(--font-display);color:var(--text-1)}.anchor{position:absolute;left:-32px;top:4px;width:24px;height:24px;display:grid;place-items:center;color:var(--text-4);opacity:0;text-decoration:none;border-radius:6px}.article h2:hover .anchor,.anchor:focus-visible{opacity:1}.anchor:hover{color:var(--accent-ink)}.article p{margin:0 0 20px}.article strong{color:var(--text-1);font-weight:600}.article a:not(.btn):not(.card-link):not(.eyebrow):not(.anchor):not(.pager a){color:var(--text-1);font-weight:500;text-decoration:none;border-bottom:1px solid var(--accent-line)}.article a:not(.btn):not(.card-link):not(.eyebrow):not(.anchor):hover{border-bottom-color:var(--accent)}.article ul,.article ol{margin:0 0 20px;padding-left:22px}.article li{margin:6px 0}.article li::marker{color:var(--text-4)}code{font:.875em/1.5 var(--font-mono)}:not(pre)>code{padding:2px 7px;border-radius:6px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-1);white-space:nowrap}:not(pre)>code.w{white-space:normal;overflow-wrap:anywhere}.callout code,.param p code,.app-sheet-body p code{white-space:normal;overflow-wrap:anywhere}.compat td:first-child{min-width:150px}.compat td:last-child,.compat th:last-child{text-align:right;white-space:nowrap}.compat td:nth-child(3){white-space:nowrap}.muted{color:var(--text-4);font-size:.92em}.table-wrap{margin:8px 0 28px;overflow-x:auto}.article table{width:100%;border-collapse:collapse;font-size:14px;line-height:21px}.article th{text-align:left;font-weight:500;color:var(--text-1);padding:0 12px 10px 0;border-bottom:1px solid var(--line-2);vertical-align:bottom}.article td{padding:9px 12px 9px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--text-2)}.article td code,.article th code{font-size:12.5px}.article hr{border:0;border-top:1px solid var(--line);margin:36px 0}.steps,.article .steps{list-style:none;counter-reset:step;margin:8px 0 28px;padding:0}.steps>li{counter-increment:step;position:relative;margin:0;padding:0 0 24px 44px}.steps>li::before{content:counter(step);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font:600 13px/1 var(--font-mono);color:var(--text-1);background:var(--bg-soft);border:1px solid var(--line-2)}.steps>li::after{content:"";position:absolute;left:14px;top:34px;bottom:6px;width:1px;background:var(--line)}.steps>li:last-child::after{display:none}.steps>li:last-child{padding-bottom:0}.steps>li>p:last-child{margin-bottom:0}.steps+.code-group{margin-top:24px}.steps>li>b{display:block;color:var(--text-1);font-weight:600;line-height:28px}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 28px}.flow>div{position:relative;padding:14px 14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--bg-soft)}.flow b{display:block;font:600 14px/20px var(--font-display);color:var(--text-1);margin-bottom:4px}.flow span{display:block;font-size:13px;line-height:19px;color:var(--text-3)}.flow i{font-style:normal;font:600 11px/1 var(--font-mono);color:var(--accent-ink);display:block;margin-bottom:10px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 28px}.card-link{display:block;padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft);text-decoration:none;color:var(--text-2);transition:border-color .15s ease,background-color .15s ease}.card-link:hover{border-color:var(--line-2);background:var(--bg-hover)}.card-link b{display:flex;align-items:center;gap:10px;color:var(--text-1);font:600 15px/22px var(--font-display);margin-bottom:4px}.card-link span{display:block;font-size:14px;line-height:21px;color:var(--text-3)}.card-link .ico{color:var(--accent-ink)}.callout{display:flex;gap:12px;margin:16px 0 24px;padding:14px 18px;border-radius:16px;border:1px solid;font-size:14px;line-height:21px}.callout .ico{width:18px;height:18px;margin-top:1px}.callout>div{min-width:0;overflow-wrap:anywhere}.callout>div>:last-child{margin-bottom:0}.article p,.article li,.article td{overflow-wrap:break-word}.app-setup p,.app-where{overflow-wrap:anywhere}.callout p{margin:0 0 8px}.callout a{color:inherit!important;border-bottom-color:initial!important}.callout code{background:0 0;border-color:initial;color:inherit;opacity:.95}.callout.note{background:var(--note-bg);border-color:var(--note-line);color:var(--note-text)}.callout.tip{background:var(--tip-bg);border-color:var(--tip-line);color:var(--tip-text)}.callout.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-text)}.code-group{margin:20px 0 32px;padding:2px;border-radius:16px;border:1px solid var(--line);background:var(--code-outer);display:flex;flex-direction:column;min-width:0}.cg-bar{display:flex;align-items:center;gap:4px;height:34px;padding:0 4px 0 10px;min-width:0}.cg-title{font-size:12px;line-height:24px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}.cg-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1}.cg-tabs::-webkit-scrollbar{display:none}.cg-tab{height:26px;padding:0 6px;border:0;border-radius:6px;background:0 0;font:500 12px/24px var(--font-ui);color:var(--text-3);white-space:nowrap}.cg-tab:hover{color:var(--text-1)}.cg-tab{position:relative}.cg-tab[aria-selected=true]{color:var(--accent-ink)}.cg-tab[aria-selected=true]::after{content:"";position:absolute;left:6px;right:6px;bottom:-4px;height:1.5px;border-radius:1px;background:var(--accent)}.cg-tools{display:flex;gap:2px;margin-left:auto;flex:none}.cg-btn{width:26px;height:26px;display:grid;place-items:center;border-radius:6px;border:0;background:0 0;color:var(--text-3)}.cg-btn:hover{color:var(--text-1);background:var(--bg-hover)}.cg-btn svg{width:15px;height:15px}.cg-btn .ok{display:none;color:var(--accent-ink)}.cg-btn.copied .cp{display:none}.cg-btn.copied .ok{display:block}.cg-body{position:relative;border-radius:14px;background:var(--code-inner);border:1px solid var(--line);min-width:0}.cg-pane[hidden]{display:none}pre{margin:0;padding:14px 16px;overflow-x:auto;font:13.5px/24px var(--font-mono);color:var(--code-text);tab-size:2;scrollbar-width:thin;scrollbar-color:var(--line-2)transparent}pre code{font:inherit;white-space:pre}pre.ln{counter-reset:ln}pre.ln .l{display:block}pre.ln .l::before{counter-increment:ln;content:counter(ln);display:inline-block;width:2.2em;margin-right:1em;text-align:right;color:var(--text-4);user-select:none}.t-k{color:var(--tok-key)}.t-s{color:var(--tok-str)}.t-n{color:var(--tok-num)}.t-c{color:var(--tok-com);font-style:italic}.t-w{color:var(--tok-kw)}.t-f{color:var(--tok-fn)}.endpoint{display:flex;align-items:center;gap:10px;margin:0 0 28px;padding:5px 5px 5px 6px;border-radius:14px;border:1px solid var(--line-2);background:var(--bg-soft);min-width:0}.endpoint .m{font:600 12px/1 var(--font-mono);padding:6px 7px;border-radius:8px;color:#fff;background:var(--post);flex:none}.endpoint .m.get{background:var(--get);color:#0c0f12}.endpoint code{flex:1;min-width:0;font-size:13.5px;color:var(--text-1);background:0 0!important;border:0!important;padding:0!important;white-space:normal;overflow-wrap:anywhere}.endpoint+.endpoint{margin-top:-18px}.params,.article .params{list-style:none;margin:0 0 12px;padding:0}.article .params li{margin:0}.param{padding:14px 0 16px;border-bottom:1px solid var(--line)}.param-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:6px}.param-name{font:500 14px/20px var(--font-mono);color:var(--accent-ink)}.chip{font:500 12px/1 var(--font-mono);padding:4px 7px;border-radius:6px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-3)}.chip.req{background:var(--req-bg);border-color:transparent;color:var(--req-text)}.chip.opt{color:var(--text-4)}.param p{margin:0;font-size:14px;line-height:22px;color:var(--text-2)}.param p+p{margin-top:6px}.pager{display:flex;justify-content:space-between;gap:16px;margin:56px 0 0;padding-top:24px;border-top:1px solid var(--line)}.pager a{display:grid;gap:2px;max-width:48%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);text-decoration:none}.pager a:hover{border-color:var(--line-2);background:var(--bg-hover)}.pager small{font-size:12px;color:var(--text-4)}.pager span{font-size:14px;line-height:20px;color:var(--text-1);font-weight:500}.pager .next{margin-left:auto;text-align:right}.ask{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:40px;padding:14px 16px 14px 18px;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft);font-size:14px;line-height:21px;color:var(--text-3)}.ask a{flex:none}.foot{border-top:1px solid var(--line);margin-top:24px}.foot-in{max-width:1472px;margin:0 auto;padding:28px 48px 36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;font-size:13px;color:var(--text-3)}.foot nav{display:flex;flex-wrap:wrap;gap:6px 22px}.foot a{color:var(--text-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.foot a:hover{color:var(--text-1);text-decoration-color:var(--text-3)}.dlg{position:fixed;inset:0;z-index:80;display:none}.dlg.open{display:block}.dlg-back{position:absolute;inset:0;background:var(--overlay)}.search-box{position:absolute;left:50%;top:54px;transform:translateX(-50%);width:min(640px,calc(100vw - 24px));max-height:min(560px,calc(100vh - 80px));display:flex;flex-direction:column;border-radius:20px;background:var(--bg-elev);border:1px solid var(--line-2);box-shadow:var(--shadow-pop);overflow:hidden}.search-input{display:flex;align-items:center;gap:10px;padding:0 16px;height:56px;border-bottom:1px solid var(--line)}.search-input svg{width:18px;height:18px;color:var(--text-3)}.search-input input{flex:1;min-width:0;height:100%;border:0;outline:0;background:0 0;font-size:16px;color:var(--text-1)}.search-input input::placeholder{color:var(--text-4)}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}.search-results{overflow-y:auto;padding:8px;flex:1}.search-results .grp{padding:10px 10px 6px;font:500 12px/1 var(--font-ui);color:var(--text-4)}.sr{display:flex;align-items:center;gap:12px;min-height:50px;padding:7px 10px;border-radius:12px;text-decoration:none;color:var(--text-2)}.sr .ico{color:var(--text-4)}.sr b{display:block;font-weight:500;font-size:14px;line-height:20px;color:var(--text-1)}.sr small{display:block;font-size:12px;line-height:17px;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr mark{background:0 0;color:var(--accent-ink)}.sr.active,.sr:hover{background:var(--bg-hover)}.sr-empty{padding:28px 12px;text-align:center;font-size:14px;color:var(--text-3)}.search-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--text-4)}.search-foot span{display:inline-flex;align-items:center;gap:6px}.drawer{position:fixed;inset:0;z-index:70;display:none}.drawer.open{display:block}.drawer-panel{position:absolute;left:0;top:0;bottom:0;width:min(332px,88vw);background:var(--bg);border-right:1px solid var(--line);overflow-y:auto;padding:16px 16px 40px;animation:slidein .18s ease-out}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.drawer .nav-link{font-size:16px;line-height:22px;min-height:40px}.drawer .nav-title{font-size:15px}.drawer-links{display:grid;gap:8px;margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.drawer-links .row{display:flex;gap:8px}.drawer-links .row .btn{flex:1;height:40px}.drawer-sections{display:grid;gap:4px}.drawer-sections a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid transparent;border-radius:10px;color:var(--text-2);text-decoration:none}.drawer-sections a:hover{background:var(--bg-hover);color:var(--text-1)}.drawer-sections a[aria-current=page]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}@keyframes slidein{from{transform:translateX(-24px);opacity:0}to{transform:none;opacity:1}}.page-wide{max-width:1280px;margin:0 auto;padding:40px 32px 72px}.int-hero{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:24px;align-items:end;margin-bottom:28px}.int-hero h1{margin:6px 0 10px;font:600 40px/44px var(--font-display);letter-spacing:-1px;color:var(--text-1);text-wrap:balance}.int-hero p{margin:0;max-width:720px;font-size:17px;line-height:27px;color:var(--text-3)}.stats{display:flex;gap:10px}.stat{min-width:108px;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg-soft)}.stat b{display:block;font:600 22px/28px var(--font-display);color:var(--text-1);font-variant-numeric:tabular-nums}.stat span{font-size:12px;line-height:16px;color:var(--text-3)}.int-tools{position:sticky;top:var(--header-height);z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;margin-bottom:16px;background:var(--bg);border-bottom:1px solid var(--line)}.field{position:relative;flex:1 1 280px;min-width:0}.field svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-4);pointer-events:none}.field input{width:100%;height:38px;padding:0 12px 0 36px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-soft);color:var(--text-1);font-size:14px;outline:0}.field input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.chips{display:flex;flex-wrap:wrap;gap:6px}.fchip{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:0 0;color:var(--text-2);font-size:13px;white-space:nowrap}.fchip:hover{border-color:var(--ring);color:var(--text-1)}.fchip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}.fchip .n{margin-left:6px;color:var(--text-4);font-variant-numeric:tabular-nums}.int-group{margin-top:36px}.int-group>header{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.int-group h2{margin:0;font:600 22px/28px var(--font-display);color:var(--text-1);letter-spacing:-.4px}.int-group header p{margin:0;font-size:14px;color:var(--text-3)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;align-items:stretch}.app{display:flex;flex-direction:column;min-width:0;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft);transition:border-color .15s ease,background-color .15s ease}.app:hover{border-color:var(--line-2)}.app:target,.app.hl{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.app-top{display:flex;gap:12px;padding:16px 16px 12px}.av{width:40px;height:40px;flex:none;border-radius:11px;display:grid;place-items:center;font:600 14px/1 var(--font-display);color:var(--text-1);background:var(--bg-hover);border:1px solid var(--line-2);letter-spacing:-.3px}.app h3{margin:0;font:600 16px/22px var(--font-display);color:var(--text-1)}.app h3 a{text-decoration:none}.app h3 a:hover{text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px}.app .kind{font-size:13px;line-height:18px;color:var(--text-3)}.fmt{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 14px}.fmt span{font:500 11.5px/1 var(--font-mono);padding:5px 7px;border-radius:6px;border:1px solid var(--line);color:var(--text-2);background:var(--bg-soft)}.fmt span.f-messages{color:var(--fm-messages)}.fmt span.f-gemini{color:var(--fm-gemini)}.fmt span.f-responses{color:var(--fm-responses)}.fmt span.f-chat{color:var(--accent-ink)}.app-desc{margin:0;padding:0 16px 14px;font-size:14px;line-height:21px;color:var(--text-2);flex:1}.app-foot{display:flex;align-items:center;gap:8px;padding:10px 12px 12px 16px;border-top:1px solid var(--line)}.app-foot .btn{height:32px;padding:0 12px;font-size:13px;border-radius:10px}.app-foot .more{margin-left:auto;font-size:13px;color:var(--text-3);text-decoration:none}.app-foot .more:hover{color:var(--text-1)}.st{font:500 11px/1 var(--font-ui);padding:4px 7px;border-radius:999px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);white-space:nowrap;align-self:flex-start}.int-sheet .sheet-panel{width:min(760px,100vw)}.int-sheet .sheet-head{align-items:center;margin-bottom:8px}.int-sheet .sheet-head h2{font:600 22px/28px var(--font-display)}.int-sheet .kind{font-size:13px;color:var(--text-3)}#int-sheet-body h4{margin:20px 0 6px;font:600 14px/20px var(--font-ui);color:var(--text-1)}#int-sheet-body p{margin:0 0 10px;font-size:14px;line-height:22px;color:var(--text-2);overflow-wrap:break-word}#int-sheet-body p code{white-space:normal;overflow-wrap:anywhere}#int-sheet-body .code-group{margin:8px 0 12px}#int-sheet-body pre{font-size:12.5px;line-height:20px}#int-sheet-body .links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}#int-sheet-body .links a{color:var(--text-1);text-decoration:none;border-bottom:1px solid var(--accent-line);font-size:14px}.sheet-warn{padding:10px 14px;border-radius:12px;border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn-text)!important}.empty{padding:48px 0;text-align:center;color:var(--text-3)}.excluded{margin-top:48px;padding:20px 22px;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft)}.excluded h2{margin:0 0 6px;font:600 18px/24px var(--font-display);color:var(--text-1)}.excluded>p{margin:0 0 8px;font-size:14px;color:var(--text-3)}.excluded .table-wrap{margin:0}.excluded table{width:100%;border-collapse:collapse;font-size:14px;line-height:21px}.excluded th{text-align:left;font-weight:500;color:var(--text-1);padding:8px 12px 8px 0;border-bottom:1px solid var(--line-2)}.excluded td{padding:9px 12px 9px 0;border-bottom:1px solid var(--line);color:var(--text-2);vertical-align:top}.excluded tr:last-child td{border-bottom:0}.excluded strong{color:var(--text-1);font-weight:500}.models-shell{display:flex;align-items:flex-start;max-width:1600px;margin:0 auto}.filters{position:sticky;top:var(--header-height);width:264px;flex:none;height:calc(100vh - var(--header-height));overflow-y:auto;padding:12px 16px 40px 24px;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line-2)transparent}.fgroup{border-bottom:1px solid var(--line)}.fgroup>button{width:100%;display:flex;align-items:center;gap:10px;height:47px;padding:12px 8px 12px 0;border:0;background:0 0;font:500 14px/20px var(--font-ui);color:var(--text-1);text-align:left}.fgroup>button .ico{color:var(--text-3)}.fgroup>button .chev{margin-left:auto;width:16px;height:16px;color:var(--text-4);transition:transform .15s ease}.fgroup[data-open=true]>button .chev{transform:rotate(180deg)}.fgroup .fbody{display:none;padding:0 0 12px}.fgroup[data-open=true] .fbody{display:block}.check{display:flex;align-items:center;gap:10px;min-height:34px;padding:0 8px 0 4px;border-radius:8px;font-size:14px;color:var(--text-2);cursor:pointer}.check:hover{background:var(--bg-hover);color:var(--text-1)}.check input{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;flex:none;border-radius:4px;border:1px solid var(--ring);background:var(--bg-soft);display:grid;place-items:center}.check input:checked{background:var(--accent);border-color:var(--accent)}.check input:checked::after{content:"";width:9px;height:5px;border-left:2px solid #0c0f12;border-bottom:2px solid #0c0f12;transform:translateY(-1px)rotate(-45deg)}.check .n{margin-left:auto;font-size:12px;color:var(--text-4);font-variant-numeric:tabular-nums}.range{padding:6px 6px 4px 4px}.range input[type=range]{width:100%;accent-color:var(--accent)}.range .ticks{display:flex;justify-content:space-between;font-size:12px;color:var(--text-4)}.range .val{font-size:13px;color:var(--text-2);margin-bottom:6px}.fhead{display:none;align-items:center;justify-content:space-between;padding:4px 0 6px}.fhead b{font:600 16px/22px var(--font-display);color:var(--text-1)}.f-actions{display:flex;gap:8px;margin-top:14px}.f-actions .reset{flex:1}.filters-back{position:fixed;inset:0;z-index:59;background:var(--overlay)}.filters-back[hidden]{display:none}.mcontent{flex:1;min-width:0;padding:24px 24px 64px}.mhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.mhead h1{margin:0;font:600 22px/28px var(--font-display);color:var(--text-1);letter-spacing:-.3px}.mhead h1 small{font:14px/1 var(--font-ui);color:var(--text-3);margin-left:8px;letter-spacing:0}.mtools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mtools .field{flex:1 1 320px}.alias-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border:1px solid var(--line-2);border-radius:10px;color:var(--text-2);font-size:14px;cursor:pointer}.alias-toggle input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.sel{height:38px;padding:0 32px 0 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-soft);color:var(--text-1);font-size:14px;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 16px)16px,calc(100% - 11px)16px;background-size:5px 5px;background-repeat:no-repeat}.sel option{background:var(--bg-elev);color:var(--text-1)}.seg{display:inline-flex;padding:3px;border-radius:10px;background:var(--bg-soft);border:1px solid var(--line)}.seg button{height:30px;padding:0 12px;border:0;border-radius:7px;background:0 0;color:var(--text-3);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.seg button[aria-pressed=true]{background:var(--bg-elev);color:var(--accent-ink);box-shadow:0 1px 2px rgba(0,0,0,.2)}.seg svg{width:14px;height:14px}.cats{display:flex;gap:2px;margin:16px 0 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.cats::-webkit-scrollbar{display:none}.cat{position:relative;display:inline-flex;align-items:center;gap:8px;height:43px;padding:0 14px;border:0;background:0 0;font:500 14px/1 var(--font-ui);color:var(--text-3);white-space:nowrap}.cat .n{color:var(--text-4);font-variant-numeric:tabular-nums}.cat:hover{color:var(--text-1)}.cat[aria-selected=true]{color:var(--accent-ink)}.cat[aria-selected=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent)}.mtable-wrap{margin-top:12px;border:1px solid var(--line);border-radius:14px;overflow-x:auto}.mtable{width:100%;min-width:880px;border-collapse:collapse;font-size:14px}.mtable th{position:sticky;top:0;z-index:1;height:46px;padding:10px 16px;text-align:left;font-weight:500;color:var(--text-3);background:var(--bg-elev);border-bottom:1px solid var(--line);white-space:nowrap}.mtable th.num,.mtable td.num{text-align:right;font-variant-numeric:tabular-nums}.mtable th button{border:0;background:0 0;padding:0;color:inherit;font:inherit;display:inline-flex;gap:6px;align-items:center}.mtable th button:hover{color:var(--text-1)}.mtable th button[data-dir]{color:var(--accent-ink)}.mtable td{height:52px;padding:8px 16px;border-bottom:1px solid var(--line);color:var(--text-2);vertical-align:middle}.mtable tr:last-child td{border-bottom:0}.mtable tbody tr{cursor:pointer}.mtable tbody tr:hover td{background:var(--bg-hover)}.mname{display:flex;align-items:center;gap:10px;min-width:0}.mav{width:24px;height:24px;flex:none;border-radius:7px;display:grid;place-items:center;font:600 10.5px/1 var(--font-display);color:var(--text-1);background:var(--bg-hover);border:1px solid var(--line-2)}.mname a{color:var(--text-1);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;font-weight:500}.mname a:hover{text-decoration-color:var(--accent)}.mid{display:block;font:12px/16px var(--font-mono);color:var(--text-4)}.alias{font:500 11px/1 var(--font-ui);padding:3px 6px;border-radius:999px;color:var(--text-3);border:1px solid var(--line-2);white-space:nowrap}.mpointer{display:block;margin-top:5px;font-size:13px;line-height:20px;color:var(--text-3);overflow-wrap:anywhere}.mcard .mname a{overflow-wrap:anywhere}.fmts{display:flex;flex-wrap:wrap;gap:4px}.mtable .fmts{flex-wrap:nowrap}.mtable td:first-child{max-width:360px}.mtable .mname a{overflow-wrap:anywhere}.fm{font:500 11px/1 var(--font-mono);padding:4px 6px;border-radius:5px;border:1px solid var(--line);color:var(--text-3);white-space:nowrap}.fm.chat{color:var(--accent-ink)}.fm.messages{color:var(--fm-messages)}.fm.gemini{color:var(--fm-gemini)}.fm.responses{color:var(--fm-responses)}.dash{color:var(--text-4)}.price-unit{display:block;font-size:12px;line-height:16px;color:var(--text-3);white-space:nowrap}.pv{color:var(--text-1)}.pu{font-size:12px;color:var(--text-4)}.mlist{display:grid;gap:8px;margin-top:12px}.mcard{padding:16px 20px;border-radius:12px;border:1px solid var(--line);background:var(--bg-soft);cursor:pointer}.mcard:hover{border-color:var(--line-2)}.mcard-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mcard-top b{font:600 16px/22px var(--font-display);color:var(--text-1)}.mcard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;font-size:13px;color:var(--text-3)}.mcard-meta>span+span{padding-left:14px;border-left:1px solid var(--line-2)}.mdesc{margin:8px 0 0;max-width:78ch;font-size:13.5px;line-height:20px;color:var(--text-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.mcard-meta .mnote code{font-size:12px}.soon{font:500 11px/1 var(--font-ui);padding:3px 6px;border-radius:999px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);white-space:nowrap}.more-row{display:flex;justify-content:center;margin-top:16px}.mcount{font-size:13px;color:var(--text-3);margin-left:auto;white-space:nowrap}.fab-filter{display:none}.sheet{position:fixed;inset:0;z-index:75;display:none}.sheet.open{display:block}.sheet-panel{position:absolute;right:0;top:0;bottom:0;width:min(720px,100vw);background:var(--bg);border-left:1px solid var(--line-2);overflow-y:auto;padding:22px 28px 48px;box-shadow:var(--shadow-pop);animation:sheetin .18s ease-out}@keyframes sheetin{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}.sheet-head{display:flex;align-items:flex-start;gap:12px}.sheet-head h2{margin:0;font:600 22px/28px var(--font-display);color:var(--text-1);letter-spacing:-.3px;overflow-wrap:anywhere}.sheet-head .icon-btn{margin-left:auto}.idline{display:flex;align-items:center;gap:8px;margin:8px 0 18px;font:13px/1 var(--font-mono);color:var(--text-2)}.idline button{height:28px;padding:0 8px;border-radius:8px;border:1px solid var(--line-2);background:0 0;color:var(--text-3);font:500 12px/1 var(--font-ui)}.idline button:hover{color:var(--text-1)}.statcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:22px}.sc{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg-soft);min-width:0}.sc small{display:block;font:500 11px/14px var(--font-ui);letter-spacing:.3px;text-transform:uppercase;color:var(--text-4);margin-bottom:4px}.sc b{display:block;font:500 15px/20px var(--font-ui);color:var(--text-1);overflow-wrap:anywhere}.sc b em{font-style:normal;font-size:12px;color:var(--text-3);font-weight:400}.sheet h3{margin:22px 0 10px;font:600 16px/22px var(--font-display);color:var(--text-1)}.sheet table{width:100%;border-collapse:collapse;font-size:13px}.sheet th{text-align:left;font-weight:500;color:var(--text-3);padding:8px 10px 8px 0;border-bottom:1px solid var(--line-2);white-space:nowrap}.sheet td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line);color:var(--text-2);vertical-align:top}.sheet td.num,.sheet th.num{text-align:right;font-variant-numeric:tabular-nums}.sheet .tw{overflow-x:auto}.sheet td code{white-space:nowrap;font-size:12px}.sheet .note-s{font-size:13px;line-height:20px;color:var(--text-3);margin:10px 0 0}.sheet .note-s code{white-space:normal}.sheet .idline+.note-s{margin:0 0 16px}.sheet .mdesc-full{margin:0 0 10px;font-size:14.5px;line-height:22px;color:var(--text-2)}.sheet .soon-note{padding:10px 12px;border-radius:10px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line)}.sheet .note-s+.statcards,.sheet .mdesc-full+.statcards{margin-top:16px}.sheet .mabout{max-width:68ch;font-size:14.5px;line-height:23px;color:var(--text-2)}.sheet .mabout>:first-child{margin-top:0}.sheet .mabout p{margin:0 0 12px}.sheet .mabout h4{margin:22px 0 8px;font:600 15px/22px var(--font-display);color:var(--text-1)}.sheet .mabout ul,.sheet .mabout ol{margin:0 0 14px;padding-left:22px}.sheet .mabout li{margin:0 0 7px;padding-left:2px}.sheet .mabout li::marker{color:var(--text-4)}.sheet .mabout ol>li::marker{font-variant-numeric:tabular-nums}.sheet .mabout strong{font-weight:600;color:var(--text-1)}.sheet .mabout code{padding:1px 5px;font-size:12.5px;white-space:normal;overflow-wrap:anywhere}.meth{margin:0 0 10px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg-soft);min-width:0}.meth header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:8px}.meth header b{font:600 14px/20px var(--font-ui);color:var(--text-1)}.meth header code{font-size:12px;color:var(--text-3);overflow-wrap:anywhere}.meth dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 16px;margin:0}.meth dt{font:500 11px/14px var(--font-ui);letter-spacing:.3px;text-transform:uppercase;color:var(--text-4)}.meth dd{margin:2px 0 0;font-size:14px;line-height:20px;color:var(--text-1);font-variant-numeric:tabular-nums}.meth dd em{font-style:normal;font-size:12px;color:var(--text-3)}@media(max-width:1279px){.toc{display:none}.main{padding-left:40px}.main .article{max-width:896px}.code-panel{display:none}.code-inline-api{display:block}.main.api .article{max-width:760px}.hdr-links{display:none}}@media(max-width:1023px){:root{--header-height:165px}.sidebar{display:none}.main{padding:24px 0 0}.shell{padding:0 20px}.hdr-row{padding:0 16px}.hdr-tabs{gap:20px}.hdr-mobile{display:flex;height:52px;gap:10px;border-top:1px solid var(--line)}.hdr-search{width:36px;padding:0;justify-content:center}.hdr-search span,.hdr-search kbd{display:none}.hdr-actions{margin-left:12px;gap:6px}.hdr-actions .btn{height:32px;padding:0 10px;font-size:13px}.page-wide{padding:24px 20px 56px}.int-hero{grid-template-columns:1fr}.filters{position:fixed;left:0;right:0;top:auto;bottom:0;z-index:60;width:auto;height:auto;max-height:78vh;border-right:0;border-top:1px solid var(--line-2);border-radius:18px 18px 0 0;background:var(--bg);box-shadow:var(--shadow-pop);transform:translateY(102%);transition:transform .2s ease;padding:8px 20px 28px}.filters.open{transform:none}.filters .sheet-grip{display:block}.fab-filter{display:inline-flex;position:fixed;right:16px;bottom:20px;z-index:65;height:40px;padding:0 16px;border-radius:999px;box-shadow:var(--shadow-pop);clip-path:none}.mcontent{padding:18px 16px 88px}.statcards{grid-template-columns:repeat(2,minmax(0,1fr))}}.f-done{display:none}@media(max-width:1023px){.f-done{display:inline-flex;flex:1;clip-path:none}.fhead{display:flex}body.filters-open .fab-filter{display:none}}.sheet-grip{display:none;width:44px;height:4px;border-radius:4px;background:var(--line-2);margin:4px auto 8px}@media(max-width:720px){#int-sheet-body pre code,.article pre.ln code{white-space:pre-wrap;overflow-wrap:anywhere}.copy-page span{display:none}.copy-page{width:32px;padding:0}.brand .brand-sub{display:none}.cards{grid-template-columns:1fr}.flow{grid-template-columns:1fr 1fr}.pager a{max-width:100%}.int-hero h1{font-size:32px;line-height:38px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.stat{min-width:0;padding:10px 12px}.int-tools{position:static}.int-group>header{flex-direction:column;gap:4px}.int-tools .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;width:100%;padding-bottom:2px}.int-tools .chips::-webkit-scrollbar{display:none}.grid{grid-template-columns:1fr}.mhead{flex-wrap:wrap}.mtools .sel{flex:1 1 140px;min-width:0}.sheet-panel{padding:18px 16px 40px}.mtable th:first-child,.mtable td:first-child{position:sticky;left:0;z-index:2;background:var(--bg);box-shadow:1px 0 0 var(--line);max-width:190px}.mtable th:first-child{background:var(--bg-elev);z-index:3}.foot-in{padding:22px 20px 30px}}@media(max-width:480px){:root{--header-height:205px}.hdr-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:88px;gap:0}.hdr-tabs .tab{height:44px;justify-content:center}.article h1{font-size:30px;line-height:36px;letter-spacing:-.75px}.page-head{align-items:flex-start}.shell{padding:0 16px}.ask{flex-direction:column;align-items:flex-start}.hdr-actions{margin-left:8px;gap:4px}.hdr-actions .btn{height:34px;padding:0 12px}.hdr-actions .hdr-signup{display:none}.hdr-actions .hdr-login{background:var(--cta-bg);color:var(--cta-fg);border-color:transparent;border-radius:10px;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}.hdr-actions .hdr-login:hover{background:var(--cta-hover)}.hdr-actions .hdr-login:focus-visible{clip-path:none}.brand svg{height:19px}.mcard{padding:14px 16px}.mdesc{-webkit-line-clamp:3;line-clamp:3}.flow{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:600px){.mcount{white-space:normal;line-height:1.5}}.app[hidden]{display:none}h1,h2{text-wrap:balance}.int-hero p{text-wrap:pretty}html[lang=fr-ca i] .int-hero p{text-wrap:balance}html[lang=nb i] .int-hero h1{text-wrap:balance}html[dir=rtl] :is(pre,code,kbd),html[dir=rtl] .cg-body{direction:ltr;unicode-bidi:isolate;text-align:left}html[dir=rtl] svg:has(>use[href="#i-arrow"]){transform:scaleX(-1)}html[dir=rtl] .cabinet-plans :is(.amt,.big,.roll,.badge,.seg){direction:ltr;unicode-bidi:isolate}html[dir=rtl] .cabinet-plans .unit{direction:rtl;unicode-bidi:isolate}html[dir=rtl] .cabinet-plans .plan>:is(.plan-cap,.amt,.price,.incl){animation:none}.steps>li{padding-left:0;padding-inline-start:44px}.steps>li::before{left:auto;inset-inline-start:0}.steps>li::after{left:auto;inset-inline-start:14px}.fchip{display:inline-flex;align-items:center;gap:6px;unicode-bidi:isolate}.fchip .n{margin-left:0;margin-inline-start:0;direction:ltr;unicode-bidi:isolate}html[dir=rtl] .fmt span,html[dir=rtl] .fm{direction:ltr;unicode-bidi:isolate}html[lang=ar i] .brand .brand-sub{font-family:var(--font-ui);letter-spacing:normal}html[lang=ja i] body{line-break:strict}html[lang=ja i] :is(h1,h2,h3,.sidebar .nav-link,.article td:first-child){word-break:auto-phrase}html[lang=ja i] .stat span{white-space:nowrap;word-break:keep-all;font-size:11px}html:is([lang=ja i],[lang=zh-hant-tw i]) :is(p,td,th){text-wrap:pretty}html:is([lang=ja i],[lang=zh-hant-tw i]) .article>.table-wrap:has(td>a[href$="/connect/openai-sdk/"]) td:first-child{min-width:110px;white-space:nowrap}.article th{vertical-align:top}.fgroup>button{height:auto;min-height:47px;text-wrap:balance}.foot-in>:first-child{text-wrap:balance}.nav-sub summary .chev{flex:none;margin-inline-start:auto;align-self:flex-start;margin-top:3px}@media(min-width:1024px){html:is([lang=nl i],[lang=nb i],[lang=da i]) .article>.table-wrap:has(td>a[href$="/connect/openai-sdk/"]) td:first-child{min-width:180px;white-space:nowrap}}html[lang=th i] .stat span{overflow-wrap:normal;word-break:normal}html[lang=nl-be i] .article>.table-wrap:has(td>a[href$="/connect/openai-sdk/"]){max-width:100%;overflow-x:auto}html[lang=nl-be i] .article>.table-wrap:has(td>a[href$="/connect/openai-sdk/"]) th:first-child,html[lang=nl-be i] .article>.table-wrap:has(td>a[href$="/connect/openai-sdk/"]) td:first-child{min-width:110px;white-space:nowrap}.article .cabinet-plans{--font:var(--font-ui);--serif:var(--font-display)}.sidebar{scroll-padding-block:40px;-webkit-mask-image:none;mask-image:none}.sidebar .nav-link{scroll-margin-block:8px}.cg-bar{height:auto;min-height:34px;padding-block:5px}.cg-title{min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:18px}.cg-tools{align-self:flex-start}.app-top{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px 12px;align-items:start}.app-top>.st{grid-column:2;max-width:100%;white-space:normal;overflow-wrap:anywhere}.app .kind,.int-group>header p{line-height:1.5}.mcard-top{align-items:flex-start}.mcard-top .fmts{align-self:flex-start}.mpointer code{padding-inline:0}.mtools{align-items:stretch}.mtools .field input,.mtools .sel{height:44px;min-height:44px}.mtools .sel{background-position:calc(100% - 16px)19px,calc(100% - 11px)19px}.mtools .alias-toggle{min-height:44px;min-width:0;padding-inline:12px;line-height:1.4}.mtools .alias-toggle input{flex:none}.filters .check{align-items:flex-start;padding-block:6px;line-height:1.3}.filters .check input{margin-top:1px}.filters .check .n{line-height:18px}@media(min-width:721px){pre{overflow-x:visible;padding-inline-end:16px}pre>code{display:block;width:100%;min-width:0;overflow-x:auto;padding-inline-end:16px;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--line-2)transparent}}@media(max-width:720px){html[dir=rtl] .int-group>header{width:100%;align-items:stretch;text-align:start}html[dir=rtl] .int-group>header>:is(h2,p){width:100%;text-align:start}.article pre code,#int-sheet-body pre code{white-space:pre-wrap;overflow-wrap:anywhere}.mcard-meta{flex-direction:column;align-items:flex-start;gap:6px}.mcard-meta>span+span{border-left:0;padding-left:0}.mtools .sel,.mtools .alias-toggle{flex:1 1 100%;width:100%}}html[dir=rtl] .article .anchor{left:auto;right:-32px}@media(max-width:1023px){.article h2{padding-inline-start:0}.article h2>.anchor{display:none}}@supports(content-visibility:auto) and (contain-intrinsic-size:auto 600px){.article>.ailoot-doc-section{content-visibility:auto;contain-intrinsic-size:auto 600px;margin-top:var(--ailoot-section-margin-start);margin-bottom:var(--ailoot-section-margin-end)}.article>.ailoot-doc-section>:first-child{margin-top:0}.article>.ailoot-doc-section>:last-child{margin-bottom:0}.article>.ailoot-doc-section[data-ailoot-section-first-list]>ul:first-child>li:first-child{margin-top:0}.article>.ailoot-doc-section[data-ailoot-section-last-list]>ul:last-child>li:last-child{margin-bottom:0}}@media print{.article>.ailoot-doc-section{content-visibility:visible;contain-intrinsic-size:none}}.mcard{min-width:0}.ailoot-locale-picker{position:relative;display:inline-block;font:inherit;color:inherit;margin-inline-start:auto;pointer-events:auto}header.top{z-index:4}.ailoot-locale-picker summary{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;list-style:none;padding:0;border:0;border-radius:0;font:inherit;line-height:1.4;inline-size:max-content;min-inline-size:0;block-size:auto;box-sizing:border-box;white-space:nowrap}.ailoot-locale-picker summary::-webkit-details-marker{display:none}.ailoot-locale-name{min-inline-size:0;flex:none;white-space:nowrap}.ailoot-locale-code{display:none}.ailoot-locale-picker summary>span[aria-hidden]{display:inline-flex;align-items:center;justify-content:center;inline-size:20px;block-size:20px;flex:0 0 20px;font-size:16px;line-height:1}.ailoot-locale-picker summary>span.ailoot-locale-code{display:none}.ailoot-locale-picker summary>span.ailoot-locale-chevron{inline-size:12px;flex-basis:12px}.ailoot-locale-chevron svg{display:block;inline-size:12px;block-size:12px}.ailoot-locale-options a>span[aria-hidden]{inline-size:20px;block-size:20px;flex:0 0 20px;font-size:16px;line-height:1}.ailoot-locale-options a>span[dir]{min-inline-size:0;overflow-wrap:anywhere}.hdr-actions:has(.ailoot-locale-picker){align-items:stretch;min-inline-size:0;max-inline-size:100%;flex-wrap:wrap}.hdr-actions:has(.ailoot-locale-picker) .btn,.hdr-actions:has(.ailoot-locale-picker) .icon-btn{height:auto;min-block-size:44px;line-height:1.2;white-space:normal}.hdr-tabs .tab>svg{inline-size:16px;block-size:16px;flex:0 0 16px}.hdr-actions .icon-btn>svg{inline-size:18px;block-size:18px;flex-shrink:0}.stats>.stat{min-inline-size:0}.stats>.stat>span{display:block;line-height:1.333333;min-block-size:2.666667em;overflow-wrap:anywhere}.ailoot-locale-options{position:absolute;inset-block-start:auto;inset-block-end:calc(100% + .4rem);inset-inline-end:0;z-index:100;inline-size:280px;max-inline-size:calc(100vw - 32px);max-block-size:min(320px,calc(100dvh - 80px));box-sizing:border-box;overflow:auto;overscroll-behavior:contain;padding:.3rem;border:1px solid #737373;border-radius:.6rem;background:#faf9f6;color:#181818;box-shadow:0 .3rem 1rem #0002}.ailoot-locale-options a{display:flex;gap:.5rem;align-items:center;padding:.55rem .65rem;text-decoration:none;color:inherit;white-space:normal}.ailoot-locale-options a:hover,.ailoot-locale-options a[aria-current]{background:#e9e7e1;border-radius:.35rem}@media(max-width:600px){html[lang=en] .offer-main{font-size:clamp(18px,5.64vw,24px);white-space:nowrap}}@media(max-width:699px){.hero,.hero .copy{min-inline-size:0}.hero .offer-scope{max-inline-size:100%;white-space:normal}html[lang=ru] .hero .offer-scope{white-space:nowrap}}@media(max-width:699px){.stats>.stat{padding-inline:8px}.hdr-top{height:auto;min-block-size:64px;flex-wrap:wrap}.hdr-tabs{height:auto;min-block-size:88px;align-items:stretch}.hdr-tabs .tab{height:auto;min-block-size:44px;min-inline-size:0;white-space:normal;overflow-wrap:anywhere;line-height:1.25;padding-block:.5rem}}@media(max-width:699px){.hdr-top{gap:4px}.hdr-top>.hdr-search{inline-size:28px;min-inline-size:28px;flex:0 0 28px}.hdr-actions:has(.ailoot-locale-picker){margin-left:0;margin-inline-start:0}.hdr-actions .ailoot-locale-picker summary{gap:4px;padding-inline:3px}.hdr-actions .ailoot-locale-picker summary>span[aria-hidden]:last-child{inline-size:12px;flex-basis:12px}.hdr-actions:has(.ailoot-locale-picker) .btn{padding-inline:10px}}footer:has(.ailoot-locale-picker),footer .foot-in:has(.ailoot-locale-picker){overflow:visible}.sprite{position:absolute;width:0;height:0;overflow:hidden}:root{--header-height:113px}@media(max-width:1023px){:root{--header-height:113px}}@media(max-width:480px){:root{--header-height:153px}}.blog .hdr-actions{margin-left:0;margin-inline-start:auto}.blog .tab[aria-current]{color:var(--text-1)}.blog .tab[aria-current]::after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:1.5px;background:var(--accent)}.pilot-strip{padding:6px 16px;text-align:center;font:500 12px/18px var(--font-ui);background:var(--warn-bg);color:var(--warn-text);border-bottom:1px solid var(--warn-line)}.blog-shell{max-width:1180px}.blog-main{padding:40px 0 0;justify-content:center;gap:64px}.blog-article{max-width:720px}.blog-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:10px;font-size:14px;line-height:22px;color:var(--text-3)}.blog-crumbs a{color:var(--accent-ink);text-decoration:none}.blog-crumbs a:hover{text-decoration:underline;text-underline-offset:3px}.blog-crumbs .ico{width:14px;height:14px;color:var(--text-4)}html[dir=rtl] .blog-crumbs .ico{transform:scaleX(-1)}.blog-article .page-head h1{overflow-wrap:break-word;min-width:0}.blog-article .lead{margin-bottom:32px}.blog-cover{margin:0 0 32px}.blog-cover img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line)}.blog-body>:first-child{margin-top:0}.blog-body img{max-width:100%;height:auto;border-radius:12px}.blog-body :not(pre)>code{white-space:normal;overflow-wrap:anywhere}.blog-body :is(ul,ol){padding-left:0;padding-inline-start:22px}.blog-body th{text-align:start;padding-right:0;padding-inline-end:12px}.blog-body td{padding-right:0;padding-inline-end:12px}.blog-body .ta-center{text-align:center}.blog-body .ta-right{text-align:end}.blog-body figure{margin:24px 0 28px}.blog-body blockquote{margin:0;padding:4px 0;padding-inline-start:18px;border-inline-start:2px solid var(--accent-line);font-size:17px;line-height:28px;color:var(--text-1)}.blog-body blockquote p{margin:0 0 12px}.blog-body blockquote p:last-child{margin-bottom:0}.blog-body figcaption{margin-top:10px;font-size:13px;line-height:20px;color:var(--text-3);overflow-wrap:anywhere}.blog-body hr{border:0;border-top:1px solid var(--line);margin:36px 0}.blog-body h2{scroll-margin-top:0}html[dir=rtl] .blog-body .anchor{left:auto;right:-32px}.blog-body pre{margin:20px 0 28px;border-radius:14px;background:var(--code-inner);border:1px solid var(--line)}.blog-body .highlight{margin:20px 0 28px}.blog-body .highlight pre{margin:0}html[dir=rtl] .blog-body pre{direction:ltr;text-align:left}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kr,.chroma .kc{color:var(--tok-kw)}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sh,.chroma .se{color:var(--tok-str)}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh{color:var(--tok-num)}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cp,.chroma .ch{color:var(--tok-com);font-style:italic}.chroma .nf,.chroma .nx,.chroma .nb,.chroma .fm{color:var(--tok-fn)}.chroma .nt,.chroma .na,.chroma .nv,.chroma .py{color:var(--tok-key)}.blog-body .aside{margin:20px 0 28px;padding:14px 18px;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft);font-size:15px;line-height:24px;overflow-wrap:break-word}.blog-body .aside>:last-child{margin-bottom:0}.blog-body .aside p{margin:0 0 10px}.blog-body .aside[data-semantic=key-takeaway]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text-1)}.blog-body .aside[data-semantic=key-takeaway]>p:first-child,.blog-body .aside[data-semantic=callout]>p:first-child:not(:last-child){margin-bottom:.375rem;font:600 .75rem/1.125rem var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink)}.blog-body .aside[data-semantic=callout]{background:var(--note-bg);border-color:var(--note-line);color:var(--note-text)}.blog-body .aside[data-semantic=callout]>p:first-child:not(:last-child){color:inherit}.blog-body .aside[data-semantic=attention-hook]{border-color:var(--warn-line);background:var(--warn-bg);color:var(--warn-text)}.blog-body .aside[data-semantic$=cta]{display:flex;justify-content:center;background:0 0;border-style:dashed}.blog-body .aside[data-semantic$=cta] a{display:inline-flex;align-items:center;height:40px;padding:0 16px;border:0!important;border-radius:10px;background:var(--cta-bg);color:var(--cta-fg)!important;font-weight:600;text-decoration:none;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}.blog-body .aside[data-semantic$=cta] a:hover{background:var(--cta-hover)}html[dir=rtl] .blog-body .aside[data-semantic$=cta] a{clip-path:polygon(0 8px,8px 0,100% 0,100% 100%,0 100%)}.toc nav ul{list-style:none;margin:0;padding:0}.toc nav li{margin:0}.toc .toc-help a{overflow-wrap:anywhere}.blog-index{width:100%;max-width:1080px;margin:0 auto;padding:48px 0 72px}.blog-index h1{margin:0;font:600 40px/46px var(--font-display);letter-spacing:-1px;color:var(--text-1)}.blog-index .lead{margin:12px 0 36px;max-width:640px}.blog-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.blog-card{height:100%;padding:20px 22px}.blog-card b{font-size:17px;line-height:25px;margin-bottom:8px;overflow-wrap:break-word}.blog-card span{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog-empty{max-width:640px}.blog-empty a{color:inherit;font-weight:600}.blog-pager{max-width:1080px}.blog-pager .next{margin-left:0;margin-inline-start:auto}.foot-tagline{margin:0}.foot-rss{display:inline-flex;align-items:center;gap:6px}.foot-rss .ico{width:14px;height:14px}@media(max-width:1279px){.blog-main{justify-content:flex-start;padding-left:0}.blog-main .article{max-width:760px;margin:0 auto}}@media(max-width:1023px){.blog-body .anchor{display:none}.blog-index{padding:32px 0 56px}}@media(max-width:760px){.blog-list{grid-template-columns:minmax(0,1fr)}.blog-index h1{font-size:32px;line-height:38px}}@media(max-width:480px){.blog-body blockquote{font-size:16px;line-height:26px}}body.blog{display:flex;flex-direction:column}body.blog>.shell,body.blog>main{flex:1 0 auto;width:100%}.blog-crumbs a{border-bottom:0!important}html[dir=rtl] .blog-body a{unicode-bidi:plaintext}html:is([lang=ar i],[lang=he i],[lang=th i],[lang=ja i],[lang=ko i],[lang|=zh i]) .blog-body .aside>p:first-child{font-family:var(--font-ui);letter-spacing:normal;text-transform:none;font-size:.8125rem}html:is([lang=he i],[lang=th i],[lang=ja i],[lang=ko i],[lang|=zh i]) .brand .brand-sub{font-family:var(--font-ui);letter-spacing:normal}:root{--font-display:var(--font-ui);--header-height:8.5rem;--blog-material:rgba(15, 17, 19, .82);--blog-menu-material:rgba(25, 29, 33, .96);--blog-surface:#15191d;--blog-shadow:0 1.5rem 4rem -.75rem rgba(0, 0, 0, .48);--text-3:#a2acb6;--tok-com:#98a59f;--blog-ease:cubic-bezier(.28, .11, .32, 1);--blog-ease-mirror:cubic-bezier(.68, 0, .72, .89);--blog-chip-material:rgba(25, 29, 33, .72);--accent-solid:color-mix(in srgb, var(--accent) 16%, #13171b)}:root[data-theme=light]{--blog-material:rgba(250, 250, 248, .84);--blog-menu-material:rgba(255, 255, 255, .97);--blog-surface:#fff;--blog-shadow:0 1.5rem 4rem -.75rem rgba(12, 15, 18, .18);--text-3:#59636d;--tok-com:#58646f;--blog-chip-material:rgba(255, 255, 255, .78);--accent-solid:color-mix(in srgb, var(--accent) 10%, #fff)}body.blog{font:1.0625rem/1.7 var(--font-ui);letter-spacing:0;font-optical-sizing:auto}html:is([lang=ar i],[lang=th i],[lang=ja i],[lang=ko i],[lang|=zh i]) body.blog{line-height:1.8}.blog .hdr{top:.75rem;width:min(70rem,calc(100% - 2rem));margin:.75rem auto 0;border:0;border-radius:1.75rem;background:var(--blog-material);-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);box-shadow:inset 0 0 0 1px var(--line-2),0 .5rem 2rem -.5rem rgba(0,0,0,.12)}.blog .hdr::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;box-shadow:0 .75rem 2.25rem -.75rem rgba(0,0,0,.42);opacity:0;transition:opacity 160ms var(--blog-ease-mirror)}.blog .hdr.hdr-over-content::before{opacity:1;transition-timing-function:var(--blog-ease)}.blog .hdr-row{padding-inline:1.25rem;max-width:none}.blog .hdr-top{height:auto;min-height:4rem;gap:.75rem;padding-block:.5rem}.blog .hdr-tabs{height:auto;min-height:3.5rem;border:0;gap:.375rem;padding-block:0 .625rem;align-items:stretch}.blog .brand{min-block-size:2.75rem;gap:.75rem}.blog .brand .brand-sub{border:0;padding:0;font:500 .875rem/1.3 var(--font-ui);letter-spacing:.01em;color:var(--text-1)}.blog .brand svg{height:1.5rem}.blog .hdr-actions{gap:.375rem;min-width:0;flex-wrap:wrap}.blog .btn{height:auto;min-block-size:2.75rem;padding:.625rem 1.125rem;border-radius:999px;font:600 .875rem/1.3 var(--font-ui);letter-spacing:.005em;clip-path:none;position:relative;isolation:isolate;transition:transform 120ms var(--blog-ease-mirror)}.blog :is(.btn,.icon-btn)::before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;pointer-events:none;background:var(--bg-hover);box-shadow:inset 0 0 0 1px var(--ring);opacity:0;transition:opacity 80ms var(--blog-ease-mirror)}.blog .btn-primary::before{background:var(--cta-hover);box-shadow:none}.blog .icon-btn::before{box-shadow:none}.blog :is(.btn,.icon-btn):hover::before{opacity:1;transition-timing-function:var(--blog-ease)}.blog .btn-ghost:hover{background:0 0;border-color:var(--line-2)}.blog .btn-primary:hover{background:var(--cta-bg)}.blog .icon-btn{inline-size:2.75rem;block-size:2.75rem;border-radius:999px;color:var(--text-1);flex:0 0 2.75rem;position:relative;isolation:isolate}.blog .icon-btn:hover{background:0 0}.blog .icon-btn svg{inline-size:1.125rem;block-size:1.125rem}.blog .tab{height:auto;min-block-size:2.75rem;padding:.625rem 1rem;border-radius:999px;font:500 .875rem/1.3 var(--font-ui);letter-spacing:.01em;color:var(--text-1)}.blog .tab[aria-current]{color:var(--accent-ink);background:var(--accent-solid)}.blog .tab[aria-current]::after{content:none}:root.js-press .blog :is(.btn,.icon-btn,.tab,.ailoot-locale-picker summary,.brand,.aside[data-semantic$=cta] a).is-pressed,:root:not(.js-press) .blog :is(.btn,.icon-btn,.tab,.ailoot-locale-picker summary,.brand,.aside[data-semantic$=cta] a):active:hover{transform:scale(.97);transition:none;opacity:.86}:root.js-press .blog :is(a.card-link,.blog-pager a).is-pressed,:root:not(.js-press) .blog :is(a.card-link,.blog-pager a):active:hover{transform:scale(.985);border-color:var(--accent);background:var(--accent-soft);transition:none}:root.js-press .blog :is(.ailoot-locale-options a,.toc a).is-pressed,:root:not(.js-press) .blog :is(.ailoot-locale-options a,.toc a):active:hover{background:var(--bg-hover);opacity:.8}:root.js-press .blog :is(.blog-crumbs a,.foot nav a).is-pressed,:root:not(.js-press) .blog :is(.blog-crumbs a,.foot nav a):active:hover{opacity:.6}.blog .is-pressed::before{opacity:0!important;transition:none!important}.blog :is(a,button,summary){-webkit-tap-highlight-color:transparent;touch-action:manipulation}.blog :is(a,button,summary):focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}.blog .blog-shell{max-width:70rem;padding-inline:2rem}.blog .blog-main{padding:3.5rem 0 0;gap:4rem;justify-content:center}.blog .blog-main .blog-article{max-width:72ch;padding-block-end:5rem}.blog .blog-crumbs{margin-block-end:1.125rem;gap:.5rem;font-size:.875rem;line-height:1.5}.blog :is(.blog-crumbs,.toc a,.toc .toc-help,.foot-in,.blog-body figcaption,.blog-cover figcaption,.blog-body th,.blog-body td,.blog-article-nav-dir,.blog-pager a){letter-spacing:.01em}.blog .blog-crumbs a{min-block-size:2rem;display:inline-flex;align-items:center}.blog .page-head{display:block}.blog .blog-article h1{font:600 clamp(2.25rem,4.6vw,3.25rem)/1.08 var(--font-display);letter-spacing:-.022em;text-wrap:balance;overflow-wrap:anywhere}.blog .copy-page{margin-block:1.25rem .25rem;font-size:.875rem;width:auto;padding-inline:1rem}.blog .copy-page span{display:inline}.blog .lead{margin:1.25rem 0 2.5rem;font-size:1.25rem;line-height:1.55;letter-spacing:0;color:var(--text-2)}.blog .blog-cover{margin-block:0 2.5rem}.blog .blog-cover img{border:0;border-radius:1.75rem}.blog .blog-body h2{margin-block:3.5rem 1.25rem;font-size:1.875rem;line-height:1.25;letter-spacing:-.015em}.blog .blog-body h3{margin-block:2.5rem 1rem;font-size:1.375rem;line-height:1.35;letter-spacing:-.01em}.blog .blog-body h4{margin-block:2rem 1rem;font-size:1.125rem;line-height:1.45;letter-spacing:0}.blog .blog-body p{margin-block:0 1.375rem}.blog .blog-body li{margin-block:.5rem}.blog .blog-body :is(ul,ol){padding-inline-start:1.5rem;margin-block-end:1.75rem}.blog .blog-body blockquote{padding-inline-start:1.25rem;margin-block:1.75rem;font-size:1.125rem;line-height:1.7}.blog .blog-body blockquote p:last-child{margin-bottom:0}.blog .blog-body figure{margin-block:2rem}.blog :is(.blog-body,.blog-cover) figcaption{font-size:.875rem;line-height:1.6;color:var(--text-3);margin-top:.75rem}.blog .blog-body hr{margin-block:3rem}.blog .blog-body pre{padding:1.25rem 1.5rem;font-size:.875rem;line-height:1.75;border-radius:1.25rem}.blog .blog-body .highlight{margin-block:1.75rem 2rem}.blog .blog-body pre code{font-size:inherit}.blog .blog-body :not(pre)>code{padding:.125em .35em}.blog .blog-body :is(th,td){padding-block:.75rem;font-size:.9375rem;line-height:1.6}.blog .blog-body .aside{margin-block:1.75rem;padding:1.25rem 1.5rem;border-radius:1.25rem;font-size:1rem;line-height:1.65}.blog .blog-body .aside[data-semantic$=cta]{border:0;background:var(--blog-surface);padding-block:1.5rem}.blog .blog-body .aside[data-semantic$=cta] a{height:auto;min-block-size:2.75rem;padding:.75rem 1.5rem;border-radius:999px;clip-path:none;white-space:normal;text-align:center}.blog .toc{width:13rem;top:calc(var(--header-height) + 1.5rem);max-height:calc(100dvh - var(--header-height) - 3rem)}.blog .toc-title{color:var(--text-2);font-size:.875rem;font-weight:500;letter-spacing:.01em;margin-bottom:.75rem}.blog .toc a{font-size:.875rem;line-height:1.5;padding-block:.5rem;border-radius:.375rem}.blog .toc li ul{padding-inline-start:.875rem}.blog .toc .toc-help a{font-size:.875rem}.blog .blog-index{padding-block:4rem 6rem;max-width:70rem}.blog .blog-index h1{font:600 clamp(2.5rem,6vw,4.75rem)/1.06 var(--font-display);letter-spacing:-.022em;text-wrap:balance;overflow-wrap:anywhere}.blog .blog-index .lead{max-width:45rem;margin-block:1.5rem 3rem;font-size:1.3125rem}.blog .blog-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.blog .blog-card{padding:2rem;border-radius:1.5rem;border:1px solid var(--line);background:var(--blog-surface)}.blog :is(.blog-card,.blog-article-nav-link,.blog-pager a){position:relative;isolation:isolate;transition:transform 120ms var(--blog-ease-mirror)}.blog :is(.blog-card,.blog-article-nav-link,.blog-pager a)::before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;pointer-events:none;background:var(--bg-elev);box-shadow:inset 0 0 0 1px var(--accent-line);opacity:0;transition:opacity 120ms var(--blog-ease-mirror)}.blog :is(.blog-card,.blog-article-nav-link,.blog-pager a):hover::before{opacity:1;transition-timing-function:var(--blog-ease)}.blog :is(.blog-card,.blog-pager a):hover{border-color:var(--line);background:var(--blog-surface)}.blog .blog-card b{display:block;font:600 1.5rem/1.3 var(--font-display);letter-spacing:-.015em;margin-bottom:1rem}.blog .blog-card span{font-size:1rem;line-height:1.65;color:var(--text-2)}.blog .blog-empty{max-width:45rem;padding:1.5rem;font-size:1rem;line-height:1.65}.blog .blog-pager .next{text-align:end}.blog .blog-pager a{display:inline-flex;align-items:center;gap:.5rem;min-block-size:2.75rem;max-width:none;padding:.625rem 1rem;border-radius:999px;background:var(--blog-surface)}.blog .blog-pager a span{font-size:.9375rem}.blog .blog-pager .prev .ico,html[dir=rtl] .blog .blog-pager .next .ico{transform:scaleX(-1)}html[dir=rtl] .blog .blog-pager .prev .ico{transform:none}.blog .foot{margin-top:0}.blog .foot-in{max-width:70rem;padding:2rem;gap:1rem 2rem;font-size:.875rem;line-height:1.6}.blog .foot-tagline{flex:1 1 100%;color:var(--text-2)}.blog .foot nav{gap:.25rem 1.25rem}.blog .foot nav a{display:inline-flex;align-items:center;min-block-size:2.75rem}.blog .ailoot-locale-picker{font-size:.875rem;line-height:1.5}.blog .ailoot-locale-picker summary{min-block-size:2.75rem;padding:.625rem .875rem;gap:.5rem;border-radius:999px;background:var(--bg-soft);color:var(--text-1);border:1px solid var(--line-2);letter-spacing:.01em}.blog .ailoot-locale-options{inline-size:17.5rem;max-inline-size:calc(100vw - 2rem);max-block-size:min(20rem,calc(100dvh - var(--header-height) - 5rem));inset-block-end:calc(100% + .625rem);padding:.375rem;border-radius:1.25rem;background:var(--blog-menu-material);color:var(--text-1);border-color:var(--line-2);-webkit-backdrop-filter:blur(28px)saturate(160%);backdrop-filter:blur(28px)saturate(160%);box-shadow:var(--blog-shadow);transform-origin:var(--apple-origin-x,100%)bottom}html[dir=rtl] .blog .ailoot-locale-options{transform-origin:var(--apple-origin-x,0)bottom}.blog .foot .ailoot-locale-options a{min-block-size:2.75rem;padding:.625rem .75rem;border-radius:.875rem;font-size:.875rem;font-weight:500;letter-spacing:.01em;color:var(--text-1);text-decoration:none}.blog .foot .ailoot-locale-options a:hover{background:var(--bg-hover);color:var(--text-1)}.blog .foot .ailoot-locale-options a[aria-current]{background:var(--accent-solid);color:var(--accent-ink)}.blog .ailoot-locale-options .ailoot-locale-fallback{margin-inline-start:auto;padding-inline-start:.5rem;font-size:.75rem;font-weight:500;color:var(--text-2);white-space:nowrap}.blog .ailoot-locale-picker[data-apple-menu] .ailoot-locale-options{opacity:var(--apple-menu-progress,1);transform:translateY(calc((1 - var(--apple-menu-progress,1)) * .5rem))scale(calc(.975 + .025 * var(--apple-menu-progress,1)))}.blog .ailoot-locale-chevron{transition:transform 120ms var(--blog-ease-mirror)}.blog .ailoot-locale-picker[open] .ailoot-locale-chevron{transform:rotate(180deg);transition-timing-function:var(--blog-ease)}html:is([lang=ar i],[lang=he i],[lang=th i],[lang=ja i],[lang=ko i],[lang|=zh i]) .blog :is(h1,h2,h3,h4,.tab,.brand-sub,.blog-card b,.ailoot-locale-picker summary,.blog-crumbs,.toc a,.toc .toc-help,.foot-in,.blog-body figcaption,.blog-cover figcaption,.blog-body th,.blog-body td,.blog-article-nav-dir,.blog-pager a,.ailoot-locale-options a){letter-spacing:normal}html:is([lang=ar i],[lang=th i],[lang=he i],[lang=ja i],[lang=ko i],[lang|=zh i]) .blog :is(h1,h2,h3){line-height:1.35}@media(max-width:1279px){.blog .blog-main .blog-article{max-width:72ch}}@media(max-width:760px){.blog .blog-shell{padding-inline:1.25rem}.blog .blog-list{grid-template-columns:minmax(0,1fr)}.blog .blog-card{padding:1.5rem;min-inline-size:0}.blog .blog-main{padding-block-start:2.5rem}.blog .blog-index{padding-block:2.5rem 4rem}.blog .blog-index .lead{font-size:1.125rem;margin-block:1.25rem 2rem}.blog .lead{font-size:1.125rem}.blog .foot-in{padding-inline:1.25rem}.blog .blog-body h2{font-size:1.625rem;margin-block-start:3rem}}@media(max-width:600px){:root{--header-height:14rem}.blog .brand .brand-sub{display:inline}.blog .blog-body pre{padding-inline:1rem}.blog .blog-body .aside{padding-inline:1.25rem}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.blog :is(.hdr,.ailoot-locale-options){background:var(--bg-elev);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-contrast:more){.blog :is(.hdr,.ailoot-locale-options,.blog-card){border:1px solid var(--text-2)}.blog{--text-3:var(--text-2);--line:var(--line-2)}.blog :is(.blog-article-nav-link,.blog-article-nav-all,.apple-toc-trigger,.blog-pager a,.code-copy){border:1px solid var(--text-2)}.blog .blog-body :is(pre,.table-wrap){border:1px solid var(--text-2)}.blog .tab[aria-current],.blog .foot .ailoot-locale-options a[aria-current]{background:var(--bg-elev);box-shadow:inset 0 0 0 1px var(--accent-ink)}}@media(prefers-reduced-motion:reduce){.blog :is(.btn,.tab,.icon-btn,.ailoot-locale-chevron){transition:none}.blog :is(.btn,.tab,.icon-btn,.ailoot-locale-picker summary,.brand,a.card-link,.blog-pager a,.aside[data-semantic$=cta] a):is(:active,.is-pressed){transform:none;opacity:.86}}@supports not (backdrop-filter:blur(1px)){.blog :is(.hdr,.ailoot-locale-options){background:var(--bg-elev)}}::view-transition-old(root),::view-transition-new(root){animation-duration:200ms;animation-timing-function:var(--blog-ease)}.blog-theme-veil{position:fixed;inset:0;z-index:2147483000;pointer-events:none;opacity:1;transition:opacity 200ms var(--blog-ease)}.blog-theme-veil.is-out{opacity:0}html[dir=rtl] .blog .blog-body .aside[data-semantic$=cta] a{clip-path:none}.blog .hdr::after{content:"";position:absolute;pointer-events:none;inset-inline:1.75rem;inset-block-start:100%;block-size:.75rem;background:linear-gradient(var(--blog-material),transparent);opacity:.22;border-radius:0 0 1rem 1rem}.blog .apple-sheet-grip{display:none}.blog .ailoot-locale-options .apple-sheet-grip{display:none}.blog .apple-panel-moving{will-change:transform,opacity}.blog .ailoot-locale-picker[data-apple-menu] .ailoot-locale-options{opacity:var(--apple-panel-opacity,1);transform:translateY(var(--apple-panel-y,0px))scale(var(--apple-panel-scale,1))scaleY(var(--apple-panel-stretch,1));transition:backdrop-filter 80ms var(--blog-ease)}.blog .ailoot-locale-options[data-apple-target=closed]{-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);transition-timing-function:var(--blog-ease-mirror)}.blog .apple-toc-trigger{display:none;position:fixed;z-index:49;inset-inline-start:1.25rem;inset-inline-end:auto;inset-block-end:1.25rem;max-inline-size:calc(100% - 2.5rem);background:var(--bg-elev);color:var(--text-1);box-shadow:var(--blog-shadow)}@media(max-width:1279px){.blog .apple-toc-trigger{display:inline-flex}.blog .toc[data-apple-sheet]{display:none;position:fixed;z-index:50;top:auto;inset-block-end:5rem;inset-inline-start:1rem;inset-inline-end:auto;inline-size:min(28rem,calc(100% - 2rem));max-block-size:min(28rem,calc(100dvh - var(--header-height) - 6rem));padding:0 1.25rem 1.25rem;border:1px solid var(--line-2);border-radius:1.5rem;background:var(--blog-menu-material);box-shadow:var(--blog-shadow);transform-origin:var(--apple-origin-x,0)bottom;-webkit-backdrop-filter:blur(28px)saturate(160%);backdrop-filter:blur(28px)saturate(160%);opacity:var(--apple-panel-opacity,1);transform:translateY(var(--apple-panel-y,0px))scale(var(--apple-panel-scale,1))scaleY(var(--apple-panel-stretch,1));transition:backdrop-filter 80ms var(--blog-ease);overscroll-behavior:contain}.blog .toc[data-apple-visible=true]{display:block}.blog .toc[data-apple-sheet] :is(.toc-title,nav a){color:var(--text-1)}.blog .toc[data-apple-sheet] nav a[aria-current]{color:var(--accent-ink)}.blog .toc[data-apple-target=closed]{-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);transition-timing-function:var(--blog-ease-mirror)}.blog .apple-sheet-grip{display:flex;position:sticky;inset-block-start:0;z-index:1;justify-content:center;align-items:center;min-block-size:2rem;margin-inline:-.75rem;background:inherit;border-radius:1rem 1rem 0 0;touch-action:none;cursor:grab}.blog .apple-sheet-grip::before{content:"";inline-size:2.25rem;block-size:.25rem;border-radius:999px;background:var(--text-3);opacity:.65}.blog .apple-sheet-grip:active{cursor:grabbing}}@media(max-width:600px){.blog .ailoot-locale-picker[data-apple-menu] .ailoot-locale-options{transform:translateY(var(--apple-panel-y,0px))scale(var(--apple-panel-scale,1))scaleY(var(--apple-panel-stretch,1))}.blog .ailoot-locale-options .apple-sheet-grip{display:flex;margin-inline:0}}@media(prefers-reduced-motion:reduce){.blog .ailoot-locale-picker[data-apple-menu] .ailoot-locale-options,.blog .toc[data-apple-sheet]{transform:translateY(var(--apple-panel-y,0px));transition:none}.blog-theme-veil{transition:opacity 200ms linear!important}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.blog .toc[data-apple-sheet],.blog .ailoot-locale-picker[data-apple-menu] .ailoot-locale-options{background:var(--bg-elev);-webkit-backdrop-filter:none!important;backdrop-filter:none!important;transition:none}}@media(prefers-contrast:more){.blog .toc[data-apple-sheet]{border-color:var(--text-2)}}.blog .blog-code{position:relative}html[dir=rtl] .blog .blog-code{direction:ltr;text-align:left}.blog .blog-body .blog-code>pre{padding-block-start:3.5rem}.blog .blog-code-lang{position:absolute;inset-block-start:.375rem;inset-inline-start:1.5rem;pointer-events:none;font:500 .8125rem/2.75rem var(--font-mono);letter-spacing:.01em;color:var(--text-2)}.blog .code-copy{position:absolute;z-index:1;inset-block-start:.375rem;inset-inline-end:.375rem;inline-size:2.75rem;min-inline-size:2.75rem;block-size:2.75rem;min-block-size:2.75rem;padding:0;justify-content:center;color:var(--text-1);background:var(--blog-chip-material);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(10px)saturate(140%);backdrop-filter:blur(10px)saturate(140%)}.blog .code-copy .ico{inline-size:1rem;block-size:1rem;flex:none}.blog .code-copy[data-state=copied]{color:var(--accent-ink);border-color:var(--accent-line)}.blog .code-copy[data-state=error]{color:var(--req-text);border-color:var(--req-text)}.blog .code-copy-status{position:absolute;inset-block-start:.375rem;inset-inline-end:3.625rem;pointer-events:none;white-space:nowrap;font:500 .8125rem/2.75rem var(--font-ui);letter-spacing:.01em;color:var(--text-1);opacity:0;transform:translateX(.5rem)scale(.96);transform-origin:right center;transition:opacity 160ms var(--blog-ease-mirror),transform 160ms var(--blog-ease-mirror)}.blog .blog-code[data-state] .code-copy-status{opacity:1;transform:none;transition-timing-function:var(--blog-ease)}.blog .blog-code[data-state=copied] .code-copy-status{color:var(--accent-ink)}.blog .blog-code[data-state=error] .code-copy-status{color:var(--req-text)}@media(prefers-reduced-motion:reduce){.blog .code-copy-status{transform:none!important;transition:opacity 120ms linear!important}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.blog .code-copy{background:var(--bg-elev);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-width:600px){.blog .blog-code-lang{inset-inline-start:1rem}}.blog .blog-article-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-block:3.5rem 0;padding-block-start:2rem;border-block-start:1px solid var(--line)}.blog .blog-article-nav-link{display:flex;flex-direction:column;gap:.5rem;min-inline-size:0;padding:1.25rem 1.5rem;border:1px solid var(--line);border-radius:1.5rem;background:var(--blog-surface);color:var(--text-1);text-decoration:none}.blog .blog-article-nav-link.next{grid-column:2;align-items:flex-end;text-align:end}.blog .blog-article-nav-dir{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;line-height:1.4;letter-spacing:.01em;color:var(--text-2)}.blog .blog-article-nav-dir .ico{inline-size:1rem;block-size:1rem}.blog .blog-article-nav-link.prev .ico{transform:scaleX(-1)}html[dir=rtl] .blog .blog-article-nav-link.prev .ico{transform:none}html[dir=rtl] .blog .blog-article-nav-link.next .ico{transform:scaleX(-1)}.blog .blog-article-nav-link b{display:block;margin:0;font:600 1.125rem/1.35 var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere}html:is([lang=ar i],[lang=he i],[lang=th i],[lang=ja i],[lang=ko i],[lang|=zh i]) .blog .blog-article-nav-link b{letter-spacing:normal}.blog .blog-article-nav-all{grid-column:1/-1;justify-self:center}@media(max-width:760px){.blog .blog-article-nav{grid-template-columns:minmax(0,1fr)}.blog .blog-article-nav-link.next{grid-column:auto}}html[lang=ko i] :is(.blog-body,.blog-card,.blog-article h1,.lead,.toc,.blog-index h1){word-break:keep-all;overflow-wrap:break-word}html[lang=ja i] .blog .blog-card span{overflow-wrap:anywhere}html:is([lang=ja i],[lang|=zh i]) .blog .blog-body :is(td,th){min-width:6em}html:is([lang=ja i],[lang|=zh i]) .blog .blog-body :is(td,th) code{overflow-wrap:normal;word-break:keep-all}.blog-body .aside[data-semantic=key-takeaway]~.aside[data-semantic=key-takeaway]{background:0 0;border:0;border-radius:0;border-inline-start:2px solid var(--accent-line);padding-block:.125rem;padding-inline:1rem 0;color:var(--text-2)}.blog-body .aside[data-semantic=key-takeaway]~.aside[data-semantic=key-takeaway]>p:first-child{margin-bottom:.25rem;font-size:.6875rem;line-height:1rem;color:var(--text-3)}.blog-article .blog-date{margin:-1.25rem 0 1.75rem;font-size:.8125rem;line-height:1.25rem;color:var(--text-3)}.blog .blog-body :is(td,th) code{font-size:.78125rem}.blog .hdr-compact-bar{display:none}@media(max-width:600px),(max-height:500px){.blog .hdr{transition:transform 280ms var(--blog-ease-mirror)}.blog .hdr>.hdr-row{transition:opacity 160ms var(--blog-ease-mirror),visibility 0s}.blog .hdr-compact-bar{display:flex;position:absolute;inset-inline:0;inset-block-end:0;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .875rem .5rem 1.25rem;opacity:0;visibility:hidden;transition:opacity 120ms var(--blog-ease-mirror),visibility 0s 120ms}.blog .hdr-compact-bar .brand{flex:none;min-block-size:2.75rem}.blog .hdr-compact-bar .brand .brand-sub{display:inline}.blog .hdr-compact-actions{display:flex;min-inline-size:0}.blog .hdr-compact-bar .btn{white-space:nowrap;padding-inline:1rem}.blog .hdr.hdr-compact{transform:translateY(calc(-1 * var(--hdr-compact-shift,0px)));transition-timing-function:var(--blog-ease)}.blog .hdr.hdr-compact>.hdr-row{opacity:0;visibility:hidden;transition:opacity 120ms var(--blog-ease),visibility 0s 120ms}.blog .hdr.hdr-compact .hdr-compact-bar{opacity:1;visibility:visible;transition:opacity 160ms var(--blog-ease)60ms,visibility 0s}}.blog .hdr-top>.theme-toggle{display:none}@media(max-width:600px){.blog .hdr{--hdr-gap:.5rem;--hdr-inset:.625rem;--hdr-type:.875rem;--hdr-pad:.75rem;border-radius:calc(1.375rem + var(--hdr-inset))}.blog .hdr-row{padding-inline:var(--hdr-inset)}.blog .hdr-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--hdr-gap);align-items:center;min-height:0;padding-block:var(--hdr-inset)0}.blog .hdr-top>.brand{grid-area:1/1/2/-1;justify-self:start;min-inline-size:0;max-inline-size:calc(100% - 2.75rem - var(--hdr-gap))}.blog .hdr-top>.theme-toggle{display:inline-grid;grid-area:1/1/2/-1;justify-self:end;border:1px solid var(--line-2)}.blog .hdr-actions{display:contents}.blog .hdr-actions .theme-toggle{display:none}.blog :is(.hdr-actions .btn,.hdr-tabs .tab,.hdr-compact-bar .btn){display:grid;grid-template-columns:minmax(0,1fr);align-content:center;min-inline-size:0;min-block-size:2.75rem;margin:0;padding:.5rem var(--hdr-pad);border:1px solid transparent;border-radius:999px;clip-path:none;font-size:var(--hdr-type);line-height:1.3;text-align:center;text-wrap:balance;white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:manual}.blog .hdr-actions .btn{align-self:stretch}.blog .hdr-actions .hdr-login{grid-area:2/1;background:0 0;color:var(--text-1);border-color:var(--line-2)}.blog .hdr-actions .hdr-signup{grid-area:2/2}.blog .hdr-actions .hdr-cabinet{grid-area:2/1/3/-1}:root[data-session=in] .blog .hdr .auth-out{display:none}:root:not([data-session=in]) .blog .hdr .auth-in{display:none}.blog .hdr-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--hdr-gap);min-height:0;padding-block:var(--hdr-gap)var(--hdr-inset)}.blog .hdr-tabs .tab:not([aria-current]){background:var(--bg-hover)}.blog .hdr-tabs .tab>svg{display:none}.blog .hdr-compact-bar{display:grid;grid-template-columns:minmax(max-content,1fr)minmax(0,1fr);gap:var(--hdr-gap);align-items:center;padding-block:.5rem;padding-inline:var(--hdr-inset)}.blog .hdr-compact-bar .brand{justify-self:start}.blog .hdr-compact-actions{display:grid;grid-column:2}}@media(max-width:340px){.blog .hdr{--hdr-type:.8125rem;--hdr-pad:.5rem}}@media(max-width:300px){.blog .hdr{width:calc(100% - 1rem);--hdr-inset:.5rem;--hdr-type:.75rem;--hdr-pad:.375rem}.blog .hdr .brand .brand-sub{font-size:var(--hdr-type)}}@media(max-width:600px) and (prefers-contrast:more){.blog :is(.hdr-actions .hdr-login,.hdr-top>.theme-toggle,.hdr-tabs .tab:not([aria-current])){border-color:var(--text-2)}}.blog .toc a[aria-current]{color:var(--accent-ink);font-weight:500}