/* ===== modern-base.css : fonts (self-host จาก ../libs/fonts) + component ที่ใช้ร่วมกัน ===== */
@font-face{font-family:"Plus Jakarta Sans";font-weight:300;font-display:swap;src:url(../../libs/fonts/plus-jakarta-sans-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:400;font-display:swap;src:url(../../libs/fonts/plus-jakarta-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:600;font-display:swap;src:url(../../libs/fonts/plus-jakarta-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:700;font-display:swap;src:url(../../libs/fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:800;font-display:swap;src:url(../../libs/fonts/plus-jakarta-sans-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Sora";font-weight:600;font-display:swap;src:url(../../libs/fonts/sora-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Sora";font-weight:700;font-display:swap;src:url(../../libs/fonts/sora-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Sora";font-weight:800;font-display:swap;src:url(../../libs/fonts/sora-latin-800-normal.woff2) format("woff2")}
/* Prompt: แยก subset thai / latin ด้วย unicode-range */
@font-face{font-family:"Prompt";font-weight:400;font-display:swap;src:url(../../libs/fonts/prompt-thai-400-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:500;font-display:swap;src:url(../../libs/fonts/prompt-thai-500-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:600;font-display:swap;src:url(../../libs/fonts/prompt-thai-600-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:700;font-display:swap;src:url(../../libs/fonts/prompt-thai-700-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:400;font-display:swap;src:url(../../libs/fonts/prompt-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Prompt";font-weight:500;font-display:swap;src:url(../../libs/fonts/prompt-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Prompt";font-weight:600;font-display:swap;src:url(../../libs/fonts/prompt-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Prompt";font-weight:700;font-display:swap;src:url(../../libs/fonts/prompt-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--of-digitizing:#e11d48;--of-digital:#16a34a;--of-ink:#0f172a;--of-radius:18px}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{text-decoration:none}
:focus-visible{outline:3px solid #6366f1;outline-offset:2px}

.of-kbd{display:inline-block;padding:.5rem 1.25rem;border-radius:12px;font:700 1.5rem/1 "Plus Jakarta Sans",sans-serif;background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1;border-bottom-width:4px;letter-spacing:.05em}
.of-modal{border:0;border-radius:var(--of-radius);box-shadow:0 30px 80px rgba(15,23,42,.35)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
