@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/noto-sans-thai-v29-thai.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/noto-sans-thai-v29-latin.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-v20-latin-400.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-v20-latin-500.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-v20-latin-600.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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-v38-latin-600.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:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/fraunces-v38-latin-600-italic.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:Pixelify Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pixelify-sans-v3-latin-400.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--pink:#ff5c8a;--pink-soft:#ffc2d4;--pink-deep:#c2185b;--pink-hover:#ac1552;--pink-wash:#fff0f5;--violet:#a855f7;--violet-deep:#7c3aed;--violet-wash:#f5f3ff;--peach:#f97e52;--peach-deep:#c2410c;--peach-wash:#fff7ed;--on-accent:#fff;--bg:#f8f5f9;--surface:#fff;--bg-subtle:#fbf8fb;--bg-secondary:#f6eff5;--bg-tertiary:#efe3ec;--bg-code:#f7f0f5;--glass:#fff9;--glass-strong:#fffc;--glass-line:#6e3c5f1a;--glass-highlight:inset 0 1px 0 #ffffffe6;--text:#22161e;--text-secondary:#4b3a45;--text-muted:#6b5664;--text-faint:#a8949f;--border:#6e3c5f1c;--border-strong:#6e3c5f33;--success:#047857;--success-bg:#ecfdf5;--warn:#c2410c;--warn-bg:#fff7ed;--danger:#e11d48;--danger-bg:#fff1f2;--info:#7c5cf0;--info-bg:#f5f3ff;--shadow-xs:0 1px 2px #3c19320a;--shadow-sm:0 1px 2px #3c19320a, 0 4px 14px -6px #5a284b1f;--shadow-md:0 2px 4px #3c19320a, 0 12px 28px -12px #5a284b33;--shadow-lg:0 4px 10px #3c19320a, 0 24px 56px -20px #5a284b42;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:22px;--r-2xl:28px;--r-full:999px;--sidebar-w:268px;--sidebar-gap:12px;--toc-w:216px;--content-w:768px;--pagefind-ui-primary:var(--pink-deep);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--bg-subtle);--pagefind-ui-border:var(--border);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:8px;--pagefind-ui-font:inherit;--pagefind-ui-scale:.75!important}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--pink:#ff7ba3;--pink-soft:#ffb3cb;--pink-deep:#ff4d80;--pink-hover:#ff9ab8;--pink-wash:#2a1a24;--violet:#c084fc;--violet-deep:var(--violet);--violet-wash:#251c3f;--peach:#fb9b6e;--peach-deep:var(--peach);--peach-wash:#33220c;--on-accent:#2a0d18;--bg:#110d15;--surface:#1d1722;--bg-subtle:#16111b;--bg-secondary:#1f1824;--bg-tertiary:#2a2030;--bg-code:#221a27;--glass:#241b2b80;--glass-strong:#1e1724c7;--glass-line:#ffffff14;--glass-highlight:inset 0 1px 0 #ffffff0f;--text:#f5edf2;--text-secondary:#d2c2cc;--text-muted:#a3909c;--text-faint:#75646f;--border:#ffffff14;--border-strong:#ffffff26;--success:#34d399;--success-bg:#0c2620;--warn:#fbbf24;--warn-bg:#2a1c08;--danger:#fb7185;--danger-bg:#2c1018;--info:#a78bfa;--info-bg:#1d1633;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 2px #0000004d, 0 6px 16px -8px #00000080;--shadow-md:0 2px 4px #0000004d, 0 14px 30px -12px #0009;--shadow-lg:0 4px 10px #0000004d, 0 26px 60px -20px #000000b3}:root,[data-tone=pink]{--tone:var(--pink);--tone-text:var(--pink-deep);--tone-wash:var(--pink-wash);--tone-grad:linear-gradient(135deg, var(--pink), var(--pink-deep));--tone-glow:#ff5c8a66}[data-tone=violet]{--tone:var(--violet);--tone-text:var(--violet-deep);--tone-wash:var(--violet-wash);--tone-grad:linear-gradient(135deg, var(--violet), #7c3aed);--tone-glow:#a855f759}[data-tone=peach]{--tone:var(--peach);--tone-text:var(--peach-deep);--tone-wash:var(--peach-wash);--tone-grad:linear-gradient(135deg, #ea580c, var(--peach-deep));--tone-glow:#f97e5259}[data-theme=dark],[data-theme=dark] [data-tone=pink]{--tone-glow:#ff7ba34d}[data-theme=dark] [data-tone=violet]{--tone-glow:#c084fc47}[data-theme=dark] [data-tone=peach]{--tone-glow:#fb9b6e47;--tone-grad:linear-gradient(135deg, var(--peach), #ea580c)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5rem;font-family:Noto Sans Thai,Leelawadee UI,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.75}html.theme-switching,html.theme-switching *{transition:none!important}body{background-color:var(--bg);color:var(--text);-webkit-tap-highlight-color:#ff5c8a24;transition:background-color .25s,color .25s;overflow-x:clip}::selection{background:var(--pink-soft);color:var(--pink-deep)}[data-theme=dark] ::selection{background:var(--pink-deep);color:var(--on-accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--pink)}::-webkit-scrollbar-button{display:none}#sidebar::-webkit-scrollbar{width:10px}#toc::-webkit-scrollbar{width:10px}#sidebar::-webkit-scrollbar-thumb{background-clip:padding-box;border:3px solid #0000}#toc::-webkit-scrollbar-thumb{background-clip:padding-box;border:3px solid #0000}#sidebar::-webkit-scrollbar-track{margin:var(--r-xl) 0}#toc::-webkit-scrollbar-track{margin:var(--r-lg) 0}@supports ((-moz-appearance:none)){#sidebar,#toc{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}}:focus-visible{outline:2px solid var(--pink);outline-offset:2px}.skip-link{z-index:500;color:var(--on-accent);background:var(--pink-deep);border-radius:var(--r-sm);box-shadow:var(--shadow-md);padding:.55rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:transform .15s;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{text-decoration:none;transform:translateY(0)}main:focus{outline:none}.bg-orbs{--orb-bleed:max(12vmax, 180px);inset:calc(-1 * var(--orb-bleed));z-index:0;pointer-events:none;contain:strict;will-change:transform;animation:40s ease-in-out infinite alternate orb-drift;position:fixed;overflow:hidden}.bg-orbs span{border-radius:50%;position:absolute}.bg-orbs span:first-child{width:980px;height:980px;top:calc(var(--orb-bleed) - 380px);left:calc(var(--orb-bleed) - 300px);filter:blur(70px);opacity:.65;background:radial-gradient(circle,#ffc4d8,#ffdfea 48%,#0000 72%)}.bg-orbs span:nth-child(2){width:820px;height:820px;bottom:calc(var(--orb-bleed) - 340px);right:calc(var(--orb-bleed) - 220px);filter:blur(78px);opacity:.6;background:radial-gradient(circle,#ffcfb6,#ffe5d6 50%,#0000 72%)}.bg-orbs span:nth-child(3){width:760px;height:760px;top:calc(var(--orb-bleed) - 260px);right:calc(var(--orb-bleed) - 160px);filter:blur(84px);opacity:.7;background:radial-gradient(circle,#dccbff,#ebe1ff 50%,#0000 72%)}[data-theme=dark] .bg-orbs span:first-child{opacity:.17;background:radial-gradient(circle,#ff5c8a,#0000 72%)}[data-theme=dark] .bg-orbs span:nth-child(2){opacity:.11;background:radial-gradient(circle,#fb9b6e,#0000 72%)}[data-theme=dark] .bg-orbs span:nth-child(3){opacity:.17;background:radial-gradient(circle,#a855f7,#0000 72%)}@keyframes orb-drift{0%{transform:translate(0,0)rotate(0)scale(1)}50%{transform:translate(70px,36px)rotate(5deg)scale(1.07)}to{transform:translate(-40px,60px)rotate(-4deg)scale(1.03)}}.bg-pearls{z-index:0;pointer-events:none;contain:strict;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.bg-pearls:before{content:"";background-image:radial-gradient(#6e3c5f21 1px,#0000 1.5px);background-size:26px 26px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(75% 60% at 62% 0,#000 15%,#0000 72%);mask-image:radial-gradient(75% 60% at 62% 0,#000 15%,#0000 72%)}[data-theme=dark] .bg-pearls:before{background-image:radial-gradient(#ffffff12 1px,#0000 1.5px)}.bg-pearls span{left:var(--x);bottom:calc(-1 * var(--s));width:var(--s);height:var(--s);background:radial-gradient(circle at 32% 28%, #fffffff2, #fff0 30%), radial-gradient(circle at 50% 55%, var(--tone) 0%, var(--tone) 38%, transparent 72%);opacity:0;animation:pearl-rise var(--d) ease-in-out var(--delay) infinite;will-change:transform, opacity;border-radius:50%;position:absolute}[data-theme=dark] .bg-pearls span{background:radial-gradient(circle at 32% 28%, #ffffff8c, #fff0 30%), radial-gradient(circle at 50% 55%, var(--tone) 0%, var(--tone) 38%, transparent 72%)}@keyframes pearl-rise{0%{opacity:0;transform:translate(0,0)}10%{opacity:var(--o)}25%{transform:translate3d(var(--sway), -32vh, 0)}50%{transform:translateY(-64vh)}75%{transform:translate3d(calc(var(--sway) * -1), -96vh, 0)}88%{opacity:var(--o)}to{opacity:0;transform:translateY(-128vh)}}@media (max-width:768px){.bg-pearls span:nth-child(n+9){display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bg-orbs{will-change:auto;animation:none}.bg-pearls span{display:none}}#read-progress{transform-origin:0;will-change:transform;z-index:400;background:linear-gradient(90deg, var(--pink-soft), var(--pink), var(--pink-deep));pointer-events:none;width:100%;height:2px;transition:transform .1s linear;position:fixed;top:0;left:0;transform:scaleX(0)}.layout{z-index:1;isolation:isolate;min-height:100vh;display:flex;position:relative}#sidebar{width:var(--sidebar-w);top:var(--sidebar-gap);left:var(--sidebar-gap);height:calc(100vh - 2 * var(--sidebar-gap));height:calc(100dvh - 2 * var(--sidebar-gap));overscroll-behavior:contain;z-index:100;background:var(--glass-strong);-webkit-backdrop-filter:blur(14px)saturate(1.5);border:1px solid var(--glass-line);border-radius:var(--r-xl);box-shadow:var(--glass-highlight), var(--shadow-lg);flex-direction:column;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;overflow-y:auto}#sidebar.collapsed{transform:translateX(calc(-100% - 2 * var(--sidebar-gap) - 12px))}.sidebar-header{z-index:2;background:linear-gradient(var(--glass-strong), var(--glass-strong)), var(--bg-subtle);border-radius:var(--r-xl) var(--r-xl) 0 0;justify-content:space-between;align-items:center;gap:.5rem;padding:.9rem .9rem .75rem 1rem;display:flex;position:sticky;top:0}.logo{min-width:0;color:var(--text);letter-spacing:-.01em;align-items:center;gap:.625rem;font-size:.9rem;font-weight:600;text-decoration:none;display:flex}.logo:hover{text-decoration:none}.logo-icon{object-fit:contain;flex-shrink:0;width:34px;height:34px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.logo:hover .logo-icon{transform:scale(1.08)rotate(-6deg)}.logo-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.logo-text .accent{color:var(--pink-deep);font-family:Fraunces,Noto Sans Thai,serif;font-style:italic}[data-theme=dark] .logo-text .accent{color:var(--pink)}#theme-toggle{cursor:pointer;width:34px;height:34px;color:var(--text-muted);background:var(--glass);border:1px solid var(--border);border-radius:var(--r-full);box-shadow:var(--glass-highlight);flex-shrink:0;place-items:center;transition:color .15s,border-color .15s,background .15s;display:grid}#theme-toggle:hover{color:var(--pink-deep);border-color:var(--border-strong);background:var(--glass-strong)}.icon-sun{display:block}.icon-moon,[data-theme=dark] .icon-sun{display:none}[data-theme=dark] .icon-moon{display:block}.search-wrap{flex-shrink:0;min-height:50px;padding:.25rem .75rem .75rem}#search .pagefind-ui__search-input{box-shadow:var(--glass-highlight);background:var(--glass)!important;border-color:var(--border)!important;border-radius:var(--r-full)!important;height:34px!important;padding:0 34px!important;font-size:.8rem!important;font-weight:400!important}#search .pagefind-ui__form:before{opacity:.5;width:14px!important;height:14px!important;top:10px!important;left:11px!important}#search .pagefind-ui__search-clear{height:34px!important;padding:0 10px!important;font-size:.72rem!important;top:0!important}#search mark{color:var(--pink-deep)!important;background:0 0!important;font-weight:600!important}.search-dev{color:var(--text-muted);background:var(--glass);border:1px dashed var(--border-strong);border-radius:var(--r-full);padding:.45rem .85rem;font-size:.72rem}#sidebar nav{flex:1;padding:.25rem .625rem 1.5rem}.nav-group{margin-bottom:.25rem}.nav-group>summary{cursor:pointer;border-radius:var(--r-sm);color:var(--text-muted);letter-spacing:.02em;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .625rem;font-size:.74rem;font-weight:600;list-style:none;transition:background .15s,color .15s;display:flex}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary:hover{background:var(--glass);color:var(--text)}.nav-chevron{color:var(--text-faint);flex-shrink:0;transition:transform .2s}.nav-group[open]>summary>.nav-chevron{transform:rotate(90deg)}.nav-count{color:var(--text-faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.66rem;font-weight:500}.nav-group[open]>summary .nav-count{opacity:0}.nav-group ul{margin:.125rem 0 .375rem;padding-left:.4rem;list-style:none}#sidebar nav a{color:var(--text-secondary);border-radius:var(--r-sm);align-items:center;gap:.55rem;margin-bottom:1px;padding:.38rem .7rem;font-size:.84rem;font-weight:400;line-height:1.5;text-decoration:none;transition:color .12s,background .12s;display:flex}#sidebar nav a:before{content:"";background:var(--tone);opacity:.35;border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:opacity .12s,transform .12s}#sidebar nav a:hover{color:var(--text);background:var(--glass);text-decoration:none}#sidebar nav a:hover:before{opacity:.8}#sidebar nav a.active{color:var(--tone-text);background:var(--tone-wash);box-shadow:var(--glass-highlight), 0 1px 3px #3c19320f;font-weight:600}#sidebar nav a.active:before{opacity:1;transform:scale(1.25)}main{margin-left:calc(var(--sidebar-w) + var(--sidebar-gap));flex:1;min-width:0}body.sidebar-collapsed main{margin-left:0}.page{max-width:calc(var(--content-w) + var(--toc-w) + 2.5rem);align-items:flex-start;gap:2.5rem;margin:0 auto;padding:1.75rem 2.25rem 4rem;display:flex}article{min-width:0;max-width:var(--content-w);flex:1;animation:.3s both fade-up}.page-wide{max-width:1120px}.page-wide article{max-width:none}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}body.navigated article{animation:none}@media (prefers-reduced-motion:reduce){article{animation:none}#read-progress{transition:none}}.breadcrumb{width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--text-muted);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-full);box-shadow:var(--glass-highlight);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:1.25rem;padding:.28rem .9rem;font-size:.78rem;display:flex}.breadcrumb a{color:var(--text-muted);text-decoration:none;transition:color .12s}.breadcrumb a:hover{color:var(--pink-deep);text-decoration:none}.breadcrumb svg{color:var(--text-faint);flex-shrink:0}.breadcrumb .current{color:var(--text-secondary);font-weight:500}#toc{width:var(--toc-w);overscroll-behavior:contain;background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-lg);max-height:calc(100vh - 3.5rem);box-shadow:var(--glass-highlight), var(--shadow-xs);flex-shrink:0;padding:.9rem .6rem .9rem .4rem;font-size:.78rem;position:sticky;top:1.75rem;overflow-y:auto}#toc:empty{display:none}.toc-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.625rem;padding-left:.75rem;font-size:.68rem;font-weight:600;display:block}#toc ul{margin:0;padding:0;list-style:none}#toc a{color:var(--text-muted);border-left:2px solid var(--border);padding:.28rem .75rem;font-weight:400;line-height:1.5;text-decoration:none;transition:color .12s,border-color .12s;display:block}#toc a:hover{color:var(--text);text-decoration:none}#toc a.active{color:var(--pink-deep);border-left-color:var(--pink);font-weight:600}[data-theme=dark] #toc a.active{color:var(--pink)}#toc .toc-h3{padding-left:1.5rem;font-size:.74rem}h1{letter-spacing:-.02em;color:var(--text);margin-bottom:1.25rem;font-size:2rem;font-weight:700;line-height:1.4}h2{letter-spacing:-.01em;color:var(--text);border-top:1px solid var(--border);margin:2.75rem 0 1rem;padding-top:1.75rem;font-size:1.3rem;font-weight:700;line-height:1.5}h3{color:var(--pink-deep);margin:1.75rem 0 .5rem;font-size:1.02rem;font-weight:600;line-height:1.6}[data-theme=dark] h3{color:var(--pink)}h4{color:var(--text-secondary);margin:1.25rem 0 .4rem;font-size:.92rem;font-weight:600}p{color:var(--text-secondary);margin-bottom:1rem}p:last-child{margin-bottom:0}a{color:var(--pink-deep);font-weight:500;text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}:where([data-theme=dark]) a{color:var(--pink)}ul,ol{color:var(--text-secondary);margin-bottom:1rem;padding-left:1.35rem}li{margin-bottom:.35rem}li::marker{color:var(--pink)}strong{color:var(--text);font-weight:600}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.table-wrap{overscroll-behavior-x:contain;border:1px solid var(--glass-line);border-radius:var(--r-lg);background:var(--glass-strong);box-shadow:var(--glass-highlight), var(--shadow-sm);margin:1.25rem 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}table:has(tr>:nth-child(3)){min-width:400px}thead th{text-align:left;background:var(--glass);color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:.7rem .95rem;font-size:.74rem;font-weight:600}tbody td{border-bottom:1px solid var(--border);vertical-align:top;color:var(--text-secondary);padding:.65rem .95rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--bg-subtle)}.inline-icon{vertical-align:-.18em;width:1.05em;height:1.05em;margin-right:.35em}.mc-item{width:24px;height:24px;image-rendering:pixelated;vertical-align:middle;margin-right:4px}.callout{color:var(--text-secondary);background:var(--glass-strong);border:1px solid var(--glass-line);border-left:3px solid var(--pink);border-radius:var(--r-md);box-shadow:var(--glass-highlight);margin:1.25rem 0;padding:.9rem 1.1rem .9rem 1.2rem;font-size:.88rem;line-height:1.7;position:relative}.callout p{color:inherit}.callout ul{margin:0;padding-left:1.25rem}.callout>:last-child{margin-bottom:0}.callout.warn{background:var(--warn-bg);border-color:var(--border);border-left-color:var(--warn)}.callout.info{background:var(--info-bg);border-color:var(--border);border-left-color:var(--info)}.callout.success{background:var(--success-bg);border-color:var(--border);border-left-color:var(--success)}code{color:var(--pink-deep);background:var(--bg-code);border:1px solid var(--border);border-radius:var(--r-xs);overflow-wrap:anywhere;padding:.15em .4em;font-family:IBM Plex Mono,JetBrains Mono,Consolas,monospace;font-size:.84em}.table-wrap code{white-space:nowrap}[data-theme=dark] code{color:var(--pink)}.copy-btn{cursor:pointer;color:var(--on-accent);background:var(--pink-deep);border-radius:var(--r-full);border:none;flex-shrink:0;align-items:center;gap:.35rem;padding:.45rem .8rem;font-family:inherit;font-size:.78rem;font-weight:600;transition:background .15s;display:inline-flex}.copy-btn:hover{background:var(--pink-hover)}.copy-btn.copied{background:var(--success)}pre{background:var(--bg-code);border:1px solid var(--border);border-radius:var(--r-md);margin:1.25rem 0;padding:1rem;overflow-x:auto}pre code{white-space:pre;background:0 0;border:none;padding:0}.stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin:1.25rem 0;display:grid}.stat{text-align:center;background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-lg);box-shadow:var(--glass-highlight), var(--shadow-xs);padding:.95rem 1rem;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s}.stat:hover{background:var(--glass-strong);border-color:var(--border-strong);box-shadow:var(--glass-highlight), var(--shadow-sm);transform:translateY(-1px)}.stat-val{letter-spacing:-.02em;color:var(--pink-deep);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700;line-height:1.4;display:block}[data-theme=dark] .stat-val{color:var(--pink)}.stat-val.small{font-size:1.25rem}.stat-label{color:var(--text-muted);margin-top:.15rem;font-size:.72rem;font-weight:400;display:block}.val-green-hi{color:#15803d;font-weight:600}.val-green{color:#16a34a;font-weight:500}.val-green-lo{color:#22c55e;font-weight:500}.val-yellow{color:#a16207;font-weight:500}.val-orange{color:#b45309;font-weight:500}.val-red{color:#dc2626;font-weight:500}[data-theme=dark] .val-green-hi{color:#4ade80}[data-theme=dark] .val-green{color:#86efac}[data-theme=dark] .val-green-lo{color:#bbf7d0}[data-theme=dark] .val-yellow{color:#fbbf24}[data-theme=dark] .val-orange{color:#fb923c}[data-theme=dark] .val-red{color:#f87171}.card-grid{grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:.9rem;margin:1.25rem 0 2rem;display:grid}.card{color:var(--text);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-xl);box-shadow:var(--glass-highlight), var(--shadow-xs);padding:1.15rem 1.15rem 1.2rem;font-weight:400;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:block;position:relative}.card:hover{background:var(--glass-strong);border-color:var(--tone);box-shadow:var(--glass-highlight), 0 18px 36px -16px var(--tone-glow), var(--shadow-md);text-decoration:none;transform:translateY(-3px)}.card-top{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.card-arrow{color:var(--text-faint);opacity:0;transition:opacity .16s,transform .16s,color .16s;transform:translate(-4px,4px)}.card:hover .card-arrow{opacity:1;color:var(--tone);transform:translate(0)}.card-icon{width:40px;height:40px;color:var(--tone);background:var(--tone-wash);border-radius:var(--r-md);box-shadow:var(--glass-highlight);place-items:center;margin-bottom:.75rem;transition:color .18s,background .18s;display:grid}.card-top .card-icon{margin-bottom:0}.card:hover .card-icon{color:var(--on-accent);background:var(--tone-grad)}.card-title{letter-spacing:-.01em;color:var(--text);margin-bottom:.3rem;font-size:.92rem;font-weight:600}.card-desc{color:var(--text-muted);font-size:.79rem;line-height:1.6}.page-nav{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:3.5rem;padding-top:1.75rem;display:grid}.page-nav .next:only-child{grid-column:2}.page-nav a{color:var(--text);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-lg);box-shadow:var(--glass-highlight);align-items:center;gap:.75rem;padding:.875rem 1rem;font-weight:400;line-height:1.5;text-decoration:none;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.page-nav a:hover{background:var(--glass-strong);border-color:var(--pink);box-shadow:var(--glass-highlight), var(--shadow-sm);text-decoration:none}.page-nav a.next{text-align:right;justify-content:flex-end}.page-nav svg{color:var(--pink);flex-shrink:0}.page-nav .pn-label{color:var(--text-muted);font-size:.7rem;display:block}.page-nav .pn-title{font-size:.86rem;font-weight:600;display:block}#sidebar-toggle{top:calc(var(--sidebar-gap) + .4rem);left:calc(var(--sidebar-gap) + .4rem);z-index:200;cursor:pointer;width:38px;height:38px;color:var(--text-secondary);background:var(--glass-strong);-webkit-backdrop-filter:blur(12px)saturate(1.4);border:1px solid var(--glass-line);border-radius:var(--r-full);box-shadow:var(--glass-highlight), var(--shadow-sm);place-items:center;transition:transform .28s cubic-bezier(.4,0,.2,1),color .15s,border-color .15s;display:grid;position:fixed}#sidebar-toggle:hover{color:var(--pink-deep);border-color:var(--border-strong)}body:not(.sidebar-collapsed) #sidebar-toggle{transform:translateX(calc(var(--sidebar-w) + var(--sidebar-gap)))}@media (max-width:1180px){#toc{display:none}.page{max-width:var(--content-w);gap:0}}@media (max-width:768px){html{font-size:15.5px}:root{--sidebar-gap:10px}#sidebar{transform:translateX(calc(-100% - 2 * var(--sidebar-gap) - 12px))}#sidebar.open{transform:translate(0)}main{margin-left:0}.page{padding:4rem 1rem 3rem}body:not(.sidebar-collapsed) #sidebar-toggle{transform:none}body #sidebar-toggle[aria-expanded=true]{transform:translateX(calc(var(--sidebar-w) + var(--sidebar-gap)))}body.drawer-open{overflow:hidden}h1{font-size:1.65rem}h2{margin-top:2.25rem;padding-top:1.5rem;font-size:1.18rem}.card-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}@media (max-width:480px){.page-nav{grid-template-columns:1fr}.page-nav .next:only-child{grid-column:auto}}@media print{#sidebar,#sidebar-toggle,#toc,#read-progress,.bg-orbs,.bg-pearls,.skip-link,.breadcrumb,.page-nav{display:none!important}main,body.sidebar-collapsed main{margin-left:0}.page{max-width:none;padding:0;display:block}article{max-width:none;animation:none}.table-wrap{box-shadow:none;overflow:visible}.callout,.card,.stat{box-shadow:none}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
