:root{--cream: #ede7d3;--cream-2: #f0e6cc;--navy: #1d2d6b;--orange: #f89b3f;--red: #d8423a;--sky: #bfe0ed;--paper-dim: rgba(29, 45, 107, .86);--paper-faint: rgba(29, 45, 107, .58);--card: #ffffff;--card-border: rgba(29, 45, 107, .15);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--focus-offset: 3px;--duration-press: 80ms;--duration-fast: .15s;--duration-base: .2s;--duration-slow: .22s;--duration-target: 1.6s;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 100px;--text-xs: 11px;--text-sm: 13px;--text-base: 16px;--text-md: 17px;--text-lg: 20px;--text-xl: 24px;--text-3xl: 44px;--text-4xl: 56px;--text-hero: clamp(44px, 7vw, 72px);--lh-tight: 1.12}@font-face{font-family:"Instrument Serif Fallback";src:local("Georgia"),local("Times New Roman");size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:56px;scrollbar-width:thin;scrollbar-color:var(--navy) var(--cream-2)}::selection{background:var(--orange);color:var(--navy);text-shadow:none}::-moz-selection{background:var(--orange);color:var(--navy);text-shadow:none}body{font-family:Space Grotesk,Noto Sans Thai,sans-serif;background:var(--cream);color:var(--navy);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-synthesis:none;font-optical-sizing:auto;min-height:100vh;min-height:100dvh;overflow-x:hidden;position:relative}:lang(th),[lang=th]{word-break:break-word;overflow-wrap:anywhere;line-break:auto}tr[id],.card[id]{scroll-margin-top:24px}@keyframes target-pulse{0%{background-color:#f89b3f59}to{background-color:transparent}}tr:target td,.card:target{animation:target-pulse 1.6s ease-out;outline:2px solid var(--orange);outline-offset:-2px}@media (prefers-reduced-motion: reduce){tr:target td,.card:target{animation:none}}.skip-link{position:absolute;top:-48px;left:var(--s-4);z-index:1000;padding:var(--s-2) var(--s-4);background:var(--navy);color:var(--cream);font-family:JetBrains Mono,monospace;font-size:var(--text-sm);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;border-radius:var(--radius-sm);text-decoration:none;transition:top .15s ease-out}.skip-link:focus,.skip-link:focus-visible{top:var(--s-2);outline:2px solid var(--orange);outline-offset:var(--focus-offset)}.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}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(29,45,107,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(29,45,107,.025) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%)}body:after{content:"";position:fixed;top:15%;right:-15%;width:520px;height:520px;background:radial-gradient(circle,rgba(248,155,63,.18) 0%,transparent 65%);pointer-events:none;z-index:0;animation:orb-drift 22s ease-in-out infinite}@keyframes orb-drift{0%,to{transform:translate(0)}50%{transform:translate(-40px,60px)}}#root{position:relative;z-index:1}h1,h2,h3,h4{font-weight:600;color:var(--navy)}a{color:var(--red);text-decoration:none;transition:color var(--duration-base) ease-out}a:hover{color:var(--navy)}strong{color:var(--navy);font-weight:700}em{font-style:normal;color:var(--red);font-weight:600}code{font-family:JetBrains Mono,monospace;font-size:.88em;background:var(--cream-2);color:var(--navy);padding:2px 8px;border-radius:4px;border:1px solid var(--card-border)}pre{background:var(--cream-2);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:var(--s-5);overflow-x:auto;margin:var(--s-5) 0;font-family:JetBrains Mono,monospace;font-size:var(--text-sm);line-height:1.7;box-shadow:0 8px 24px #1d2d6b14}pre code{background:none;border:none;padding:0;color:var(--navy)}ul,ol{margin:var(--s-4) 0 var(--s-4) var(--s-5);color:var(--paper-dim)}li{margin-bottom:var(--s-2)}.container{max-width:1040px;margin:0 auto;padding:0 var(--s-7)}@media (max-width: 768px){body{font-size:15px}.container{padding:0 var(--s-5)}}
