:root{--font-mitr:"Mitr";--font-noto-sans-thai-looped:"Noto Sans Thai Looped";--font-jetbrains-mono:"JetBrains Mono";--clay-50:#fafaf9;--clay-100:#fdf8ee;--clay-200:#f5ebd8;--clay-300:#eadcc3;--clay-400:#d9c4a5;--clay-500:#c2a57f;--clay-600:#a98b63;--clay-700:#8c6d46;--clay-800:#6b4f2e;--clay-900:#4e3820;--clay-950:#3a2a18;--peach-50:#fff7ed;--peach-100:#ffedd5;--peach-200:#fed7aa;--peach-300:#fdba74;--peach-400:#fb923c;--peach-500:#f97316;--peach-600:#ea580c;--peach-700:#c2410c;--peach-800:#9a3412;--peach-900:#7c2d12;--fawn:#d97706;--blush:#fecdd3;--warm-peach:#ffedd5;--oat:#fef3c7;--warm-white:#fafaf9;--mint:#ecfdf5;--sky:#f0f9ff;--coral-50:#fdf1f2;--coral-100:#fadcde;--coral-200:#f8c3c6;--coral-300:#f3a3a8;--coral-400:#f08a91;--coral-500:#eb737b;--coral-600:#d95560;--coral-700:#b8404b;--coral-800:#8f2e38;--coral-900:#6b222b;--ink-950:#3a2a18;--ink-900:#4e3820;--ink-850:#6b4f2e;--ink-800:#8c6d46;--ink-700:#a98b63;--ink-600:#c2a57f;--ink-400:#d9c4a5;--ink-300:#eadcc3;--ink-200:#f5ebd8;--ink-100:#fdf8ee;--ink-50:#fafaf9;--amber-950:#7c2d12;--amber-900:#9a3412;--amber-700:#c2410c;--amber-500:#f97316;--amber-400:#fb923c;--amber-300:#fdba74;--amber-200:#fed7aa;--amber-100:#ffedd5;--jade-900:#052213;--jade-700:#0a5c30;--jade-500:#16a257;--jade-400:#22c76e;--jade-200:#86ebb4;--crimson-900:#220408;--crimson-700:#6b0a18;--crimson-500:#c41230;--crimson-400:#e8203c;--crimson-200:#f8a0ab;--sapphire-900:#050e22;--sapphire-700:#0a236b;--sapphire-400:#2c6ef0;--sapphire-200:#9cbcf8;--topaz-900:#1a1000;--topaz-400:#e8a020;--topaz-200:#f8d890;--font-display:var(--font-mitr),"Quicksand",sans-serif;--font-ui:var(--font-noto-sans-thai-looped),"Nunito",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-0:0;--space-px:0.0625rem;--space-0-5:0.125rem;--space-1:0.25rem;--space-1-5:0.375rem;--space-2:0.5rem;--space-2-5:0.625rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-none:0;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-3xl:24px;--radius-full:9999px;--shadow-none:none;--shadow-xs:0 1px 2px rgba(7,11,20,0.4);--shadow-sm:0 2px 4px rgba(7,11,20,0.5),0 1px 2px rgba(7,11,20,0.4);--shadow-md:0 4px 8px rgba(7,11,20,0.6),0 2px 4px rgba(7,11,20,0.4);--shadow-lg:0 8px 24px rgba(7,11,20,0.7),0 4px 8px rgba(7,11,20,0.5);--shadow-xl:0 16px 40px rgba(7,11,20,0.8),0 8px 16px rgba(7,11,20,0.6);--shadow-clay-xs:1px 1px 2px rgba(124,45,18,0.08),inset 1px 1px 2px rgba(255,255,255,0.9);--shadow-clay-sm:2px 3px 8px rgba(124,45,18,0.1),inset 2px 2px 4px rgba(255,255,255,0.95),inset -1px -1px 2px rgba(217,119,6,0.08);--shadow-clay:3px 6px 18px rgba(124,45,18,0.12),1px 2px 6px rgba(124,45,18,0.08),inset 3px 3px 6px rgba(255,255,255,0.95),inset -2px -2px 5px rgba(217,119,6,0.1);--shadow-clay-lg:4px 10px 28px rgba(124,45,18,0.16),2px 4px 10px rgba(124,45,18,0.1),inset 4px 4px 8px rgba(255,255,255,1),inset -3px -3px 6px rgba(217,119,6,0.12);--shadow-clay-press:inset 3px 3px 8px rgba(124,45,18,0.18),inset -2px -2px 4px rgba(255,255,255,0.5);--shadow-clay-brand:2px 6px 20px rgba(249,115,22,0.35),1px 2px 6px rgba(124,45,18,0.2),inset 2px 2px 4px rgba(255,255,255,0.4),inset -2px -2px 4px rgba(124,45,18,0.2);--shadow-brand-glow:0 0 0 1px rgba(249,115,22,0.25),0 4px 16px rgba(249,115,22,0.35),0 8px 32px rgba(249,115,22,0.18);--shadow-brand-glow-hover:0 0 0 1px rgba(249,115,22,0.35),0 4px 20px rgba(249,115,22,0.5),0 12px 40px rgba(249,115,22,0.28);--shadow-code-glow:0 0 0 1px rgba(249,115,22,0.3),0 2px 12px rgba(249,115,22,0.22),inset 0 1px 0 rgba(255,255,255,0.5);--shadow-focus-ring:0 0 0 2px var(--bg-base),0 0 0 4px rgba(249,115,22,0.6);--shadow-inset-sm:inset 2px 2px 4px rgba(124,45,18,0.1);--shadow-inset-md:inset 3px 3px 8px rgba(124,45,18,0.14);--duration-instant:80ms;--duration-fast:120ms;--duration-default:180ms;--duration-moderate:240ms;--duration-slow:300ms;--duration-deliberate:450ms;--duration-interactive:180ms;--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-in-quart:cubic-bezier(0.5,0,0.75,0);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-linear:linear;--ease-decelerate:cubic-bezier(0,0,0.2,1);--icon-xs:12px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-xl:32px;--icon-2xl:48px;--icon-stroke-thin:1.25px;--icon-stroke-default:1.5px;--icon-stroke-bold:2px;--nav-height:64px;--nav-height-mobile:56px;--sidebar-width:256px;--sidebar-width-collapsed:64px;--content-max-width:1280px;--prose-max-width:680px}@font-face{font-family:Mitr;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/mitr-thai-400.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Mitr;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/mitr-latin-400.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Mitr;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/mitr-thai-500.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Mitr;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/mitr-latin-500.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Mitr;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/mitr-thai-600.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Mitr;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/mitr-latin-600.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Mitr;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/mitr-thai-700.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Mitr;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/mitr-latin-700.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-thai-looped-thai-400.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-thai-looped-latin-400.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-sans-thai-looped-thai-500.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-sans-thai-looped-latin-500.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-sans-thai-looped-thai-600.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-sans-thai-looped-latin-600.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-thai-looped-thai-700.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Thai Looped;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-thai-looped-latin-700.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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(/fonts/jetbrains-mono-latin-400.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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(/fonts/jetbrains-mono-latin-500.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root,[data-theme=light]{--bg-base:var(--peach-50);--bg-surface:var(--warm-white);--bg-nav:#fdebd3;--bg-elevated:#ffffff;--bg-sunken:var(--oat);--bg-overlay:rgba(78,56,32,0.45);--bg-brand:var(--peach-500);--bg-brand-hover:var(--peach-600);--bg-brand-subtle:var(--peach-100);--bg-success:#eaf7ee;--bg-error:var(--coral-50);--bg-warning:#fff6e0;--bg-info:#eef4fd;--fg-primary:var(--clay-900);--fg-secondary:var(--clay-700);--fg-muted:var(--clay-700);--fg-placeholder:var(--clay-700);--fg-inverse:var(--clay-50);--fg-brand:var(--peach-700);--fg-brand-strong:var(--peach-800);--fg-success:#1f6b44;--fg-error:var(--coral-700);--fg-warning:#8a5b12;--fg-info:#3b5b9e;--fg-code:var(--peach-800);--border-subtle:var(--clay-200);--border-default:var(--clay-300);--border-strong:var(--clay-400);--border-brand:var(--peach-300);--border-success:#9fd4b0;--border-error:var(--coral-300);--border-warning:#f0d48a}[data-theme=dark]{--bg-base:#3a2a18;--bg-surface:#46321c;--bg-nav:#46321c;--bg-elevated:var(--clay-800);--bg-sunken:#2c1e12;--bg-overlay:rgba(40,27,16,0.8);--bg-brand:var(--peach-400);--bg-brand-hover:var(--peach-300);--bg-brand-subtle:#5c4426;--bg-success:#14301f;--bg-error:#38181d;--bg-warning:#33250e;--bg-info:#1a2440;--fg-primary:var(--clay-100);--fg-secondary:var(--clay-300);--fg-muted:var(--clay-400);--fg-placeholder:var(--clay-500);--fg-inverse:var(--clay-900);--fg-brand:var(--peach-200);--fg-brand-strong:var(--peach-200);--fg-success:#9fd4b0;--fg-error:var(--coral-300);--fg-warning:#f0d48a;--fg-info:#b8cbf2;--fg-code:var(--peach-200);--border-subtle:var(--clay-800);--border-default:var(--clay-700);--border-strong:var(--clay-600);--border-brand:var(--peach-500);--border-success:#2e7d4f;--border-error:var(--coral-700);--border-warning:#8a5b12;--shadow-clay-xs:0 1px 2px rgba(0,0,0,0.35),inset 0 1px 2px rgba(255,255,255,0.06);--shadow-clay-sm:0 2px 6px rgba(0,0,0,0.4),0 1px 2px rgba(0,0,0,0.3),inset 0 2px 4px rgba(255,255,255,0.07);--shadow-clay:0 6px 16px rgba(0,0,0,0.45),0 2px 4px rgba(0,0,0,0.35),inset 0 3px 6px rgba(255,255,255,0.08),inset 0 -3px 6px rgba(0,0,0,0.25);--shadow-clay-lg:0 12px 28px rgba(0,0,0,0.5),0 4px 8px rgba(0,0,0,0.4),inset 0 4px 8px rgba(255,255,255,0.09),inset 0 -4px 8px rgba(0,0,0,0.3);--shadow-clay-press:inset 0 3px 8px rgba(0,0,0,0.45),inset 0 -1px 2px rgba(255,255,255,0.05);--shadow-clay-brand:0 6px 16px rgba(0,0,0,0.4),0 2px 8px rgba(217,127,62,0.3),inset 0 3px 6px rgba(255,255,255,0.25),inset 0 -3px 6px rgba(0,0,0,0.2);--shadow-inset-sm:inset 0 1px 3px rgba(0,0,0,0.35);--shadow-inset-md:inset 0 2px 6px rgba(0,0,0,0.4);--shadow-focus-ring:0 0 0 2px var(--bg-base),0 0 0 4px rgba(245,176,126,0.7)}