:root{--ink:#16302d;--mute:#5a6b67;--teal:#0f766e;--teal-d:#0b5953;--cream:#fffbf2;--paper:#fff;--coral:#fb7185;--coral-d:#be3455;--line:#eadfca;--metal:#f3ecdc;--r:14px;--head:'IBM Plex Sans Thai','Noto Sans Thai',system-ui,sans-serif;--ff:'Noto Sans Thai',system-ui,-apple-system,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.7 var(--ff);overflow-x:hidden}a{color:var(--teal-d)}img{max-width:100%;height:auto}.shell{max-width:1080px;margin:0 auto;padding:0 16px}.sr,.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:8px;background:#fff;padding:8px 12px;z-index:9}h1,h2,h3{font-family:var(--head);line-height:1.3;color:var(--ink)}.mast{background:var(--paper);border-bottom:3px solid var(--ink)}.mast__in{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--head);font-size:22px}.brand b{color:var(--teal)}.brand__sort{display:grid;place-items:center;width:38px;height:38px;background:var(--teal);color:var(--cream);border-radius:6px;box-shadow:inset 0 -4px 0 var(--teal-d);font-size:20px}.mast__nav{display:flex;gap:6px;flex-wrap:wrap}.mast__nav a{text-decoration:none;font-weight:600;font-size:15px;padding:8px 12px;border-radius:999px;color:var(--ink)}.mast__nav a:hover{background:var(--metal)}.hero{background:repeating-linear-gradient(90deg,transparent 0 63px,rgba(15,118,110,.06) 63px 64px),var(--cream);border-bottom:1px solid var(--line);padding:34px 0 26px}.hero__t{font-size:clamp(28px,6vw,46px);margin:0 0 12px}.hero__t span{display:block;font-size:.55em;color:var(--teal)}.hero__p{max-width:760px;font-size:18px;margin:0 0 18px}.strip{display:flex;gap:8px;flex-wrap:wrap}.strip span{display:grid;place-items:center;width:56px;height:64px;background:var(--metal);border:1px solid var(--line);border-radius:6px;font-size:30px;box-shadow:inset 0 -5px 0 rgba(0,0,0,.06)}.sec{padding:30px 16px}.sec h2{font-size:clamp(22px,4vw,30px);margin:0 0 6px}.sec__sub{color:var(--mute);margin:0 0 14px}.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}.tbl table{width:100%;min-width:560px;border-collapse:collapse;font-size:15px}.tbl th,.tbl td{padding:8px 12px;border-bottom:1px solid #f2ead9;text-align:left;vertical-align:middle}.tbl thead th{background:var(--metal);font-family:var(--head)}.sort{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;min-height:72px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:inset 0 -5px 0 var(--metal);cursor:pointer;color:var(--ink);font:inherit;transition:transform .12s,border-color .12s}.sort:hover{border-color:var(--teal);transform:translateY(-2px)}.sort__g{font-size:28px;line-height:1.2}.sort__c{font-size:10px;color:var(--mute);letter-spacing:.02em;margin-top:2px}.sort--s{min-width:48px;min-height:48px;font-size:24px;box-shadow:none}.sorts{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px}.case{margin:0 0 22px}.case h3{font-size:19px;margin:0 0 8px}.case h3 small{color:var(--mute);font-weight:400;font-size:14px}.case.is-off{display:none}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:7px 14px;font:600 15px var(--ff);color:var(--ink);cursor:pointer;min-height:40px}.chip[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff}.maker input{width:100%;max-width:520px;font:600 20px var(--ff);padding:12px 16px;border:2px solid var(--ink);border-radius:var(--r);background:#fff}.out{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:14px 0 18px}.out button{text-align:left;font:600 18px var(--ff);padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--coral);border-radius:8px;cursor:pointer;color:var(--ink);min-height:48px;overflow-wrap:anywhere}.out button:hover{border-color:var(--teal)}.fig{margin:14px 0}.fig img{max-width:540px;width:100%;aspect-ratio:1/1;border-radius:var(--r);display:block}details{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin:0 0 10px}summary{font-family:var(--head);font-weight:700;cursor:pointer}.page{padding:22px 16px 40px}.page__t{font-size:clamp(26px,5vw,38px);margin:6px 0 12px}.crumbs{font-size:14px;color:var(--mute);display:flex;gap:6px;flex-wrap:wrap}.meta{color:var(--mute);font-size:14px}.prose{max-width:760px}.prose h2{font-size:24px;margin-top:1.4em}.prose h3{font-size:19px}.prose .sorts{max-width:100%}.cover img{border-radius:var(--r)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.card{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-decoration:none;color:var(--ink)}.card img{border-radius:10px}.card span{color:var(--mute);font-size:15px}.foot{background:var(--ink);color:#e8efe9;margin-top:30px;padding:28px 0 18px}.foot a{color:#fff}.foot__in{display:grid;grid-template-columns:2fr 1fr;gap:24px}.foot .brand{color:#fff}.foot .brand b{color:var(--coral)}.foot__nav h2{font-size:16px;color:#fff;margin:0 0 8px}.foot__nav ul{list-style:none;margin:0;padding:0}.foot__nav li{margin:0 0 6px}.foot__note{font-size:14px;color:#b9c9c4;margin-top:18px}.foot__copy{font-size:14px;color:#b9c9c4}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(80px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;transition:transform .2s;z-index:20}.toast.is-on{transform:translateX(-50%) translateY(0)}@media (max-width:700px){.foot__in{grid-template-columns:1fr}.mast__nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.mast__nav a{white-space:nowrap}}.toast{opacity:0;pointer-events:none}.toast.is-on{opacity:1}@media (max-width:700px){.tbl table{min-width:0;font-size:14px}.tbl th,.tbl td{padding:6px 8px}.tbl code{font-size:11px;white-space:nowrap}#specimen .tbl td:nth-child(4),#specimen .tbl th:nth-child(4){display:none}#specimen .tbl td:nth-child(2){font-size:13px}.sort--s{min-width:44px;min-height:44px}}.conv input{width:100%;max-width:520px;font:600 20px var(--ff);padding:12px 16px;border:2px solid var(--ink);border-radius:var(--r);background:#fff}.conv .out button small{display:block;font-size:12px;color:var(--mute);font-weight:400}.prose .tbl{max-width:100%}