
:root{
  --primary:#a8320c; --secondary:#7c2308; --accent:#64748b;
  --bg:#ffffff; --surface:#fef2ee; --surface-alt:#fed7c8;
  --text:#1a0906; --muted:#6b7280; --border:#fdba8c;
  --row-alt:#fef2ee; --radius:6px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Sarabun","IBM Plex Sans Thai","Noto Sans Thai",system-ui,sans-serif;
  color:var(--text);background:var(--bg);line-height:1.75;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--secondary)}
.container{max-width:960px;margin:0 auto;padding:0 16px}
header.site{position:sticky;top:0;z-index:10;
  background:linear-gradient(90deg,var(--primary),var(--secondary));color:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.15)}
header.site .container{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700}
.brand img{width:36px;height:36px}
nav.main{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
nav.main a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:var(--radius);font-size:15px}
nav.main a:hover{background:rgba(255,255,255,.15)}
.hero{background:linear-gradient(135deg,var(--surface),var(--surface-alt));
  padding:32px 16px;border-bottom:1px solid var(--border)}
h1{font-size:26px;line-height:1.3;margin:0 0 12px;color:var(--secondary)}
.byline{color:var(--muted);font-size:14px;margin:8px 0 0}
.intro{margin:14px 0 0;font-size:17px}
main{padding:24px 0}
h2{font-size:22px;line-height:1.35;margin:32px 0 12px;padding:10px 14px;
  background:var(--surface);border-left:5px solid var(--primary);border-radius:var(--radius);color:var(--secondary)}
h3{font-size:18px;margin:22px 0 8px;color:var(--secondary)}
p{margin:10px 0}
ul,ol{padding-left:22px;margin:12px 0}
ul li{list-style:none;position:relative;padding-left:18px;margin:6px 0}
ul li:before{content:"▸";color:var(--primary);position:absolute;left:0;font-weight:700}
ol{counter-reset:oc;list-style:none;padding-left:0}
ol li{counter-increment:oc;position:relative;padding:6px 6px 6px 42px;margin:6px 0}
ol li:before{content:counter(oc);position:absolute;left:0;top:6px;
  background:var(--primary);color:#fff;width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.table-wrap{overflow-x:auto;margin:16px 0;border:1px solid var(--border);border-radius:var(--radius)}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}
thead th{background:linear-gradient(90deg,var(--primary),var(--secondary));color:#fff}
tbody tr:nth-child(even){background:var(--row-alt)}
nav.toc{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:14px 18px;margin:18px 0}
nav.toc h2{background:none;border:none;padding:0;margin:0 0 8px;font-size:16px}
nav.toc ol{padding-left:22px}
nav.toc ol li{padding:2px 0 2px 30px;font-size:15px}
nav.toc ol li:before{width:22px;height:22px;font-size:12px;top:2px}
details{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);margin:8px 0;padding:0}
details summary{cursor:pointer;padding:12px 14px;font-weight:700;color:var(--secondary);
  list-style:none;position:relative;padding-right:36px}
details summary::-webkit-details-marker{display:none}
details summary:after{content:"▼";position:absolute;right:14px;top:12px;
  transition:transform .2s;color:var(--primary)}
details[open] summary:after{transform:rotate(180deg)}
details .a{padding:0 14px 14px}
.callout{background:var(--surface-alt);border-left:4px solid var(--primary);
  padding:12px 14px;border-radius:var(--radius);margin:14px 0}
.author-box{background:linear-gradient(135deg,var(--surface),var(--surface-alt));
  border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin:32px 0 12px;
  display:flex;gap:14px;align-items:flex-start}
.author-box img{width:64px;height:64px;border-radius:50%;flex-shrink:0}
.author-box h3{margin:0 0 6px;font-size:16px}
.author-box p{margin:4px 0;font-size:14px;color:var(--muted)}
figure{margin:16px 0}
figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:6px}
footer.site{background:var(--secondary);color:#f5f5f5;padding:24px 0;margin-top:40px;font-size:14px}
footer.site a{color:#fff}
footer.site .cols{display:grid;grid-template-columns:1fr;gap:16px}
footer.site ul{padding:0}
footer.site ul li{padding-left:14px}
footer.site ul li:before{color:var(--surface-alt)}
@media(min-width:700px){
  body{font-size:16px}
  h1{font-size:32px}
  h2{font-size:24px}
  footer.site .cols{grid-template-columns:2fr 1fr 1fr}
}
@media(min-width:980px){
  .container{padding:0 24px}
}
