.page-module__bkK2cG__container{flex-direction:column;width:100%;max-width:1200px;min-height:100vh;margin:0 auto;display:flex}.page-module__bkK2cG__main{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.page-module__bkK2cG__main h1{color:var(--text-color);letter-spacing:-.03em;margin-bottom:20px;font-size:3.2rem;font-weight:700}.page-module__bkK2cG__description{color:var(--text-muted);max-width:480px;margin-bottom:44px;font-size:.95rem;font-weight:300;line-height:1.7}.page-module__bkK2cG__buttons{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.page-module__bkK2cG__button{background-color:var(--surface-container);color:var(--text-color);border-radius:var(--shape-full);transition:transform var(--dur-default) var(--ease-spatial), background-color var(--dur-fast) var(--ease-effects), box-shadow var(--dur-default) var(--ease-spatial);-webkit-tap-highlight-color:transparent;border:1px solid #0000;align-items:center;gap:12px;padding:15px 30px;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}@media (hover:hover) and (pointer:fine){.page-module__bkK2cG__button:hover{background-color:var(--primary-container);box-shadow:0 10px 30px -8px color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-3px)scale(1.03)}}.page-module__bkK2cG__button:active{background-color:var(--primary-container);transition-duration:var(--dur-fast);transform:scale(.97)}.page-module__bkK2cG__button i{font-size:1.05rem}.page-module__bkK2cG__footer{text-align:center;border-top:1px solid var(--border-color);width:100vw;margin-left:calc(50% - 50vw);padding:30px}.page-module__bkK2cG__footer #animated-text{color:var(--text-muted);letter-spacing:1px;font-size:1rem;font-weight:400}@media (max-width:768px){.page-module__bkK2cG__main h1{font-size:2.4rem}.page-module__bkK2cG__buttons{flex-direction:column;gap:14px;width:100%;max-width:300px}.page-module__bkK2cG__button{justify-content:center}}@media (max-width:480px){.page-module__bkK2cG__main{padding:30px 20px}.page-module__bkK2cG__main h1{font-size:2rem}}

.page-module__iRtBbG__container{flex-direction:column;width:100%;min-height:100vh;padding:60px 40px 40px;display:flex}.page-module__iRtBbG__langSwitch{gap:2px;margin-bottom:32px;display:flex}.page-module__iRtBbG__langSwitch button{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;padding:8px 20px;font-family:JetBrains Mono,monospace;font-size:.85rem;transition:color .2s,border-color .2s,background .2s}.page-module__iRtBbG__langSwitch button:first-child{border-radius:6px 0 0 6px}.page-module__iRtBbG__langSwitch button:last-child{border-radius:0 6px 6px 0}.page-module__iRtBbG__langSwitch button.page-module__iRtBbG__active{color:var(--text-color);border-color:var(--border-color);background:var(--btn-bg)}.page-module__iRtBbG__langSwitch button:not(.page-module__iRtBbG__active):hover{color:var(--text-muted);border-color:var(--text-muted)}.page-module__iRtBbG__main{flex:1;gap:48px;width:100%;max-width:1200px;margin:0 auto;display:flex}.page-module__iRtBbG__body{flex:1;min-width:0;max-width:780px}.page-module__iRtBbG__body h1{color:var(--text-color);letter-spacing:-.02em;margin-bottom:12px;font-size:1.9rem;font-weight:700}.page-module__iRtBbG__intro{color:var(--text-muted);border-bottom:1px solid var(--border-color);margin-bottom:44px;padding-bottom:32px;font-size:.9rem;font-weight:300;line-height:1.75}.page-module__iRtBbG__section{margin-bottom:44px}.page-module__iRtBbG__sectionHead{align-items:center;gap:14px;margin-bottom:20px;display:flex}.page-module__iRtBbG__sectionNumber{border-radius:var(--shape-sm);background:var(--primary-container);width:34px;height:34px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.page-module__iRtBbG__sectionFile{color:var(--text-color);letter-spacing:-.01em;align-items:center;gap:10px;scroll-margin-top:100px;font-family:JetBrains Mono,monospace;font-size:1.2rem;font-weight:700;line-height:1;display:flex}.page-module__iRtBbG__sectionPlain{color:var(--text-color);letter-spacing:-.01em;margin-bottom:20px;scroll-margin-top:100px;font-size:1.3rem;font-weight:700}.page-module__iRtBbG__subsection{margin:32px 0 28px}.page-module__iRtBbG__subsection h3{color:var(--primary);text-transform:uppercase;letter-spacing:1.6px;margin:0 0 14px;scroll-margin-top:100px;font-size:.75rem;font-weight:600}.page-module__iRtBbG__p{color:var(--text-color);margin-bottom:14px;font-size:.875rem;font-weight:300;line-height:1.75}.page-module__iRtBbG__p:last-child{margin-bottom:0}.page-module__iRtBbG__field{border-left:2px solid var(--border-color);margin-bottom:16px;padding-left:16px}.page-module__iRtBbG__field:last-child{margin-bottom:0}.page-module__iRtBbG__fieldName{color:var(--primary);font-size:.85rem;font-weight:600}.page-module__iRtBbG__fieldDesc{color:var(--text-color);margin-top:4px;font-size:.875rem;font-weight:300;line-height:1.75}.page-module__iRtBbG__body strong{font-weight:700}.page-module__iRtBbG__body em{color:var(--text-muted);font-style:italic}.page-module__iRtBbG__body code{background:var(--surface-container);border:1px solid var(--outline);border-radius:var(--shape-xs);color:var(--primary);white-space:nowrap;padding:1px 7px;font-size:.85em}.page-module__iRtBbG__body a{color:var(--primary);text-underline-offset:2px;text-decoration:underline}@media (hover:hover) and (pointer:fine){.page-module__iRtBbG__body a:hover{color:var(--text-color)}}.page-module__iRtBbG__body ul{margin:8px 0 8px 20px}.page-module__iRtBbG__body li{color:var(--text-color);margin-bottom:8px;font-size:.875rem;font-weight:300;line-height:1.7}.page-module__iRtBbG__note{background:var(--surface-container);border:1px solid var(--outline);border-radius:var(--shape-md);gap:12px;margin:20px 0;padding:14px 18px;display:flex}.page-module__iRtBbG__note i{color:var(--primary);flex-shrink:0;margin-top:2px;font-size:.85rem}.page-module__iRtBbG__note p{color:var(--text-color);margin:0;font-size:.85rem;font-weight:300;line-height:1.7}.page-module__iRtBbG__codeBlock{background:var(--surface);border:1px solid var(--outline);border-radius:var(--shape-md);margin:18px 0;overflow:hidden}.page-module__iRtBbG__codeHeader{background:var(--surface-container);border-bottom:1px solid var(--outline);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.page-module__iRtBbG__codeLang{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.2px;font-size:.7rem;font-weight:600}.page-module__iRtBbG__copyBtn{color:var(--text-muted);cursor:pointer;border-radius:var(--shape-xs);transition:color var(--dur-fast) var(--ease-effects), background var(--dur-fast) var(--ease-effects);-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:6px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:.7rem;display:flex}@media (hover:hover) and (pointer:fine){.page-module__iRtBbG__copyBtn:hover{color:var(--text-color);background:var(--surface-container-high)}}.page-module__iRtBbG__copyBtn i{font-size:.72rem}.page-module__iRtBbG__codeBlock pre{scrollbar-width:thin;scrollbar-color:var(--outline) transparent;margin:0;padding:16px 18px;overflow-x:auto}.page-module__iRtBbG__codeBlock pre::-webkit-scrollbar{height:6px}.page-module__iRtBbG__codeBlock pre::-webkit-scrollbar-track{background:0 0}.page-module__iRtBbG__codeBlock pre::-webkit-scrollbar-thumb{background:var(--outline);border-radius:var(--shape-xs)}.page-module__iRtBbG__codeBlock code{color:var(--text-color);white-space:pre;background:0 0;border:none;padding:0;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.65}.page-module__iRtBbG__tokKey{color:var(--primary)}.page-module__iRtBbG__tokStr{color:var(--secondary)}.page-module__iRtBbG__tokNum,.page-module__iRtBbG__tokBool{color:var(--tertiary)}.page-module__iRtBbG__tokPunct{color:var(--text-muted)}.page-module__iRtBbG__tokComment{color:var(--text-muted);font-style:italic}.page-module__iRtBbG__toc{display:none}.page-module__iRtBbG__tocLabel{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.6px;white-space:nowrap;margin-bottom:14px;font-size:.7rem;font-weight:600}.page-module__iRtBbG__tocList{flex-direction:column;gap:9px;display:flex}.page-module__iRtBbG__tocLink{color:var(--text-muted);transition:color var(--dur-fast) var(--ease-effects);align-items:baseline;gap:6px;font-size:.8rem;font-weight:300;line-height:1.4;text-decoration:none;display:flex}.page-module__iRtBbG__tocLinkNumber{flex-shrink:0}.page-module__iRtBbG__tocLinkText{overflow-wrap:break-word}@media (hover:hover) and (pointer:fine){.page-module__iRtBbG__tocLink:hover{color:var(--text-color)}}.page-module__iRtBbG__tocLinkSub{padding-left:14px}.page-module__iRtBbG__footer{border-top:1px solid var(--border-color);text-align:center;width:calc(100% + 80px);margin-top:60px;margin-left:-40px;padding-top:40px;padding-bottom:30px}.page-module__iRtBbG__footer #animated-text{color:var(--text-muted);letter-spacing:1px;font-size:.85rem}@media (min-width:961px){.page-module__iRtBbG__toc{border-left:1px solid var(--border-color);flex-direction:column;flex:auto;align-self:flex-start;width:200px;min-width:200px;max-width:280px;max-height:calc(100vh - 128px);padding-left:24px;display:flex;position:sticky;top:108px;overflow-y:auto}}@media (max-width:600px){.page-module__iRtBbG__container{padding:40px 16px 32px}.page-module__iRtBbG__body h1{font-size:1.4rem}.page-module__iRtBbG__sectionFile{font-size:1rem}.page-module__iRtBbG__sectionPlain{font-size:1.1rem}.page-module__iRtBbG__codeBlock code{font-size:.76rem}.page-module__iRtBbG__body code{white-space:normal;overflow-wrap:break-word}.page-module__iRtBbG__footer{width:calc(100% + 32px);margin-left:-16px}}

.page-module__OkxA3G__container{flex-direction:column;width:100%;min-height:100vh;padding:60px 40px 40px;display:flex}.page-module__OkxA3G__header{margin-bottom:48px}.page-module__OkxA3G__langSwitch{gap:2px;margin-bottom:32px;display:flex}.page-module__OkxA3G__langSwitch button{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;padding:8px 20px;font-family:JetBrains Mono,monospace;font-size:.85rem;transition:color .2s,border-color .2s,background .2s}.page-module__OkxA3G__langSwitch button:first-child{border-radius:6px 0 0 6px}.page-module__OkxA3G__langSwitch button:last-child{border-radius:0 6px 6px 0}.page-module__OkxA3G__langSwitch button.page-module__OkxA3G__active{color:var(--text-color);border-color:var(--border-color);background:var(--btn-bg)}.page-module__OkxA3G__langSwitch button:not(.page-module__OkxA3G__active):hover{color:var(--text-muted);border-color:var(--text-muted)}.page-module__OkxA3G__main{flex:1}.page-module__OkxA3G__mdBody h1{color:var(--text-color);letter-spacing:-.02em;margin-bottom:36px;font-size:1.9rem;font-weight:700}.page-module__OkxA3G__mdBody h2{color:var(--primary);text-transform:uppercase;letter-spacing:2px;margin:40px 0 16px;font-size:.75rem;font-weight:600}.page-module__OkxA3G__mdBody .page-module__OkxA3G__item{color:var(--text-color);margin-bottom:10px;padding-left:0;font-size:.875rem;font-weight:300}.page-module__OkxA3G__mdBody strong{font-weight:700}.page-module__OkxA3G__mdBody em{font-style:italic}.page-module__OkxA3G__mdBody code{background:var(--surface-container);border:1px solid var(--outline);border-radius:var(--shape-xs);color:var(--primary);padding:1px 7px;font-size:.88em}.page-module__OkxA3G__mdBody ul{margin:8px 0 8px 20px}.page-module__OkxA3G__mdBody li{color:var(--text-color);margin-bottom:8px;font-size:.875rem;font-weight:300}.page-module__OkxA3G__footer{border-top:1px solid var(--border-color);text-align:center;width:100vw;margin-top:60px;margin-left:calc(50% - 50vw);padding-top:40px;padding-bottom:30px}.page-module__OkxA3G__footer #animated-text{color:var(--text-muted);letter-spacing:1px;font-size:.85rem}@media (max-width:600px){.page-module__OkxA3G__container{padding:40px 16px 32px}.page-module__OkxA3G__mdBody h1{font-size:1.3rem}}


.page-module__iRtBbG__tokKey{color:var(--primary)}
.page-module__iRtBbG__tokStr{color:var(--secondary)}
.page-module__iRtBbG__tokNum,.page-module__iRtBbG__tokBool{color:var(--tertiary)}
.page-module__iRtBbG__tokPunct{color:var(--text-muted)}
.page-module__iRtBbG__tokComment{color:var(--text-muted);font-style:italic;opacity:.75}


/* ---- cho: docs page tweaks (scroll offsets under the floating top bar, token colours) ---- */
.page-module__iRtBbG__section,.page-module__iRtBbG__subsection,.page-module__iRtBbG__exampleCard{scroll-margin-top:96px}
.page-module__iRtBbG__container{padding-top:96px}
@media (max-width:540px){.page-module__iRtBbG__container{padding-top:84px}}
.page-module__bkK2cG__container{padding-top:96px}
.page-module__OkxA3G__container{padding-top:96px}
.page-module__iRtBbG__tocLink.tocActive{color:var(--primary)}
.page-module__iRtBbG__tocLink.tocActive .page-module__iRtBbG__tocLinkNumber{color:var(--tertiary)}
.page-module__iRtBbG__mdBody h3,.page-module__iRtBbG__subsection h3{scroll-margin-top:96px}
.page-module__iRtBbG__body h1{scroll-margin-top:96px}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.page-module__bkK2cG__button{transition:transform .5s var(--ease-jelly,cubic-bezier(.34,1.72,.48,.96)),background-color var(--dur-fast) var(--ease-effects),box-shadow .5s var(--ease-jelly,cubic-bezier(.34,1.72,.48,.96))}
