:root{--sky: #7fd3ff;--sky2: #c9f0ff;--card: #ffffff;--edge: #d3e9f3;--ink: #0b3954;--muted: #4f6d80;--accent: #ff8a1f;--blue: #1c7ed6;--green: #0ca678;--purple: #7048e8;--gold: #f59f00;--danger: #e03131;--soft: #eaf6fb}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;color:var(--ink);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#7fd3ff}html.deco,html.deco body{background:radial-gradient(circle at 86% 12%,rgba(255,246,176,.95) 0 46px,rgba(255,246,176,.35) 47px 70px,transparent 71px),radial-gradient(ellipse 90px 30px at 14% 16%,rgba(255,255,255,.9) 0 98%,transparent 100%),radial-gradient(ellipse 70px 24px at 30% 9%,rgba(255,255,255,.8) 0 98%,transparent 100%),repeating-linear-gradient(90deg,#4cc35a 0,#4cc35a 80px,#3fae4e 80px,#3fae4e 160px) bottom / 100% 32% no-repeat,linear-gradient(180deg,#7fd3ff,#c9f0ff 66%,#fff 68%,#fff 69%,#4cc35a 69%)}#game{position:fixed;inset:env(safe-area-inset-top) 0 env(safe-area-inset-bottom) 0}#game canvas{box-shadow:0 0 60px #083c6459}.hidden{display:none!important}.topbar{position:fixed;left:50%;top:calc(10px + env(safe-area-inset-top));transform:translate(-50%);width:min(430px,calc(100% - 20px));z-index:6;display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--edge);border-radius:16px;padding:8px 10px 8px 12px;box-shadow:0 8px 24px #0a325a47}.topbar .txt{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px;color:var(--muted)}.topbar .txt b{font-size:15px;color:var(--ink)}.spinner{width:20px;height:20px;flex:none;display:inline-block;border-radius:50%;border:3px solid var(--edge);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#08325080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;padding:14px}.card{width:min(380px,100%);max-height:calc(100% - 12px);display:flex;flex-direction:column;background:var(--card);border:3px solid #fff;border-radius:22px;padding:18px;text-align:center;box-shadow:0 14px 44px #08285061;animation:pop .22s ease-out;overflow-y:auto}.card.wide{width:min(460px,100%)}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.card h2{margin:0 0 6px;font-size:25px;font-weight:900;letter-spacing:.01em}.card h2.win{color:var(--gold);text-shadow:0 2px 0 #fff3bf}.card h3{margin:14px 0 8px;font-size:14px;text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.scroll{overflow-y:auto;margin:0 -6px;padding:0 6px;touch-action:pan-y;min-height:0}.muted{color:var(--muted);font-size:14px;margin:6px 0 2px}.note{background:#fff4e6;color:#8a4b00;border-radius:12px;padding:10px 12px;font-size:14px;font-weight:700;margin:6px 0 2px}.coins{color:var(--gold);font-weight:800;margin-bottom:4px;font-size:18px}.gold{color:var(--gold)}.badge{display:inline-block;align-self:center;margin:8px 0 0;padding:5px 12px;border-radius:999px;background:#fff3bf;color:#7a4b00;font-weight:800;font-size:14px}button{width:100%;margin-top:10px;padding:13px;min-height:48px;border:0;border-radius:14px;font-size:16px;font-weight:800;color:#fff;background:var(--accent);cursor:pointer;font-family:inherit;box-shadow:0 4px #00000029;transition:transform .06s}button:active{transform:translateY(2px) scale(.985);box-shadow:0 2px #00000029}button.alt{background:var(--blue)}button.green{background:var(--green)}button.purple{background:var(--purple)}button.ad{background:#12b886}button.secondary{background:var(--soft);color:var(--ink);box-shadow:0 4px #143c641f}button.danger{background:#fff0f0;color:var(--danger);box-shadow:0 4px #a01e1e1f}button.small{width:auto;min-height:36px;margin:0;padding:8px 12px;font-size:14px}button:disabled{opacity:.45;cursor:default}button.pulse{animation:pulse .9s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04);box-shadow:0 0 0 6px #ff7a1a40}}.row{display:flex;gap:8px;align-items:stretch}.row>button{flex:1}.row>input{flex:1.3;min-width:0;margin-top:10px}input{border:2px solid var(--edge);border-radius:14px;padding:12px;font-size:17px;font-weight:700;color:var(--ink);font-family:inherit;background:#fff;text-align:center;user-select:text;-webkit-user-select:text;outline:none}input:focus{border-color:var(--blue)}input:disabled{opacity:.5}#friendCode{text-transform:uppercase;letter-spacing:.18em}.field{display:block;margin-top:12px;text-align:left;font-size:13px;font-weight:700;color:var(--muted)}.code{font-size:44px;font-weight:900;letter-spacing:.16em;color:var(--blue);margin:2px 0 6px;user-select:text;-webkit-user-select:text}.link{background:var(--soft);border-radius:12px;padding:9px 10px;font-size:13px;word-break:break-all;color:var(--ink);user-select:text;-webkit-user-select:text}.wait{margin:14px 0 0;color:var(--muted);font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px}.versus{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:10px 0 4px}.versus .side{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:800;font-size:13px}.versus .side span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.versus img{width:54px;height:54px;filter:drop-shadow(0 3px 2px rgba(10,40,80,.3))}.versus .score{font-size:40px;font-weight:900;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:8px 0 0}.stats div{background:var(--soft);border-radius:12px;padding:8px 4px;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--muted)}.stats b{font-size:22px;color:var(--ink)}.stats b.gold{color:var(--gold)}.stats b.up{color:#2b8a3e}.stats b.down{color:var(--danger)}.levels{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:6px}.levels button.lvl{margin:0;min-height:52px;padding:8px 10px;display:flex;align-items:center;gap:8px;text-align:left;background:var(--soft);color:var(--ink);box-shadow:0 4px #143c641f;border:3px solid transparent}.levels button.lvl b{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--purple);color:#fff;font-size:15px}.levels button.lvl span{flex:1;font-size:15px}.levels button.lvl i{font-style:normal;font-size:12px;font-weight:900;color:var(--green)}.levels button.lvl.done b{background:var(--green)}.levels button.lvl.next{border-color:var(--accent);background:#fff4e6}.levels button.lvl.next i{color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.item{background:var(--soft);border:3px solid transparent;border-radius:14px;padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:4px}.item.sel{border-color:var(--accent);background:#fff4e6}.item img{width:52px;height:52px;object-fit:contain}.grid.tall .item img{width:52px;height:84px}.item .nm{font-size:13px;font-weight:800}.item button{margin:2px 0 0;padding:6px 4px;min-height:34px;font-size:13px;border-radius:10px}:root{--gk-toast-bg: #ffffff;--gk-toast-fg: #14324a;--gk-toast-border: #ff8a1f;--gk-toast-shadow: 0 8px 24px rgba(0, 0, 0, .18)}.badge{line-height:1.35}.modes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.modes button{margin:0;min-height:42px;padding:8px 6px;font-size:14px}.card h3{margin:12px 0 6px}.grid.wide{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.grid.wide .item img{width:120px;height:80px;border-radius:10px}.item .sp{font-size:11px;font-weight:800;color:#b26b00}.cupList{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}.cupRow{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:14px;padding:8px 10px;border:3px solid transparent;text-align:left}.cupRow img{width:44px;height:44px;flex:none}.cupRow .txt{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px;color:var(--muted)}.cupRow .txt b{font-size:15px;color:var(--ink)}.cupRow i{font-style:normal;font-weight:900;font-size:18px}.cupRow.done i{color:var(--green)}.cupRow.next{border-color:var(--accent);background:#fff4e6}.cupRow.next i{color:var(--accent)}.cupRow.out{border-color:var(--danger);background:#fff0f0}.cupRow.out i{color:var(--danger)}.badge.daily{background:#e6fcf5;color:#087f5b}
