:root{--bg:#0b0f17;--fg-rgb:255, 255, 255;--panel:#ffffff0a;--panel-strong:#ffffff12;--panel-border:#ffffff17;--text:#e9eef6;--text-soft:#ccd6e4;--muted:#8d9bb0;--accent:#e2b25e;--accent-rgb:226, 178, 94;--accent-soft:#e2b25e29;--accent-text:#f0cd92;--mint:#6ee7b7;--mint-rgb:110, 231, 183;--danger:#fb7185;--danger-rgb:251, 113, 133;--danger-text:pink;--grad-start:#f0cd92;--grad-end:#d8a24a;--on-accent:#2a1c06;--star:#ffd479;--grid-line:#ffffff17;--grid-strong:#ffffff2e;--table-bg:radial-gradient(circle at 50% 0%, #e2b25e1a, transparent 62%);--surface-raised:#0f1521f2;--modal-bg:linear-gradient(180deg, #1a2333fa, #0c111bfa);--scrim:#05080ebd;--scrim-soft:#060a108c;--radius:18px;--shadow:0 24px 60px -30px #000000e6;--shadow-strong:0 18px 40px -22px #000000f2;--tile-face-a:#fffdf6;--tile-face-b:#f1e7cf;--tile-face-c:#e2d3b0;--tile-edge:#c3ac7f;--tile-ink:#2a3446;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Noto Sans Thai,Inter,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}:root[data-theme=light]{--bg:#f4f1ea;--fg-rgb:24, 32, 46;--panel:#ffffffc7;--panel-strong:#fff;--panel-border:#18202e1a;--text:#17202e;--text-soft:#33415a;--muted:#5f6c84;--accent:#b07d2a;--accent-rgb:176, 125, 42;--accent-soft:#b07d2a24;--accent-text:#8a5f14;--mint:#0f9d76;--mint-rgb:15, 157, 118;--danger:#d92d4b;--danger-rgb:217, 45, 75;--danger-text:#be123c;--grad-start:#d9a94f;--grad-end:#b07d2a;--on-accent:#fff;--star:#f59e0b;--grid-line:#18202e1a;--grid-strong:#18202e38;--table-bg:radial-gradient(circle at 50% 0%, #b07d2a1f, transparent 60%);--surface-raised:#fffffff7;--modal-bg:linear-gradient(180deg, #fff, #f6f1e7);--scrim:#141a266b;--scrim-soft:#f4f1ea99;--shadow:0 24px 60px -32px #141a264d;--shadow-strong:0 18px 40px -22px #141a2659;--tile-face-a:#fffefb;--tile-face-b:#f7f0e0;--tile-face-c:#ebdfc6;--tile-edge:#cbb58c;--tile-ink:#232d3f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.accent-ink{color:var(--difficulty-accent)}:root[data-theme=light] .accent-ink{color:color-mix(in srgb, var(--difficulty-accent) 62%, #000)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);margin:0}button{font-family:inherit}.app{min-height:100vh;padding:26px 20px 40px;position:relative;overflow-x:hidden}.app-glow{pointer-events:none;background:radial-gradient(680px 420px at 10% -8%, rgba(var(--accent-rgb), .18), transparent 65%), radial-gradient(560px 420px at 92% 2%, rgba(var(--mint-rgb), .1), transparent 62%), radial-gradient(720px 520px at 60% 108%, #e2b25e14, transparent 65%);z-index:0;position:fixed;inset:0}.app-inner{z-index:1;max-width:1060px;margin:0 auto;position:relative}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:linear-gradient(140deg, var(--tile-face-a), var(--tile-face-c));color:#b3261e;border:1px solid var(--tile-edge);border-radius:13px;place-items:center;width:46px;height:46px;font-size:24px;font-weight:800;display:grid;box-shadow:0 12px 26px -14px #0000008c}.brand-text h1{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:1.32rem;font-weight:700}.brand-text p{color:var(--muted);margin:0;font-size:.74rem}.header-actions{align-items:center;gap:8px;display:flex}.timer{background:var(--panel);border:1px solid var(--panel-border);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;display:inline-flex}.timer-icon{opacity:.8;font-size:.85rem}.timer-value{letter-spacing:.04em;font-weight:600}.btn{cursor:pointer;color:var(--text);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:11px;padding:9px 15px;font-size:.85rem;font-weight:600;transition:transform .12s,background .15s,border-color .15s,opacity .15s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn--primary{background:linear-gradient(140deg, var(--grad-start), var(--grad-end));color:var(--on-accent);box-shadow:0 14px 26px -16px rgba(var(--accent-rgb), .9)}.btn--ghost{background:var(--panel);border-color:var(--panel-border);color:var(--text)}.btn--ghost:hover:not(:disabled){background:var(--panel-strong)}.btn--soft{background:var(--accent-soft);border-color:rgba(var(--accent-rgb), .35);color:var(--accent-text)}.btn--danger{background:rgba(var(--danger-rgb), .16);border-color:rgba(var(--danger-rgb), .45);color:var(--danger-text)}.btn--sm{padding:7px 12px;font-size:.79rem}.btn--block{width:100%;margin-bottom:8px}.btn:focus-visible,.tool:focus-visible,.tile:focus-visible,.seg-btn:focus-visible,.lang-choice:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:22px;display:grid}.game-column{flex-direction:column;gap:14px;min-width:0;display:flex}.difficulty{flex-direction:column;gap:8px;display:flex}.segmented{background:rgba(var(--fg-rgb), .04);border:1px solid var(--panel-border);border-radius:999px;gap:4px;padding:4px;display:flex}.seg-btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:7px;padding:9px 10px;font-size:.86rem;font-weight:600;transition:background .16s,color .16s,border-color .16s;display:inline-flex}.seg-btn:hover{color:var(--text)}.seg-btn--active{color:var(--text);background:color-mix(in srgb, var(--seg-accent,var(--accent)) 18%, transparent);border-color:color-mix(in srgb, var(--seg-accent,var(--accent)) 48%, transparent)}.seg-dot{border-radius:50%;flex:none;width:8px;height:8px}.seg-en{letter-spacing:.06em;text-transform:uppercase;opacity:.55;font-size:.68rem}.difficulty-note{color:var(--muted);margin:0;padding-left:4px;font-size:.76rem}.board-card{border-radius:var(--radius);background:var(--table-bg), linear-gradient(180deg, rgba(var(--fg-rgb), .05), rgba(var(--fg-rgb), .02));border:1px solid var(--panel-border);box-shadow:var(--shadow);padding:14px}.board-meta{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.board-meta-chip{color:var(--muted);background:rgba(var(--fg-rgb), .05);border:1px solid rgba(var(--fg-rgb), .06);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 9px;font-size:.72rem}.progress{background:rgba(var(--fg-rgb), .08);border-radius:999px;height:4px;margin-bottom:12px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--grad-start), var(--grad-end));border-radius:999px;height:100%;transition:width .3s;display:block}.board-wrap{position:relative}.board-shell{justify-content:center;align-items:flex-start;min-height:320px;padding:10px 0 4px;display:flex}.board{margin:0 auto;position:relative}.board--paused{filter:blur(3px)saturate(.4)}.tile{border:1px solid var(--tile-edge);background:linear-gradient(180deg, var(--tile-face-a) 0%, var(--tile-face-b) 64%, var(--tile-face-c) 100%);color:var(--tile-ink);cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 3px 0 var(--tile-edge), 0 7px 12px #00000052;-webkit-tap-highlight-color:transparent;border-radius:7px;place-items:center;padding:0;transition:transform .1s,box-shadow .1s,filter .15s,opacity .15s;display:grid;position:absolute;overflow:hidden}.tile:after{content:"";pointer-events:none;border:1px solid #ffffff8c;border-radius:5px;position:absolute;inset:2px}.tile--free:hover,.tile:not(.tile--blocked):hover{box-shadow:0 5px 0 var(--tile-edge), 0 12px 18px #00000057;transform:translateY(-2px);z-index:9999!important}.tile--dim{filter:saturate(.5)brightness(.82);opacity:.78}.tile--blocked{cursor:default}.tile--selected{outline:3px solid var(--accent);outline-offset:-1px;box-shadow:0 6px 0 var(--tile-edge), 0 14px 22px #0006, 0 0 22px rgba(var(--accent-rgb), .55);transform:translateY(-3px);z-index:9999!important}.tile--match:before{content:"";border:2px dashed rgba(var(--mint-rgb), .9);pointer-events:none;border-radius:9px;position:absolute;inset:-3px}.tile--hint{animation:1.4s ease-in-out infinite tilePulse}@keyframes tilePulse{0%,to{box-shadow:0 3px 0 var(--tile-edge), 0 0 0 0 rgba(var(--accent-rgb), .55)}50%{box-shadow:0 5px 0 var(--tile-edge), 0 0 0 6px rgba(var(--accent-rgb), .35)}}.tile-face{flex-direction:column;justify-content:center;align-items:center;gap:1%;width:100%;height:100%;padding:5% 6%;line-height:1;display:flex}.tile-num{font-size:calc(var(--tile-h,72px) * .27);letter-spacing:-.02em;font-weight:800}.tile-pips{gap:calc(var(--tile-h,72px) * .035);grid-template-columns:repeat(3,1fr);place-items:center;width:88%;display:grid}.pip{width:calc(var(--tile-h,72px) * .075);height:calc(var(--tile-h,72px) * .075);background:currentColor;border-radius:50%}.tile-pips--bamboo .pip{width:calc(var(--tile-h,72px) * .055);height:calc(var(--tile-h,72px) * .16);border-radius:2px}.tile-glyph{font-size:calc(var(--tile-h,72px) * .52);font-weight:700;line-height:1}.tile--dots{color:#1d4ed8}.tile--bamboo{color:#0f7a4f}.tile--chars{color:#b3261e}.tile--wind{color:#1f2937}.tile--dragon{color:#7a1f1f}.tile--flower{color:#c2185b}.tile--season{color:#6d28d9}.board-paused{background:var(--scrim-soft);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:14px;place-items:center;display:grid;position:absolute;inset:0}.board-paused__card{text-align:center;background:var(--surface-raised);border:1px solid var(--panel-border);box-shadow:var(--shadow);border-radius:16px;padding:18px 22px}.board-paused__card p{color:var(--muted);margin:6px 0 12px;font-size:.85rem}.board-paused__icon{font-size:1.6rem}.tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.tool{border:1px solid var(--panel-border);background:rgba(var(--fg-rgb), .03);color:var(--text);cursor:pointer;border-radius:13px;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;transition:background .14s,border-color .14s,transform .12s;display:flex;position:relative}.tool:hover:not(:disabled){background:var(--panel-strong);transform:translateY(-1px)}.tool:disabled{opacity:.4;cursor:not-allowed}.tool--hint{background:rgba(var(--accent-rgb), .1);border-color:rgba(var(--accent-rgb), .32)}.tool-icon{font-size:1rem;line-height:1}.tool-label{color:var(--muted);font-size:.72rem}.tool-badge{background:var(--accent);min-width:17px;height:17px;color:var(--on-accent);border-radius:999px;place-items:center;padding:0 4px;font-size:.62rem;font-weight:700;display:grid;position:absolute;top:5px;right:8px}.hint-card{background:rgba(var(--accent-rgb), .09);border:1px solid rgba(var(--accent-rgb), .3);border-radius:15px;padding:13px 15px;animation:.2s slideIn}.hint-card--stuck{background:rgba(var(--danger-rgb), .1);border-color:rgba(var(--danger-rgb), .32)}@keyframes slideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hint-head{align-items:flex-start;gap:9px;display:flex}.hint-icon{font-size:1rem;line-height:1.3}.hint-titles{flex-direction:column;flex:1;min-width:0;display:flex}.hint-titles strong{font-size:.87rem}.hint-sub{color:var(--muted);font-size:.7rem}.hint-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1.1rem;line-height:1}.hint-close:hover{color:var(--text)}.hint-body{color:var(--text-soft);margin:8px 0 10px;font-size:.82rem}.hint-actions{flex-wrap:wrap;gap:8px;display:flex}.panel{flex-direction:column;gap:12px;display:flex}.panel-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;padding:14px 15px}.panel-card--muted{background:rgba(var(--fg-rgb), .02)}.panel-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:.72rem;font-weight:600}.fact-row{justify-content:space-between;align-items:baseline;gap:10px;padding:3px 0;font-size:.82rem;display:flex}.fact-key{color:var(--muted);font-size:.76rem}.fact-value{text-align:right;font-weight:600}.fact-value--ok{color:var(--mint)}.stat-table{flex-direction:column;gap:2px;display:flex}.stat-row{grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:4px 0;font-size:.81rem;display:grid}.stat-name{font-weight:600}.stat-best{font-variant-numeric:tabular-nums}.stat-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.74rem}.panel-note{color:var(--muted);margin:8px 0 0;font-size:.7rem;line-height:1.5}.recent{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.recent-item{background:rgba(var(--fg-rgb), .03);border-radius:9px;align-items:center;gap:8px;padding:5px 8px;font-size:.76rem;display:flex}.recent-dot{border-radius:50%;width:6px;height:6px}.recent-diff{color:var(--muted);flex:1}.recent-time{font-variant-numeric:tabular-nums}.recent-hint{color:var(--muted);font-size:.7rem}.setting-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.setting-text{flex-direction:column;gap:1px;display:flex}.setting-label{font-size:.81rem}.setting-hint{color:var(--muted);font-size:.68rem}.switch{background:rgba(var(--fg-rgb), .14);border-radius:999px;flex:none;width:38px;height:21px;transition:background .18s;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch-knob{background:#cfd8ef;border-radius:50%;width:15px;height:15px;transition:transform .18s;position:absolute;top:3px;left:3px}.switch--on{background:rgba(var(--mint-rgb), .55)}.switch--on .switch-knob{background:#06110c;transform:translate(17px)}.setting-row--lang{align-items:center}.lang-choices{background:rgba(var(--fg-rgb), .05);border:1px solid var(--panel-border);border-radius:999px;flex:none;gap:3px;padding:3px;display:flex}.lang-choice{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:600;transition:background .15s,color .15s}.lang-choice:hover{color:var(--text)}.lang-choice--active{background:rgba(var(--accent-rgb), .2);color:var(--accent-text)}.confirm-row{gap:8px;margin-top:8px;display:flex}.confirm-bar{background:rgba(var(--danger-rgb), .12);border:1px solid rgba(var(--danger-rgb), .34);border-radius:13px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;font-size:.8rem;animation:.18s slideIn;display:flex}.confirm-bar__actions{gap:8px;margin-left:auto;display:flex}.keyboard-hint{color:rgba(var(--fg-rgb), .45);text-align:center;margin:0;font-size:.68rem;line-height:1.6}.footer{color:rgba(var(--fg-rgb), .45);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:26px;font-size:.7rem;display:flex}.footer-dot{opacity:.5}.toast{background:var(--surface-raised);border:1px solid var(--panel-border);box-shadow:var(--shadow-strong);z-index:60;text-align:center;border-radius:999px;max-width:min(92vw,460px);padding:10px 18px;font-size:.82rem;font-weight:600;animation:.22s toastIn;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.toast--good{border-color:rgba(var(--mint-rgb), .45);color:var(--mint)}.toast--bad{border-color:rgba(var(--danger-rgb), .45);color:var(--danger-text)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.modal-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;place-items:center;padding:20px;animation:.2s fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--modal-bg);border:1px solid rgba(var(--accent-rgb), .3);width:min(100%,372px);box-shadow:0 40px 90px -40px rgba(var(--accent-rgb), .45);text-align:center;border-radius:22px;padding:26px 24px 22px;animation:.24s cubic-bezier(.2,.9,.3,1.2) modalIn;position:relative;overflow:hidden}@keyframes modalIn{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-glow{background:radial-gradient(circle, rgba(var(--accent-rgb), .35), transparent 70%);pointer-events:none;width:220px;height:160px;position:absolute;top:-80px;left:50%;transform:translate(-50%)}.win-stars{justify-content:center;gap:6px;margin-bottom:4px;font-size:1.6rem;display:flex}.star{color:rgba(var(--fg-rgb), .16)}.star--on{color:var(--star);text-shadow:0 0 18px #ffd4798c}.modal-title{margin:0;font-size:1.3rem}.modal-sub{margin:4px 0 18px;font-size:.8rem;font-weight:600}.win-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;display:grid}.win-stat{background:rgba(var(--fg-rgb), .05);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:2px;padding:10px 6px;display:flex}.win-stat-key{color:var(--muted);font-size:.68rem}.win-stat-value{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.modal-actions{flex-direction:column;gap:8px;display:flex}@media (width<=980px){.layout{grid-template-columns:minmax(0,1fr)}.panel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}}@media (width<=620px){.app{padding:18px 12px 32px}.app-header{gap:10px;margin-bottom:16px}.brand-text p{display:none}.header-actions{justify-content:space-between;gap:6px;width:100%}.seg-en{display:none}.seg-btn{padding:8px 6px;font-size:.82rem}.panel{grid-template-columns:minmax(0,1fr)}.board-card{border-radius:16px;padding:10px}.board-shell{min-height:240px;padding-top:6px}.timer{padding:7px 11px}.btn{padding:8px 11px;font-size:.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
