:root{--bg:#0f1115;--panel:#171a21;--board:#f0c987;--line:#3a2e1a;--accent:#ff5a3c;--text:#f2f2f2;--muted:#9aa0aa;font-family:system-ui,Segoe UI,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}#root{flex-direction:column;align-items:center;min-height:100vh;padding:24px 16px 48px;display:flex}.primary-btn{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:999px;margin-top:20px;padding:12px 44px;font-size:17px;font-weight:700;transition:transform .1s,filter .15s}.primary-btn:hover{filter:brightness(1.1)}.primary-btn:active{transform:scale(.96)}.diff-btn{color:var(--text);cursor:pointer;background:#f0c98714;border:1.5px solid #f0c98740;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:14px 20px;transition:border-color .15s,background .15s,transform .1s;display:flex}.diff-btn:hover:not(:disabled){border-color:var(--accent);background:#ff5a3c14}.diff-btn:active:not(:disabled){transform:scale(.98)}.diff-btn:disabled{opacity:.4;cursor:default}.diff-name{letter-spacing:.08em;font-size:17px;font-weight:800}.diff-desc{color:var(--muted);font-size:12px}.ghost-btn{color:var(--text);border:1.5px solid var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:12px 32px;font-size:15px;font-weight:600}.overlay{background:#0a0a0eb8;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;animation:.15s ease-out fade-in;display:flex;position:absolute;inset:0}.mate-pop{color:var(--accent);text-shadow:0 2px 18px #ff5a3c8c;font-size:52px;font-weight:800;animation:.45s cubic-bezier(.2,1.6,.4,1) mate-pop}.rank-pop{animation:.55s cubic-bezier(.2,1.6,.4,1) mate-pop}.shake{animation:.4s shake}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes mate-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}
