.MahjongGame_wrap__6yp5Q{display:flex;flex-direction:column;gap:var(--space-5);max-width:var(--container-app);margin:0 auto;padding:var(--space-6) var(--gutter) var(--space-12)}.MahjongGame_skeleton____mGf{height:460px;border-radius:var(--radius-lg);background:linear-gradient(100deg,var(--bg-sunken) 30%,var(--surface-raised) 50%,var(--bg-sunken) 70%);background-size:200% 100%;animation:MahjongGame_shimmer__0pXgg 1.4s var(--ease-out) infinite}@keyframes MahjongGame_shimmer__0pXgg{to{background-position:-200% 0}}.MahjongGame_head__z_xyT{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.MahjongGame_title__paJju{font-family:var(--font-display);font-size:var(--size-title-l);font-weight:var(--w-bold);letter-spacing:var(--track-snug);color:var(--text-strong);margin:0}.MahjongGame_sub__gAg7U{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--size-body-s)}.MahjongGame_stats__U6nCv{display:flex;gap:var(--space-5);margin:0}.MahjongGame_stat__STxLA{text-align:right}.MahjongGame_stat__STxLA dt{font-size:var(--size-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-faint)}.MahjongGame_stat__STxLA dd{margin:2px 0 0;font-family:var(--font-mono);font-size:var(--size-title-s);font-weight:var(--w-semibold);color:var(--text-strong)}.MahjongGame_tiers__uSjrm{display:flex;gap:var(--space-2);flex-wrap:wrap}.MahjongGame_tierBtn__rAcwk{border:var(--bw-hair) solid var(--border-rule);background:var(--surface-card);color:var(--text-body);border-radius:var(--radius-sm);padding:6px 16px;font-size:var(--size-body-s);font-weight:var(--w-medium);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.MahjongGame_tierBtn__rAcwk:hover{border-color:var(--accent)}.MahjongGame_tierOn__c5k3M{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.MahjongGame_boardZone__XkniI{position:relative;display:flex;justify-content:center;padding:var(--space-6) var(--space-4);background:var(--bg-sunken);border:var(--bw-hair) solid var(--border-hair);border-radius:var(--radius-lg);overflow:auto}.MahjongGame_board__clH40{position:relative;margin:0 auto}.MahjongGame_tile__ib7kH{position:absolute;width:34px;height:42px;padding:0;border:var(--bw-hair) solid var(--line-heavy);border-radius:var(--radius-sm);background:linear-gradient(160deg,#fffef9,#f4efe2);box-shadow:1px 2px 0 var(--line-heavy),2px 3px 4px rgba(28,26,20,.18);display:flex;align-items:center;justify-content:center;cursor:default;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.MahjongGame_glyph__1ZpcV{font-size:26px;line-height:1;color:var(--ink-900)}.MahjongGame_blocked__g1FiW{filter:brightness(.9) saturate(.85);opacity:.82}.MahjongGame_free__fxmEH{cursor:pointer}.MahjongGame_free__fxmEH:hover{transform:translateY(-1px);box-shadow:1px 2px 0 var(--line-heavy),3px 5px 8px rgba(28,26,20,.24)}.MahjongGame_selected__Cu7SR{outline:var(--bw-heavy) solid var(--honey-500);outline-offset:1px;background:linear-gradient(160deg,#fff8e8,#fbeacf)}.MahjongGame_hint__UIHsp{animation:MahjongGame_hintPulse__CKmoU .7s var(--ease-out) infinite alternate}@keyframes MahjongGame_hintPulse__CKmoU{0%{outline:var(--bw-heavy) solid var(--status-accepted);outline-offset:1px}to{outline:var(--bw-heavy) solid var(--navy-300);outline-offset:3px}}.MahjongGame_tile__ib7kH:disabled{cursor:default}.MahjongGame_toast__Gy1Yr{position:absolute;top:var(--space-3);left:50%;transform:translateX(-50%);z-index:9999;background:var(--ink-900);color:var(--white);padding:6px 14px;border-radius:var(--radius-sm);font-size:var(--size-body-s);box-shadow:var(--shadow-3)}.MahjongGame_result__fCNAU{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:var(--bw-rule) solid var(--border-rule)}.MahjongGame_result__fCNAU strong{display:block;font-size:var(--size-title-s);color:var(--text-strong)}.MahjongGame_resultNote__hxa4q{display:block;margin-top:2px;font-size:var(--size-body-s);color:var(--text-muted)}.MahjongGame_won__W3xsT{background:var(--status-sourced-tint);border-color:var(--tint-sourced-border)}.MahjongGame_deadResult__rl5Sr{background:var(--status-emerging-tint);border-color:var(--honey-300)}.MahjongGame_shareBtn__qFypv{display:inline-flex;align-items:center;gap:var(--space-2);border:none;background:var(--accent);color:var(--text-on-accent);padding:10px 18px;border-radius:var(--radius-md);font-weight:var(--w-semibold);font-size:var(--size-body-s);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out)}.MahjongGame_shareBtn__qFypv:hover{background:var(--accent-hover)}.MahjongGame_tools__Ivt0O{display:flex;align-items:center;gap:var(--space-3)}.MahjongGame_hintText__dXF4q{font-size:var(--size-body-s);color:var(--text-muted)}.MahjongGame_sink__IYvAh{border:var(--bw-hair) solid var(--border-hair);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);background:var(--surface-card)}.MahjongGame_sinkHead__SF0AX{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.MahjongGame_sinkTitle__zr_53{font-weight:var(--w-semibold);color:var(--text-strong)}.MahjongGame_sinkNote__iEwL0{font-size:var(--size-caption);color:var(--text-faint)}.MahjongGame_sinkRow__Q8SV7{display:flex;flex-wrap:wrap;gap:var(--space-3)}.MahjongGame_boost__z3Qzf{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:92px;padding:var(--space-3);border:var(--bw-hair) solid var(--border-rule);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-body);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.MahjongGame_boost__z3Qzf:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-1)}.MahjongGame_boost__z3Qzf:disabled{opacity:.5;cursor:default}.MahjongGame_boostLabel__mXaDt{font-size:var(--size-body-s);font-weight:var(--w-medium)}.MahjongGame_cost__N_q4p{font-size:var(--size-micro);color:var(--honey-600);font-weight:var(--w-semibold)}.MahjongGame_h24__YR9cC .MahjongGame_cost__N_q4p{color:var(--status-accepted)}