:root{--felt:#0e5a4a;--felt-dark:#083d32;--ivory:#f7f0dc;--ivory-edge:#e2d6b3;--back:#2a9d78;--back-dark:#1d6f56;--gold:#f2c14e;--ink:#12231e;--text:#f4efe0;font-family:Yu Gothic UI,Hiragino Sans,Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:radial-gradient(ellipse at 50% 30%, var(--felt) 0%, var(--felt-dark) 100%);color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.screen{flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;padding:10px 16px;display:flex}.title{text-align:center;justify-content:center;align-items:center;gap:6px}.title h1{letter-spacing:.15em;color:var(--gold);text-shadow:0 3px #00000059;margin:8px 0 0;font-size:3rem}.title .sub{opacity:.85;margin:0 0 14px}.title-tiles{gap:10px;margin-bottom:8px;display:flex}.how{text-align:left;opacity:.92;max-width:360px;margin:8px 0 18px;padding-left:1.2em;font-size:.92rem;line-height:1.7}.buttons{flex-direction:column;gap:10px;width:min(300px,100%);display:flex}.best{color:var(--gold);margin:16px 0 0;font-size:.9rem}.credit{opacity:.5;margin:22px 0 0;font-size:.75rem}.btn{font:inherit;cursor:pointer;color:var(--text);background:#ffffff14;border:2px solid #ffffff59;border-radius:12px;padding:13px 20px;font-size:1.05rem;font-weight:700}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--gold);color:#3a2a00;border-color:#ffe29a;box-shadow:0 4px #b88a1d}.hud{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.hud-l{flex-wrap:wrap;gap:6px;display:flex}.hud-r{flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.chip{background:#00000047;border-radius:999px;padding:4px 11px;font-size:.85rem;font-weight:700}.chip.dim{opacity:.85;font-weight:400}.score{color:var(--gold);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800}.best-small{opacity:.65;font-size:.7rem}.combo-bar{align-items:center;gap:8px;height:22px;margin:4px 0 2px;display:flex}.combo-label{color:#ffd36b;letter-spacing:.05em;min-width:78px;font-size:.8rem;font-weight:800}.combo-track{background:#0000004d;border-radius:3px;flex:1;height:6px;overflow:hidden}.combo-fill{transform-origin:0;background:linear-gradient(90deg,#ffb347,#ffe29a);height:100%;animation:linear forwards drain;display:block}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.board{flex:1;min-height:0;position:relative}.tile{background:linear-gradient(160deg, #fffaf0 0%, var(--ivory) 55%, var(--ivory-edge) 100%);box-shadow:inset 0 2px 0 #ffffffe6, var(--t,4px) var(--t,4px) 0 var(--back), calc(var(--t,4px) + 1px) calc(var(--t,4px) + 1px) 0 var(--back-dark), calc(var(--t,4px) * 1.8) calc(var(--t,4px) * 2.2) calc(var(--t,4px) * 2.2) #00000080;cursor:pointer;animation:.38s both drop;animation-delay:var(--d,0s);touch-action:manipulation;border-radius:14%;transition:transform .22s,opacity .22s,filter .15s;position:absolute}.tile-inner{position:absolute;inset:5% 6%}.tile.dim{filter:brightness(.7)saturate(.75)}.tile.removed{opacity:0;pointer-events:none;animation:none;transform:scale(.55)translateY(-8px)}.tile.selected{outline:3px solid var(--gold);outline-offset:0;filter:none;transform:translateY(-4px)}.tile.hint{filter:none;outline:3px solid #5ee0ff;animation:.7s ease-in-out infinite pulse}.tile.back{background:repeating-linear-gradient(45deg, #ffffff14 0 4px, transparent 4px 8px), linear-gradient(160deg, #38b48a, var(--back-dark))}.tile.shake{animation:.25s shake}.tile.deco{width:44px;height:56px;animation:.5s both drop;animation-delay:calc(var(--i) * 90ms);--t:3px;cursor:default;position:relative}@keyframes drop{0%{opacity:0;transform:translateY(-18px)scale(.9)}to{opacity:1;transform:none}}@keyframes pulse{50%{transform:translateY(-3px)}}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.gain{color:#fff3c4;text-shadow:0 2px #b88a1d,0 0 14px #ffc83ccc;pointer-events:none;z-index:99999;font-size:2rem;font-weight:900;animation:.9s ease-out forwards floatup;position:absolute;top:40%;left:50%;transform:translate(-50%)}.gain small{font-size:1.1rem}@keyframes floatup{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-60px)}}.tools{padding:8px 0 max(4px, env(safe-area-inset-bottom));gap:6px;display:flex}.tool{font:inherit;cursor:pointer;color:var(--text);background:#00000040;border:1px solid #ffffff47;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 2px;font-size:.78rem;font-weight:700;line-height:1.1;display:flex}.tool b{color:var(--gold);font-size:1rem}.tool span{opacity:.75;font-size:.7rem;font-weight:400}.tool.toggle.on span{color:#9cf0c8;opacity:1}.tool:disabled{opacity:.4;cursor:default}.overlay{z-index:100000;background:#0000008c;justify-content:center;align-items:center;padding:20px;animation:.25s fade;display:flex;position:fixed;inset:0}.modal{border:2px solid var(--gold);text-align:center;background:#0b3f33;border-radius:18px;flex-direction:column;gap:10px;width:min(340px,100%);padding:24px 22px;display:flex;box-shadow:0 12px 40px #00000080}.modal h2{color:var(--gold);margin:0;font-size:1.4rem}.modal .big{margin:0;font-size:2.2rem;font-weight:900}.modal .note{opacity:.85;margin:0 0 6px;font-size:.85rem;line-height:1.5}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.tile,.gain,.overlay,.tile.deco{transition:none!important;animation:none!important}}.help-btn{color:var(--text);font:inherit;cursor:pointer;border:0;font-size:.8rem}.modal.help{max-height:92dvh;overflow-y:auto}.modal .note.left{text-align:left;font-size:.88rem}.help-svg{background:#0003;border-radius:10px;width:100%;height:auto}.tile.blocker{outline-offset:0;filter:none;outline:3px solid #ff5a4d;animation:1.4s forwards blink}@keyframes blink{0%,40%,80%{outline-color:#ff5a4d;box-shadow:0 0 14px 3px #ff5a4de6}20%,60%{box-shadow:none;outline-color:#0000}to{outline-color:#0000}}.toast{color:#fff;white-space:nowrap;z-index:99999;pointer-events:none;background:#000c;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:700;animation:2s forwards toast;position:absolute;top:6px;left:50%;transform:translate(-50%)}@keyframes toast{0%{opacity:0}8%,80%{opacity:1}to{opacity:0}}.scorebar{justify-content:center;align-items:baseline;gap:10px;margin:2px 0 0;display:flex}.score-label{letter-spacing:.2em;opacity:.7;font-size:.75rem;font-weight:800}.score-num{color:var(--gold);font-variant-numeric:tabular-nums;text-shadow:0 2px #00000059;text-align:center;min-width:3ch;font-size:2.6rem;font-weight:900;line-height:1.05;display:inline-block}.score-num.pop{animation:.45s scorepop}@keyframes scorepop{0%{transform:scale(1)}30%{color:#fff3c4;transform:scale(1.28)}to{transform:scale(1)}}.hud{align-items:center}.gain{font-size:1.7rem}
