html:has(.public-root){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0a0d14}body:has(.public-root){color:#eef1f7;background:#0a0d14}html[data-theme=light]:has(.public-root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f6f7f3}html[data-theme=light] body:has(.public-root){color:#0f1117;background:#f6f7f3}@media (prefers-reduced-motion:no-preference){html:has(.public-root):not(.lenis){scroll-behavior:smooth}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.public-root{--ink-950:#05070b;--ink-900:#0a0d14;--ink-800:#10151f;--ink-700:#171e2b;--ink-600:#222b3c;--fg:#eef1f7;--fg-muted:#a3adc0;--fg-faint:#7a859c;--accent:#c6ff4d;--accent-bright:#e2ff8f;--accent-dim:#c6ff4d24;--on-accent:#0a0d14;--warm:#ff7a45;--warm-dim:#ff7a4529;--cool:#4860aa;--accent-text:var(--accent);--accent-text-hover:var(--accent-bright);--accent-line:#c6ff4d59;--warm-text:#ffb08a;--line:#ffffff14;--line-strong:#ffffff2e;--surface:#ffffff08;--surface-hover:#ffffff0f;--glass:#0a0d14b8;--shadow-lg:0 30px 80px #00000073;--glow-accent:0 0 0 1px #c6ff4d40, 0 20px 60px #c6ff4d1f;--gradient-accent:linear-gradient(90deg, var(--accent), var(--warm));--grad-text:linear-gradient(100deg, var(--accent) 0%, var(--accent-bright) 40%, var(--warm) 100%);--hero-wash:radial-gradient(55% 45% at 22% 32%, #c6ff4d33, transparent 65%), radial-gradient(45% 45% at 78% 70%, #ff7a452e, transparent 65%), radial-gradient(50% 50% at 60% 20%, #4860aa47, transparent 70%);--footer-wash:linear-gradient(to bottom, transparent, #0000004d);--glare:#ffffff38;--grain-opacity:.06;--grain-blend:overlay;--code-bg:var(--ink-950);--code-fg:var(--fg);--code-inline-bg:var(--surface-hover);--code-inline-fg:var(--accent-bright);--cover-fg:#eef1f7eb;--cover-shadow:0 20px 60px #0006;--aurora-blend:lighter;--aurora-1:198 255 77 / .5;--aurora-2:255 122 69 / .42;--aurora-3:72 96 170 / .55;--aurora-4:198 255 77 / .28;--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.22, 1, .36, 1);--dur-fast:.2s;--dur:.5s;--dur-slow:.9s;--font-display:var(--font-space-grotesk), "Space Grotesk", var(--font-kanit), "Kanit", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-body:var(--font-inter), "Inter", var(--font-noto-sans-thai), "Noto Sans Thai", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, var(--font-noto-sans-thai), "Noto Sans Thai", monospace;--container:1200px;--gutter:clamp(20px, 5vw, 64px);--header-h:72px;--radius-xl:24px;--color-primary:var(--accent);--color-primary-hover:var(--accent-bright);--color-bg:var(--ink-900);--color-bg-subtle:var(--ink-800);--color-text:var(--fg);--color-text-muted:var(--fg-muted);--color-border:var(--line);--font-sans:var(--font-body);background:var(--ink-900);min-height:100dvh;color:var(--fg);font-family:var(--font-body);text-rendering:optimizelegibility;flex-direction:column;font-size:1rem;line-height:1.6;display:flex;position:relative;overflow-x:clip}html[data-theme=light] .public-root{--ink-950:#fff;--ink-900:#f6f7f3;--ink-800:#edeee9;--ink-700:#e2e4dd;--ink-600:#d3d6cd;--fg:#0f1117;--fg-muted:#4a5263;--fg-faint:#5d6575;--accent:#bff23d;--accent-bright:#d6ff6b;--accent-dim:#78b40024;--warm:#c43f0c;--warm-dim:#c43f0c1f;--cool:#8092e8;--accent-text:#4a7000;--accent-text-hover:#3a5a00;--accent-line:#4a700059;--warm-text:#b83a0a;--line:#0f111717;--line-strong:#0f111733;--surface:#fff9;--surface-hover:#fffffff2;--glass:#f6f7f3bd;--shadow-lg:0 30px 80px #0f111724;--glow-accent:0 0 0 1px #4a700047, 0 20px 60px #78b40038;--gradient-accent:linear-gradient(90deg, #5e8c00, #c43f0c);--grad-text:linear-gradient(100deg, #3f6b00 0%, #5e8c00 45%, #c43f0c 100%);--hero-wash:radial-gradient(55% 45% at 22% 32%, #b2e84861, transparent 65%), radial-gradient(45% 45% at 78% 70%, #ffb08257, transparent 65%), radial-gradient(50% 50% at 60% 20%, #a0b0f05c, transparent 70%);--footer-wash:linear-gradient(to bottom, transparent, #0f11170a);--glare:#bff23d66;--grain-opacity:.035;--grain-blend:multiply;--code-bg:#10151f;--code-fg:#eef1f7;--code-inline-bg:#0f11170f;--code-inline-fg:#3a5a00;--cover-fg:#0f1117d1;--cover-shadow:0 20px 60px #0f11171f;--aurora-blend:multiply;--aurora-1:178 232 72 / .55;--aurora-2:255 176 130 / .5;--aurora-3:160 176 240 / .55;--aurora-4:205 240 120 / .38}html[data-theme=light] [data-island-theme=dark],html[data-theme=dark] [data-island-theme=light]{visibility:hidden}@media (prefers-reduced-motion:no-preference){html[data-theme-switching]:has(.public-root){transition:background-color .2s,color .2s}html[data-theme-switching] body:has(.public-root){transition:background-color .2s,color .2s}html[data-theme-switching] .public-root,html[data-theme-switching] .public-root *,html[data-theme-switching] .public-root :before,html[data-theme-switching] .public-root :after{transition-property:background-color,color,border-color,box-shadow,fill,stroke;transition-duration:var(--dur-fast);transition-timing-function:ease}}.public-root ::selection{background:var(--accent);color:var(--on-accent)}.public-root :focus-visible{outline:2px solid var(--accent-text);outline-offset:3px;border-radius:4px}:where(.public-root a){color:var(--accent-text);text-decoration:none}:where(.public-root a:hover){color:var(--accent-text-hover);text-decoration:none}:where(.public-root) :where(h1,h2,h3,h4){font-family:var(--font-display);letter-spacing:-.02em;color:var(--fg);margin:0;font-weight:700;line-height:1}:where(.public-root p){margin:0}html[lang=th] .public-root{line-height:1.75}html[lang=th] .public-root :where(h1){letter-spacing:0;line-height:1.15}html[lang=th] .public-root :where(h2,h3,h4),html[lang=th] .pub-h2{letter-spacing:0;line-height:1.25}html[lang=th] .pub-eyebrow{letter-spacing:.08em}html[lang=th] .pub-lead{line-height:1.8}html[lang=th] .pub-prose{line-height:1.9}.pub-container{width:min(100% - 2 * var(--gutter), var(--container));margin-inline:auto}.pub-section{padding-block:clamp(80px,12vw,160px);position:relative}.pub-section--tight{padding-block:clamp(56px,8vw,104px)}.pub-main{flex-direction:column;flex:1 0 auto;display:flex}.pub-skip{z-index:10001;background:var(--accent);color:var(--on-accent);transition:transform var(--dur-fast);border-radius:999px;padding:10px 16px;font-weight:600;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.pub-skip:focus-visible{color:var(--on-accent);transform:translateY(0)}.pub-section-head{gap:20px;margin-bottom:clamp(40px,6vw,72px);display:grid}@media (min-width:900px){.pub-section-head--split{grid-template-columns:1fr auto;align-items:end}}.pub-eyebrow{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-text);align-items:center;gap:12px;font-size:.75rem;display:inline-flex}.pub-eyebrow:before{content:"";background:currentColor;width:28px;height:1px}.pub-h2{text-wrap:balance;font-size:clamp(2.25rem,5.5vw,4.25rem);line-height:.98}.pub-lead{max-width:62ch;color:var(--fg-muted);text-wrap:pretty;font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.65}.pub-grad-text{background:var(--grad-text);color:#0000;-webkit-background-clip:text;background-clip:text}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pub-chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--fg-muted);white-space:nowrap;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;line-height:1.2;display:inline-flex}.pub-chip--accent{border-color:var(--accent-line);background:var(--accent-dim);color:var(--accent-text)}.pub-chip--warm{border-color:color-mix(in srgb, var(--warm) 40%, transparent);background:var(--warm-dim);color:var(--warm-text)}.pub-btn{isolation:isolate;font-family:var(--font-body);letter-spacing:.01em;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), box-shadow var(--dur) var(--ease-soft);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:15px 28px;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex;position:relative;overflow:hidden}.pub-btn,.pub-btn:hover{text-decoration:none}.pub-btn--primary{background:var(--accent);color:var(--on-accent)}.pub-btn--primary:after{content:"";z-index:-1;transition:transform .9s var(--ease-expo);background:linear-gradient(115deg,#0000 30%,#fff9 50%,#0000 70%);position:absolute;inset:0;transform:translate(-130%)}.pub-btn--primary:hover,.pub-btn--primary:focus-visible{color:var(--on-accent);box-shadow:var(--glow-accent)}.pub-btn--primary:hover:after{transform:translate(130%)}.pub-btn--ghost{color:var(--fg);border-color:var(--line-strong);background:0 0}.pub-btn--ghost:hover,.pub-btn--ghost:focus-visible{color:var(--accent-text);border-color:var(--accent-text)}.pub-btn--sm{padding:11px 20px;font-size:.875rem}.pub-btn__arrow{transition:transform var(--dur-fast) var(--ease-soft);display:inline-block}.pub-btn:hover .pub-btn__arrow{transform:translate(4px)}.pub-link{color:var(--fg);align-items:center;gap:8px;font-weight:500;display:inline-flex;position:relative}.pub-link:after{content:"";background:var(--accent-text);transform-origin:100%;height:1px;transition:transform var(--dur) var(--ease-expo);position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.pub-link:hover{color:var(--accent-text)}.pub-link:hover:after{transform-origin:0;transform:scaleX(1)}.pub-prose{color:var(--fg-muted);text-wrap:pretty;font-size:1.0625rem;line-height:1.75}.pub-prose>*+*{margin-top:1.1em}.pub-prose h1,.pub-prose h2,.pub-prose h3,.pub-prose h4{letter-spacing:-.02em;margin-top:2em;line-height:1.15}.pub-prose>:first-child{margin-top:0}.pub-prose h1{font-size:clamp(1.75rem,3vw,2.5rem)}.pub-prose h2{font-size:clamp(1.5rem,2.4vw,2rem)}.pub-prose h3{font-size:1.3rem}.pub-prose h4{font-size:1.1rem}.pub-prose strong{color:var(--fg);font-weight:600}.pub-prose a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.pub-prose ul,.pub-prose ol{padding-left:1.4em}.pub-prose li+li{margin-top:.4em}.pub-prose li::marker{color:var(--accent-text)}.pub-prose blockquote{border-left:2px solid var(--accent-text);color:var(--fg);margin:0;padding-left:1.25em;font-style:italic}.pub-prose code{font-family:var(--font-mono);border:1px solid var(--line);background:var(--code-inline-bg);color:var(--code-inline-fg);border-radius:6px;padding:.15em .45em;font-size:.9em}.pub-prose pre{border:1px solid var(--line);background:var(--code-bg);color:var(--code-fg);border-radius:14px;margin:0;padding:18px 20px;overflow-x:auto}.pub-prose pre code{color:inherit;background:0 0;border:0;padding:0;font-size:.9rem}.pub-prose img{border:1px solid var(--line);border-radius:14px}.pub-prose table{border-collapse:collapse;width:100%;font-size:.95rem}.pub-prose th,.pub-prose td{border-bottom:1px solid var(--line);text-align:left;padding:.6em .5em}.pub-prose th{color:var(--fg)}.pub-prose hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}@keyframes pub-char-in{0%{opacity:0;transform:translateY(110%)rotate(4deg)}to{opacity:1;transform:none}}@keyframes pub-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes pub-marquee{to{transform:translate(-50%)}}@keyframes pub-pulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:0;transform:scale(2.4)}}@keyframes pub-float{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-16px)rotate(1.5deg)}}@keyframes pub-spin{to{transform:rotate(360deg)}}@keyframes pub-scroll-hint{0%{transform:translateY(-110%)}55%,to{transform:translateY(110%)}}@keyframes pub-shimmer{to{background-position:200%}}@keyframes pub-grain{0%,to{transform:translate(0)}20%{transform:translate(-4%,-6%)}40%{transform:translate(3%,5%)}60%{transform:translate(-5%,2%)}80%{transform:translate(4%,-3%)}}.pub-anim-fade-up{animation:pub-fade-up .9s var(--ease-expo) both;animation-delay:var(--delay,0s)}.pub-anim-char{animation:pub-char-in .9s var(--ease-expo) both;animation-delay:calc(var(--base,0s) + var(--i,0) * 38ms)}.pub-anim-pulse{animation:pub-pulse 2s var(--ease-soft) infinite}.pub-anim-float{animation:9s ease-in-out infinite pub-float}.pub-anim-spin-slow{animation:60s linear infinite pub-spin}.pub-anim-marquee{animation:pub-marquee var(--duration,40s) linear infinite}.pub-anim-grain{animation:1.4s steps(5,end) infinite pub-grain}.pub-scroll-line{background:var(--line-strong);width:1px;height:56px;position:relative;overflow:hidden}.pub-scroll-line:after{content:"";background:var(--accent-text);animation:pub-scroll-hint 2.2s var(--ease-soft) infinite;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.public-root *,.public-root :before,.public-root :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
