:root{--paper: #fbf9f5;--card: #ffffff;--ink: #1c2229;--ink-2: #46505c;--muted: #7b8794;--line: #e3ddd2;--blue: #2f6fd0;--blue-soft: #e5eefb;--orange: #e07a3f;--orange-soft: #fcefe4;--green: #2e8b62;--green-soft: #e3f3ea;--red: #c4553d;--shadow: 0 1px 2px rgba(28, 34, 41, .05), 0 8px 24px rgba(28, 34, 41, .06);--r: 18px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Thonburi,Noto Sans Thai,system-ui,sans-serif;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.app{height:100%;display:flex;flex-direction:column}.big-btn{background:var(--blue);color:#fff;border-radius:var(--r);padding:22px 40px;font-size:26px;font-weight:650;box-shadow:var(--shadow);transition:transform .12s ease,filter .12s ease}.big-btn:active{transform:scale(.97);filter:brightness(.94)}.big-btn.ghost{background:var(--card);color:var(--ink);border:2px solid var(--line)}.big-btn.quiet{background:transparent;box-shadow:none;color:var(--muted);font-size:18px;padding:14px 20px}.home{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center}.home h1{font-size:46px;margin:0;letter-spacing:-.02em}.home .sub{color:var(--muted);font-size:19px;margin:0 0 18px;max-width:30ch;line-height:1.6}.home .choices{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:8px}.home .foot{margin-top:26px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.warnbar{background:var(--orange-soft);color:#8a4a1c;border-radius:12px;padding:12px 18px;font-size:15px;max-width:46ch;line-height:1.55}.topbar{display:flex;align-items:center;gap:16px;padding:18px 28px;border-bottom:1px solid var(--line)}.dots{display:flex;gap:6px;flex:1;flex-wrap:wrap}.dot{width:12px;height:12px;border-radius:50%;background:var(--line);transition:background .25s}.dot.done{background:var(--blue)}.dot.now{background:var(--orange);transform:scale(1.35)}.topbar .count{font-size:17px;color:var(--muted);font-variant-numeric:tabular-nums}.stage{flex:1;display:grid;grid-template-columns:1fr auto;gap:24px;padding:20px 28px 24px;align-items:center;min-height:0}.qside{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-width:0}.equation{display:flex;align-items:center;gap:18px;font-size:clamp(56px,11vh,104px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.equation .op{color:var(--muted);font-weight:400}.equation .slot{min-width:1.9em;padding:0 10px;border-bottom:6px solid var(--line);text-align:center;color:var(--blue)}.equation .slot.empty{color:var(--line)}.equation .slot.shake{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-9px)}75%{transform:translate(9px)}}.equation .known{color:var(--ink)}.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:min(38vw,330px)}.key{background:var(--card);border:2px solid var(--line);border-radius:16px;font-size:34px;font-weight:600;padding:0;aspect-ratio:1.45 / 1;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #1c22290d;transition:transform .1s ease,background .1s ease}.key:active{transform:scale(.94);background:var(--blue-soft)}.key.wide{grid-column:span 2;aspect-ratio:auto;padding:20px 0}.key.ok{background:var(--green);color:#fff;border-color:var(--green)}.key.ok:disabled{opacity:.35}.key.del{font-size:26px;color:var(--muted)}.bottombar{display:flex;align-items:center;justify-content:space-between;padding:0 28px 22px;gap:12px}.help-btn{background:var(--orange-soft);color:#8a4a1c;border-radius:999px;padding:16px 30px;font-size:20px;font-weight:600}.help-btn:active{filter:brightness(.95)}.replay-btn{color:var(--muted);font-size:17px;padding:14px 18px}.mk{display:flex;flex-direction:column;align-items:center;gap:16px}.frames{display:flex;gap:22px;align-items:flex-start}.frame{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;background:var(--card);border:3px solid var(--line);border-radius:12px;padding:7px}.frame.full{border-color:var(--green);background:var(--green-soft)}.cell{width:clamp(24px,4.6vh,40px);aspect-ratio:1;border-radius:50%;background:#f0ece4;display:block;transition:background .35s ease,transform .35s ease}.cell.blue{background:var(--blue)}.cell.orange{background:var(--orange)}.cell.pop{animation:pop .4s ease}@keyframes pop{0%{transform:scale(.3)}60%{transform:scale(1.18)}to{transform:scale(1)}}.loose{display:flex;gap:7px;min-height:clamp(24px,4.6vh,40px);align-items:center}.loose .cell.orange{animation:pop .3s ease}.mk .caption{font-size:20px;color:var(--ink-2);min-height:1.6em;text-align:center;max-width:34ch;line-height:1.5}.mk .tally{font-size:15px;color:var(--muted);letter-spacing:.04em}.hint-tag{display:inline-flex;align-items:center;gap:8px;align-self:center;background:var(--orange-soft);color:#8a4a1c;border-radius:999px;padding:7px 16px;font-size:15px;font-weight:600}.flash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:90px;opacity:0;z-index:20}.flash.show{animation:flash .85s ease}@keyframes flash{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}.result{flex:1;overflow-y:auto;padding:32px clamp(20px,6vw,64px) 60px;-webkit-overflow-scrolling:touch}.result .wrap{max-width:860px;margin:0 auto}.result h1{font-size:32px;margin:0 0 6px;letter-spacing:-.02em}.result .eyebrow{font-size:13px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:18px}.verdict{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;padding:22px 26px;box-shadow:var(--shadow);margin-bottom:22px}.verdict .start{font-size:13px;letter-spacing:.1em;color:var(--blue);font-weight:700;text-transform:uppercase}.verdict h2{font-size:24px;margin:6px 0 14px;line-height:1.35}.verdict ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px}.verdict li{font-size:16px;line-height:1.6;color:var(--ink-2)}.signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:22px}.sig{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow)}.sig .lbl{font-size:13px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.sig .val{font-size:38px;font-weight:650;font-variant-numeric:tabular-nums;margin:6px 0 2px;letter-spacing:-.02em}.sig .val small{font-size:17px;font-weight:500;color:var(--muted);margin-left:4px}.sig .tag{display:inline-block;font-size:14px;font-weight:650;padding:4px 11px;border-radius:999px;margin-bottom:8px}.tag.good{background:var(--green-soft);color:var(--green)}.tag.warn{background:var(--orange-soft);color:#8a4a1c}.tag.bad{background:#fbe8e3;color:var(--red)}.tag.neutral{background:#eceff3;color:var(--ink-2)}.sig p{font-size:15px;color:var(--muted);line-height:1.6;margin:6px 0 0}table{width:100%;border-collapse:collapse;background:var(--card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}th,td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line);font-size:15.5px}th{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f7f4ee}tbody tr:last-child td{border-bottom:0}td.num{text-align:right;font-variant-numeric:tabular-nums}.result h3{font-size:18px;margin:30px 0 12px}.cautions{background:var(--orange-soft);border-radius:14px;padding:18px 22px;margin-top:22px}.cautions b{display:block;margin-bottom:8px;color:#8a4a1c;font-size:15px}.cautions ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px}.cautions li{font-size:15px;line-height:1.6;color:#7a4419}.result .actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.summary{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px;text-align:center}.summary h1{font-size:40px;margin:0}.summary .row{display:flex;gap:34px;margin:10px 0 6px;flex-wrap:wrap;justify-content:center}.summary .stat{display:flex;flex-direction:column;gap:4px}.summary .stat b{font-size:40px;font-weight:650;font-variant-numeric:tabular-nums}.summary .stat span{font-size:15px;color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:720px),(orientation:portrait){.stage{grid-template-columns:1fr;justify-items:center;gap:14px}.pad{width:min(86vw,320px)}.equation{font-size:clamp(40px,9vh,72px)}}
