@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-thai-wght-normal-CtQSZ1tK.woff2)format("woff2-variations");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-latin-ext-wght-normal-DH1q_yQ5.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-latin-wght-normal-Bi3VDbYN.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#14312e;--ink-2:#3d5753;--paper:#f7f3ea;--card:#fffdf8;--line:#ded6c4;--gold:#e8b04a;--gold-d:#9a6b12;--teal:#1f5f58;--rose:#b4452f;--ok:#2f7a4d;--warn:#a2681a;--focus:#1a54c8;--scale:1;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--serif:"Iowan Old Style", "Palatino Linotype", Georgia, serif;--thai:"Noto Sans Thai Variable", "Thonburi", "Sarabun", "Tahoma", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:calc(100% * var(--scale))}body{background:var(--paper);color:var(--ink);font-family:var(--sans);padding-bottom:env(safe-area-inset-bottom);-webkit-text-size-adjust:100%;margin:0;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{max-width:720px;padding:calc(env(safe-area-inset-top) + 12px) 16px 96px;min-height:100dvh;margin:0 auto}h1,h2,h3{font-family:var(--serif);margin:0 0 8px;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:0 0 10px}.muted{color:var(--ink-2)}.small{font-size:.85rem}.thai{font-family:var(--thai);letter-spacing:0;line-height:1.9}.thai-xl{font-size:2.4rem}.thai-lg{font-size:1.7rem}.thai-md{font-size:1.25rem}.tl{color:var(--teal);font-style:italic}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.stack>*+*{margin-top:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 1px #14312e0a}.card.tint{background:#f0ead9}.btn{border:1.5px solid var(--ink);background:var(--card);text-align:center;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:52px;padding:12px 18px;font-weight:600;display:inline-flex}.btn.primary{background:var(--ink);color:var(--paper)}.btn.gold{background:var(--gold);border-color:var(--gold-d);color:var(--ink)}.btn.ghost{border-color:var(--line);background:0 0}.btn.block{width:100%}.btn.sm{min-height:44px;padding:8px 14px;font-size:.92rem}.btn[disabled]{opacity:.45;cursor:not-allowed}.opt{text-align:left;border:1.5px solid var(--line);background:var(--card);border-radius:14px;width:100%;min-height:60px;padding:12px 16px;font-size:1.05rem}.opt.thai{font-size:1.35rem}.opt:active{background:#efe8d4}.opt.right{border-color:var(--ok);background:#e5f3ea}.opt.wrong{border-color:var(--rose);background:#f9e6e1}.chip{border:1px solid var(--line);background:#efe8d4;border-radius:99px;padding:2px 10px;font-size:.78rem;display:inline-block}.chip.lv-delayed,.chip.lv-context{background:#d9eddf;border-color:#9cc9ab}.chip.lv-practicing{background:#fbefc9;border-color:#e6cd7b}.chip.lv-introduced{background:#e3ecf2;border-color:#b4c9d6}.chip.warn{background:#fbefc9;border-color:#e6cd7b}.bar{background:#e6dfcc;border-radius:99px;height:8px;overflow:hidden}.bar>i{background:var(--teal);height:100%;transition:width .3s;display:block}.banner{border-left:4px solid var(--gold);background:#fbf3dc;border-radius:8px;padding:10px 12px;font-size:.9rem}.banner.alert{border-color:var(--rose);background:#fbe9e4}.grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=560px){.grid.g3{grid-template-columns:repeat(3,1fr)}}.dest{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:16px;padding:0;display:block;position:relative;overflow:hidden}.dest svg{width:100%;height:74px;display:block}.dest .t{padding:10px 12px 12px}.dest b{font-family:var(--serif);font-size:1.05rem}.topbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:5;background:#f7f3eaf5;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav button{min-height:52px;color:var(--ink-2);background:0 0;border:0;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.78rem;display:flex}.nav button[aria-current=page]{color:var(--ink);background:#efe8d4;font-weight:700}.sheet-bg{z-index:20;background:#14312e73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);width:100%;max-width:720px;max-height:88dvh;padding:18px 16px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow:auto}.tiles{border:1.5px dashed var(--line);border-radius:14px;flex-wrap:wrap;gap:8px;min-height:64px;padding:10px;display:flex}.tile{border:1.5px solid var(--ink);background:var(--card);min-height:52px;font-family:var(--thai);border-radius:12px;padding:8px 16px;font-size:1.3rem}.tile.placed{background:#e3ecf2}.field{border:1.5px solid var(--line);background:var(--card);width:100%;min-height:56px;font-family:var(--thai);border-radius:14px;padding:10px 14px;font-size:1.35rem}label.sw{justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:6px 0;display:flex}input[type=checkbox]{width:26px;height:26px}input[type=range]{width:55%;min-height:40px}.seg{border:1.5px solid var(--ink);border-radius:12px;display:flex;overflow:hidden}.seg button{background:0 0;border:0;flex:1;min-height:44px}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}table.t{border-collapse:collapse;width:100%;font-size:.92rem}table.t td,table.t th{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 4px}.stamp{border:2.5px dashed var(--line);text-align:center;width:74px;height:74px;color:var(--ink-2);border-radius:50%;place-items:center;padding:6px;font-size:.66rem;display:grid}.stamp.on{border-style:solid;border-color:var(--gold-d);color:var(--ink);background:#fbf0cf;font-weight:600}.toast{background:var(--ink);color:var(--paper);z-index:30;border-radius:99px;max-width:90vw;padding:10px 16px;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.04)}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){:root:not(.allow-motion) *,:root:not(.allow-motion) :before,:root:not(.allow-motion) :after{transition:none!important;animation:none!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}details summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}
