/* ===== readable type: body text in IBM Plex Sans Thai, headings and buttons stay Kanit ===== */
body{font-family:"IBM Plex Sans Thai",Kanit,system-ui,sans-serif;font-size:16px;line-height:1.6}
h1,h2,h3,h4,.btn,.chip,.seg a,.bottomnav a,.row-h h3,.pn,.n,.word small,.tg,.badge,.pill,.kicker,.toplink,.opt,.ag-b,.lv b{font-family:Kanit,"IBM Plex Sans Thai",system-ui,sans-serif}
.card .n{font-size:14.5px}
.meta{font-size:13px}
.pitch,.desc,.gshort{font-size:15.5px;line-height:1.7}
@media (max-width:759px){ body{font-size:16px} .card .n{font-size:14px} }

/* ===== game page ===== */
.gpage{max-width:1180px;margin:0 auto}
.gp-back{display:inline-flex;align-items:center;gap:6px;margin:2px 0 12px;padding:6px 12px 6px 8px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);color:var(--text2);font:500 14px Kanit}
.gp-back .i{width:16px;height:16px}
.gp-hero{display:grid;gap:16px;grid-template-columns:1fr}
.gp-media .gal{position:relative;border-radius:20px;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}
.gp-media .gal-track img{aspect-ratio:16/9}
.gal-nav{position:absolute;top:calc(50% - 20px);width:40px;height:40px;border-radius:50%;border:0;background:rgba(10,12,24,.65);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}
.gal-nav .i{width:18px;height:18px}
.gal-nav.l{left:10px}.gal-nav.r{right:10px}
.gp-media .gal:hover .gal-nav{opacity:1}
.gal-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none}
.gal-thumbs::-webkit-scrollbar{display:none}
.gal-thumbs button{flex:none;width:96px;aspect-ratio:16/9;border-radius:10px;overflow:hidden;border:2px solid transparent;padding:0;opacity:.6;transition:.2s;background:var(--card)}
.gal-thumbs button.on{border-color:var(--acc);opacity:1}
.gal-thumbs img{width:100%;height:100%;object-fit:cover}
.gp-card{background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:12px}
.gp-id{display:flex;gap:14px;align-items:center}
.gp-id>img{width:76px;height:76px;border-radius:20px;flex:none;object-fit:cover;box-shadow:0 0 0 1px var(--line2)}
.gp-id h1{margin:0;font-size:22px;line-height:1.25;font-weight:600}
.gp-id .by{color:var(--mute);font-size:14px;margin-top:2px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.vbadge{display:inline-flex;align-items:center;gap:4px;font:500 12px Kanit;color:#0e7a4c;background:rgba(62,229,154,.16);border:1px solid rgba(62,229,154,.4);border-radius:999px;padding:1px 9px 1px 6px}
.vbadge .i{width:13px;height:13px;color:var(--green)}
.vbadge.sm{font-size:11px;padding:0 7px}
:root:not([data-theme="light"]) .vbadge{color:#a9f3cf}
.gp-card .tags{margin:0}
.gp-card .gshort{margin:0;color:var(--text2)}
.gp-play{width:100%;height:54px;font-size:18px;border-radius:16px}
.gp-acts{display:grid;grid-template-columns:auto 1fr auto;gap:8px;margin:0}
.gp-acts .btn{height:46px}
.gp-acts .like .num{min-width:1ch}
.qstats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.qs{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;background:var(--card);border-radius:14px;padding:10px 12px}
.qs .ico{grid-row:span 2;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.qs .ico .i{width:18px;height:18px}
.qs b{font:600 17px/1.2 Kanit}
.qs span:last-child{font-size:12.5px;color:var(--mute);line-height:1.3}
.gp-snap{font-size:12px;color:var(--dim);text-align:center}
.gp-tabs{position:sticky;top:61px;z-index:20;display:flex;gap:4px;margin:20px 0 14px;padding:5px;border-radius:16px;background:var(--bg2);border:1px solid var(--line);overflow-x:auto;scrollbar-width:none;backdrop-filter:blur(10px)}
.gp-tabs::-webkit-scrollbar{display:none}
.gp-tabs button{flex:1;min-width:max-content;height:42px;padding:0 16px;border-radius:12px;border:0;background:none;color:var(--mute);font:500 15px Kanit;white-space:nowrap}
.gp-tabs button.on{background:var(--card2);color:var(--text);box-shadow:0 2px 10px rgba(0,0,0,.18)}
.gp-tabs em{font-style:normal;font-size:12px;background:var(--acc);color:#2a1000;border-radius:999px;padding:0 7px;margin-left:4px}
.gp-body{display:flex;flex-direction:column;gap:14px;min-height:200px}
.gp-two{display:grid;gap:14px;grid-template-columns:1fr}
.gp-h{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:17px;font-weight:600}
.gp-h .i{width:19px;height:19px}
.gp-empty{text-align:center;color:var(--mute);padding:34px 16px}
.gp-empty .i{width:30px;height:30px;opacity:.6}
.gp-lock{text-align:center;padding:30px}
.facts{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;margin:0;font-size:14.5px}
.facts dt{color:var(--mute)}
.facts dd{margin:0}
.facts .bar{max-width:260px;margin:6px 0 4px}
.facts small{color:var(--mute);font-size:12.5px}
.codes{display:flex;flex-direction:column;gap:8px}
.cd{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:var(--card);border-radius:14px;padding:10px 10px 10px 14px}
.cd code{font:600 16px ui-monospace,Consolas,monospace;letter-spacing:1px;color:#ffd27a;background:rgba(0,0,0,.25);border:1px dashed rgba(255,165,61,.5);border-radius:10px;padding:4px 10px;overflow-wrap:anywhere}
[data-theme="light"] .cd code{color:#9a4b07;background:#fff8ec}
.cd span{font-size:14px;color:var(--text2)}
.howto{margin-top:14px;padding:12px 14px;border-radius:14px;background:rgba(106,168,255,.08);border:1px solid rgba(106,168,255,.25)}
.howto p{margin:4px 0 0;white-space:pre-line;font-size:14.5px}
.yt{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;border:0;padding:0;background:#000}
.yt img{width:100%;height:100%;object-fit:cover;opacity:.9}
.yt span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.yt span .i{width:64px;height:64px;color:#fff;filter:drop-shadow(0 4px 14px rgba(0,0,0,.6))}
.yt-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000}
.yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cnote{white-space:pre-line;margin:0 0 12px;font-size:15px}
.clinks{display:flex;flex-wrap:wrap;gap:8px}
.post .gfav.on{color:var(--gold);border-color:rgba(255,209,102,.6);background:rgba(255,209,102,.12)}
.early .flag{width:16px;height:11px;box-shadow:none}
@media (max-width:759px){ .gp-tabs{top:58px} .gp-card{padding:14px} .gp-id h1{font-size:20px} }
@media (min-width:900px){
  .gp-hero{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);align-items:start}
  .gp-card{position:sticky;top:76px}
  .gp-two{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
}

.foot-links{line-height:2.1;margin:6px 0}
.foot-links a{color:var(--text2);white-space:nowrap}
.foot-links a:hover{color:var(--acc)}

.ck-bar{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px));z-index:85;max-width:640px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:16px;background:var(--card2);border:1px solid var(--line2);box-shadow:var(--shadow);animation:up .25s}
.ck-bar p{margin:0;font-size:13.5px;line-height:1.5;flex:1 1 280px;color:var(--text2)}
.ck-bar a{color:var(--acc)}
.ck-bar div{display:flex;gap:8px}
@media (min-width:760px){.ck-bar{bottom:18px}}
