:root[data-theme=classic]{color-scheme:dark;--c-bg: #1c1207;--c-felt-1: #2a8a5c;--c-felt-2: #1e6b45;--c-felt-3: #124a30;--c-felt-line: rgba(255, 255, 255, .05);--c-frame: #d9b45b;--c-frame-dark: #3c2410;--c-frame-outer: linear-gradient(160deg, #6b4423, #4a2c12 45%, #5d3a1a);--c-vignette: inset 0 0 60px rgba(0, 0, 0, .55);--c-panel-bg: rgba(10, 30, 18, .58);--c-panel-border: rgba(217, 180, 91, .45);--c-panel-blur: 4px;--c-text: #f2edda;--c-muted: #cfe3c0;--c-gold: #f3d98a;--c-card-bg: linear-gradient(155deg, #fffef8, #f4eeda);--c-card-border: #c9bd96;--c-card-shadow: 0 2px 6px rgba(0, 0, 0, .35);--c-red: #bf3126;--c-black: #26251f;--c-card-back: linear-gradient(135deg, #a02c2c, #7a1f1f);--c-card-back-border: #e8cfa0;--c-btn-bg: rgba(15, 40, 24, .72);--c-btn-border: rgba(233, 220, 180, .5);--c-btn-text: #efe9d2;--c-primary-bg: linear-gradient(180deg, #3da872, #2a7d52);--c-primary-border: #9fdcb6;--c-primary-text: #ffffff;--c-warn-bg: linear-gradient(180deg, #e0a14f, #c07a2e);--c-warn-border: #ffd9a6;--c-warn-text: #ffffff;--c-banner-bg: linear-gradient(180deg, #f7dd9a, #e0b558);--c-banner-text: #4a2c12;--c-banner-border: #fff3cf;--c-turn-ring: rgba(243, 217, 138, .85);--c-turn-glow: 0 0 18px rgba(243, 217, 138, .4);--c-mine-bg: linear-gradient(180deg, #f7dd9a, #e0b558);--c-mine-text: #4a2c12;--c-badge-reveal: #c2542e;--c-badge-chuan: #8a5fc2;--c-badge-s4: #3f6d33;--c-badge-bid: #6b4a1a;--c-badge-done: #2f9e6e;--c-avatar-bg: radial-gradient(circle at 35% 30%, #f6e7b6, #d9b45b 70%);--c-avatar-text: #4a2c12;--c-avatar-radius: 50%;--c-title-color: #f3d98a;--c-title-font: "KaiTi", "STKaiti", serif;--c-overlay: rgba(6, 20, 12, .62);--c-modal-bg: linear-gradient(180deg, #2b4a34, #1c3524);--c-modal-border: rgba(217, 180, 91, .7);--c-toast-bg: rgba(20, 46, 30, .95);--c-toast-border: rgba(217, 180, 91, .5);--c-sel-ring: #f3d98a;--c-shadow: 0 4px 12px rgba(0, 0, 0, .5);--c-radius: 12px}:root[data-theme=modern]{color-scheme:dark;--c-bg: #070a12;--c-felt-1: #131b2e;--c-felt-2: #0e1424;--c-felt-3: #090d18;--c-felt-line: rgba(255, 255, 255, .02);--c-frame: rgba(255, 255, 255, .12);--c-frame-dark: rgba(255, 255, 255, .04);--c-frame-outer: linear-gradient(180deg, #0d1322, #090d17);--c-vignette: inset 0 0 80px rgba(0, 0, 0, .6);--c-panel-bg: rgba(255, 255, 255, .05);--c-panel-border: rgba(255, 255, 255, .1);--c-panel-blur: 8px;--c-text: #e8ecf6;--c-muted: #8d99b5;--c-gold: #f0b350;--c-card-bg: linear-gradient(160deg, #ffffff, #eef1fa);--c-card-border: rgba(0, 0, 0, .08);--c-card-shadow: 0 3px 10px rgba(0, 0, 0, .45);--c-red: #f43f5e;--c-black: #1f2740;--c-card-back: linear-gradient(135deg, #2a3550, #1b2338);--c-card-back-border: rgba(159, 177, 255, .55);--c-btn-bg: rgba(255, 255, 255, .06);--c-btn-border: rgba(255, 255, 255, .14);--c-btn-text: #dfe5f3;--c-primary-bg: linear-gradient(90deg, #5b76f6, #3fc9c0);--c-primary-border: transparent;--c-primary-text: #ffffff;--c-warn-bg: linear-gradient(90deg, #f0a24f, #e4763f);--c-warn-border: transparent;--c-warn-text: #ffffff;--c-banner-bg: linear-gradient(90deg, #5b76f6, #3fc9c0);--c-banner-text: #ffffff;--c-banner-border: transparent;--c-turn-ring: rgba(108, 140, 255, .85);--c-turn-glow: 0 0 20px rgba(108, 140, 255, .35);--c-mine-bg: linear-gradient(90deg, #5b76f6, #3fc9c0);--c-mine-text: #ffffff;--c-badge-reveal: linear-gradient(90deg, #ff7a4d, #ff5a7a);--c-badge-chuan: linear-gradient(90deg, #9a6bff, #7a4dff);--c-badge-s4: #2fae87;--c-badge-bid: #3d4c8f;--c-badge-done: linear-gradient(90deg, #3fc9a0, #2fae87);--c-avatar-bg: linear-gradient(135deg, #9db1ff, #43d6c9);--c-avatar-text: #0c111d;--c-avatar-radius: 12px;--c-title-color: #9db1ff;--c-title-font: "Microsoft YaHei", system-ui, sans-serif;--c-overlay: rgba(4, 7, 14, .7);--c-modal-bg: linear-gradient(180deg, #151d31, #101626);--c-modal-border: rgba(255, 255, 255, .12);--c-toast-bg: rgba(21, 29, 49, .95);--c-toast-border: rgba(255, 255, 255, .14);--c-sel-ring: #43d6c9;--c-shadow: 0 6px 18px rgba(0, 0, 0, .55);--c-radius: 14px}:root{--card-h: clamp(52px, calc(var(--app-h) * .19), 116px);--card-w: calc(var(--card-h) * .7)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--c-bg);color:var(--c-text);overflow:hidden;overscroll-behavior:none}:root{--app-w: 100vw;--app-h: 100dvh}#app{position:relative;width:var(--app-w);height:var(--app-h);overflow:hidden}@media(max-width:700px)and (orientation:portrait){html.force-rotate #app{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg)}}button,.card{touch-action:manipulation;font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:clamp(5px,calc(var(--app-h) * .011),9px) clamp(10px,2vw,15px);border-radius:var(--c-radius);border:1px solid var(--c-btn-border);background:var(--c-btn-bg);color:var(--c-btn-text);cursor:pointer;font-size:clamp(12px,calc(var(--app-h) * .019),14px);line-height:1.2;min-height:clamp(32px,calc(var(--app-h) * .065),42px);user-select:none;transition:transform .08s,background .15s,opacity .15s,filter .15s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.32;cursor:not-allowed;transform:none}.btn.primary{background:var(--c-primary-bg);border-color:var(--c-primary-border);color:var(--c-primary-text);font-weight:700}.btn.warn{background:var(--c-warn-bg);border-color:var(--c-warn-border);color:var(--c-warn-text);font-weight:600}.btn.big{width:100%;padding:13px;font-size:16px;margin-top:6px}.btn.active{filter:brightness(1.25);border-color:var(--c-turn-ring)}.btn.theme-btn{padding:9px 11px}.start-screen{width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:14px;padding:calc(env(safe-area-inset-top) + 14px) 18px calc(env(safe-area-inset-bottom) + 18px);background:radial-gradient(ellipse 90% 50% at 50% -10%,var(--c-felt-1),transparent 60%),var(--c-bg)}.start-screen>.settings-card{margin:auto;width:min(560px,100%)}.start-content{flex:1;min-height:0;display:grid;width:100%;max-width:1100px;margin:0 auto}.panel-label{display:block;font-size:12.5px;color:var(--c-muted);margin-bottom:7px;letter-spacing:1px}.flex-row{display:flex;gap:8px;flex-wrap:wrap}.tip-text{font-size:12px;color:var(--c-muted);line-height:1.6}.rejoin-card{display:flex;align-items:center;gap:8px;background:var(--c-panel-bg);border:1px solid var(--c-turn-ring);border-radius:12px;padding:8px 10px}.rejoin-text{flex:1;min-width:0;font-size:12.5px;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rejoin-card .btn{min-height:32px;padding:5px 10px;font-size:12.5px;flex:none}.rejoin-card .rejoin-dismiss{min-width:32px;padding:5px 8px!important;font-size:13px!important}@media(max-height:470px)and (orientation:landscape){.start-screen{gap:8px;padding:10px 18px}.icon-btn{padding:6px 8px;font-size:13px}}html.force-rotate .center-cards .card{width:clamp(34px,calc(var(--app-h) * .1),72px);height:clamp(48px,calc(var(--app-h) * .145),102px)}html.force-rotate .turn-banner{max-width:62%;font-size:clamp(9px,calc(var(--app-h) * .025),13px);line-height:1.15}html.force-rotate .team-bar{max-width:64%;padding:2px 8px;gap:1px 8px;font-size:clamp(8.5px,calc(var(--app-h) * .016),11px);line-height:1.25}html.force-rotate .log{display:none}html.force-rotate .seat{max-width:28vw}html.force-rotate .controls{flex-wrap:nowrap;overflow-x:auto}html.force-rotate .controls .btn{min-height:34px;padding:5px 9px;font-size:12px}html.force-rotate .hand-wrap{padding-top:2px}html.force-rotate .overlay{padding:8px}html.force-rotate .modal{width:min(700px,100%);max-height:94%;padding:8px 10px}html.force-rotate .modal-title{font-size:15px;letter-spacing:3px;margin-bottom:6px}html.force-rotate .result-banner{padding:7px;font-size:clamp(13px,3.2vw,17px)}html.force-rotate .result-row{padding:3px 7px;gap:6px}html.force-rotate .r-name{width:46px;font-size:12.5px}html.force-rotate .r-delta{width:54px;font-size:15px}html.force-rotate .r-note{font-size:10px}html.force-rotate .rh-cards .card{width:24px;height:36px}html.force-rotate .result-log-row .btn{font-size:11px;padding:4px 8px;min-height:0}html.force-rotate .modal-footer{margin-top:8px;gap:8px}html.force-rotate .modal-footer .btn{min-height:34px}html.force-rotate .reconnect-bar{max-width:70vw;white-space:nowrap}@media(max-height:470px)and (orientation:landscape){.seat{gap:2px}.seat-badges{min-height:13px}.seat-backs .card.back{width:11px;height:15px}.turn-banner{font-size:clamp(9px,calc(var(--app-h) * .024),12px);padding:2px 8px}.team-bar{padding:3px 8px;gap:3px;font-size:clamp(9px,calc(var(--app-h) * .017),11px)}}.game-title{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--c-title-font);font-size:clamp(20px,calc(var(--app-h) * .072),32px);letter-spacing:clamp(2px,calc(var(--app-h) * .012),6px);white-space:nowrap;text-align:center;color:var(--c-title-color);text-shadow:0 2px 10px rgba(0,0,0,.5);margin:0}.game-title .title-icon{font-size:1.25em;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}:root[data-theme=modern] .game-title{background:linear-gradient(90deg,#9db1ff,#43d6c9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}.seg{display:flex;flex-wrap:wrap;gap:8px}.seg-btn{flex:1 1 auto;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--c-btn-border);background:var(--c-btn-bg);color:var(--c-btn-text);font-size:14px;cursor:pointer;text-align:center;white-space:nowrap}.seg-btn.active{background:var(--c-primary-bg);border-color:var(--c-primary-border);color:var(--c-primary-text);font-weight:700}select.seg-btn{appearance:none}input{font-size:15px}.start-screen{gap:12px;background:radial-gradient(1200px 600px at 12% -8%,var(--c-felt-1),transparent 62%),radial-gradient(900px 520px at 106% 6%,var(--c-felt-2),transparent 58%),var(--c-bg)}.start-top{position:relative;z-index:30;flex:none;display:flex;align-items:center;gap:clamp(8px,calc(var(--app-h) * .02),14px);padding:clamp(6px,calc(var(--app-h) * .018),12px) clamp(10px,calc(var(--app-h) * .026),16px);border-radius:16px;background:var(--c-panel-bg);border:1px solid var(--c-panel-border);box-shadow:var(--c-shadow);backdrop-filter:blur(var(--c-panel-blur))}.start-screen .start-top .game-title{flex:0 1 auto;min-width:0;justify-content:flex-start;text-align:left;gap:clamp(8px,calc(var(--app-h) * .02),12px);font-size:clamp(16px,calc(var(--app-h) * .052),25px);letter-spacing:clamp(1px,calc(var(--app-h) * .006),3px);text-shadow:0 2px 10px rgba(0,0,0,.45);overflow:hidden}.start-top .title-icon{flex:none;display:grid;place-items:center;width:clamp(28px,calc(var(--app-h) * .082),38px);height:clamp(28px,calc(var(--app-h) * .082),38px);border-radius:clamp(8px,calc(var(--app-h) * .02),11px);background:linear-gradient(150deg,var(--c-gold),#ff9f1a);box-shadow:0 4px 14px #ffb43c52}.start-top .title-text{display:flex;flex-direction:column;line-height:1.14;min-width:0}.start-top .title-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.start-top .title-sub{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:clamp(10px,calc(var(--app-h) * .024),12px);font-weight:600;letter-spacing:0;color:var(--c-muted);-webkit-text-fill-color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-spacer{flex:1;min-width:4px}.top-tools{display:flex;align-items:center;gap:8px;flex:none}.start-top .voice-row{margin:0;gap:8px}.start-top .voice-row .btn{min-height:clamp(28px,calc(var(--app-h) * .078),36px);padding:0 clamp(9px,calc(var(--app-h) * .02),13px);font-size:clamp(11px,calc(var(--app-h) * .026),13px);border-radius:11px;white-space:nowrap}.me-card{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 5px;border-radius:999px;background:#ffffff0d;border:1px solid var(--c-panel-border);flex:none;min-width:0}.me-avatar{width:clamp(24px,calc(var(--app-h) * .062),30px);height:clamp(24px,calc(var(--app-h) * .062),30px);display:grid;place-items:center;font-size:clamp(12px,calc(var(--app-h) * .03),14px);font-weight:800;background:var(--c-avatar-bg);color:var(--c-avatar-text);border-radius:var(--c-avatar-radius);flex:none}.me-who{display:flex;flex-direction:column;line-height:1.15;min-width:0}.me-who b{font-size:clamp(12px,calc(var(--app-h) * .028),13px);max-width:clamp(60px,calc(var(--app-h) * .18),118px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-who span{font-size:clamp(10px,calc(var(--app-h) * .023),11.5px);color:var(--c-muted);max-width:clamp(84px,calc(var(--app-h) * .3),210px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-who span.ok{color:#6ee7a8}.start-screen .start-content{grid-template-columns:minmax(0,.9fr) minmax(0,1.08fr) minmax(0,.98fr);gap:clamp(9px,calc(var(--app-h) * .026),16px);align-items:stretch;overflow:hidden}.start-screen .panel-left,.start-screen .panel-center,.start-screen .panel-right{display:flex;flex-direction:column;gap:clamp(5px,calc(var(--app-h) * .016),10px);min-height:0;min-width:0;padding:clamp(9px,calc(var(--app-h) * .026),15px) clamp(10px,calc(var(--app-h) * .028),17px);background:var(--c-panel-bg);border:1px solid var(--c-panel-border);border-radius:18px;box-shadow:var(--c-shadow);backdrop-filter:blur(var(--c-panel-blur));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.start-screen .panel-left::-webkit-scrollbar,.start-screen .panel-center::-webkit-scrollbar,.start-screen .panel-right::-webkit-scrollbar{width:4px}.start-screen .panel-left::-webkit-scrollbar-thumb,.start-screen .panel-center::-webkit-scrollbar-thumb,.start-screen .panel-right::-webkit-scrollbar-thumb{background:var(--c-panel-border);border-radius:2px}.sec-title{display:flex;align-items:center;gap:6px;flex:none;font-size:clamp(10px,calc(var(--app-h) * .023),12px);letter-spacing:.14em;color:var(--c-muted);margin:0 0 5px}.sec-title:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c-gold);flex:none}.card-hd{display:flex;align-items:center;gap:7px;flex:none;font-size:clamp(11px,calc(var(--app-h) * .025),13px);font-weight:700;color:var(--c-text);letter-spacing:.04em}.card-hd .dot{width:6px;height:6px;border-radius:50%;background:var(--c-gold);flex:none}.rules-card{display:flex;flex-direction:column;flex:0 0 auto;min-height:0}.rules-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:clamp(6px,calc(var(--app-h) * .014),10px)}.rules-hint{font-size:clamp(9.5px,calc(var(--app-h) * .021),11px);color:var(--c-muted)}.panel-left .group,.panel-right .group{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;margin:0}.panel-left .quick-group{margin-top:auto}.mode-card{position:relative;display:flex;align-items:center;gap:clamp(7px,calc(var(--app-h) * .02),11px);width:100%;text-align:left;padding:clamp(7px,calc(var(--app-h) * .022),12px) clamp(8px,calc(var(--app-h) * .024),13px);margin-bottom:clamp(4px,calc(var(--app-h) * .012),8px);border-radius:14px;border:1px solid var(--c-btn-border);background:var(--c-btn-bg);color:var(--c-btn-text);cursor:pointer;font-family:inherit;transition:transform .12s,border-color .12s,background .12s;flex:0 0 auto}.mode-card:last-child{margin-bottom:0}.mode-card:active{transform:scale(.98)}.mode-card.sel{border-color:var(--c-turn-ring);background:linear-gradient(120deg,#ffd4792e,#ffd4790a);box-shadow:inset 0 0 0 1px var(--c-turn-ring)}.mode-ico{flex:none;display:grid;place-items:center;width:clamp(26px,calc(var(--app-h) * .075),34px);height:clamp(26px,calc(var(--app-h) * .075),34px);border-radius:10px;background:#00000047;border:1px solid var(--c-btn-border);font-size:clamp(13px,calc(var(--app-h) * .036),18px);line-height:1}.mode-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.mode-name{font-size:clamp(12px,calc(var(--app-h) * .03),14px);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-card.sel .mode-name{color:var(--c-gold)}.mode-desc{font-size:clamp(9.5px,calc(var(--app-h) * .022),11px);color:var(--c-muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-tag{flex:none;font-size:clamp(9px,calc(var(--app-h) * .02),10.5px);padding:2px 7px;border-radius:999px;color:var(--c-gold);background:#ffd47924;border:1px solid var(--c-turn-ring);white-space:nowrap}.quick-row{display:flex;flex-direction:column;gap:clamp(4px,calc(var(--app-h) * .012),7px)}.quick-card{display:flex;align-items:center;gap:clamp(6px,calc(var(--app-h) * .018),10px);width:100%;padding:clamp(6px,calc(var(--app-h) * .019),10px) clamp(8px,calc(var(--app-h) * .022),12px);border-radius:13px;border:1px solid var(--c-btn-border);background:var(--c-btn-bg);color:var(--c-btn-text);cursor:pointer;font-family:inherit;font-size:clamp(11px,calc(var(--app-h) * .028),13px);font-weight:700;text-align:left;transition:transform .12s,border-color .12s}.quick-card:active{transform:scale(.98)}.quick-card:hover{border-color:var(--c-turn-ring)}.quick-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-body{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.quick-desc{font-size:clamp(9.5px,calc(var(--app-h) * .022),11px);color:var(--c-muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-hint{font-size:clamp(9.5px,calc(var(--app-h) * .022),11px);line-height:1.35;color:var(--c-muted)}.panel-left .rejoin-card{gap:clamp(6px,calc(var(--app-h) * .018),10px);padding:clamp(6px,calc(var(--app-h) * .019),10px) clamp(8px,calc(var(--app-h) * .022),12px);border-radius:13px}.panel-left .rejoin-card .btn{min-height:clamp(26px,calc(var(--app-h) * .072),32px)}.panel-left .rejoin-card .btn.primary{background:linear-gradient(120deg,var(--c-gold),#ff9f1a);border-color:transparent;color:#241a00;font-weight:800}.config-row{display:flex;align-items:center;gap:clamp(6px,calc(var(--app-h) * .02),12px);margin-bottom:clamp(3px,calc(var(--app-h) * .012),8px);flex:none;min-width:0}.config-row:last-of-type{margin-bottom:0}.start-screen .panel-label{flex:0 0 auto;width:clamp(48px,calc(var(--app-h) * .125),68px);margin-bottom:0;font-size:clamp(10.5px,calc(var(--app-h) * .0245),12.5px);letter-spacing:0}.start-screen .btn-group{flex:1;min-width:0;gap:clamp(4px,calc(var(--app-h) * .016),8px)}.start-screen .btn-group .seg-btn{min-height:clamp(24px,calc(var(--app-h) * .068),34px);padding:0 clamp(4px,calc(var(--app-h) * .016),12px);border-radius:12px;font-size:clamp(11px,calc(var(--app-h) * .027),13.5px);font-weight:600;transition:transform .12s,border-color .12s,background .12s}.start-screen .btn-group .seg-btn:active{transform:scale(.97)}.start-screen .btn-group .seg-btn.active,.start-screen .theme-btn.active{background:linear-gradient(120deg,#ffd47933,#ffd4790d);border-color:var(--c-turn-ring);color:var(--c-gold);font-weight:800;box-shadow:inset 0 0 0 1px var(--c-turn-ring)}.theme-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(5px,calc(var(--app-h) * .018),9px);flex:1;min-width:0}.theme-btn{display:flex;align-items:center;justify-content:center;gap:clamp(5px,calc(var(--app-h) * .014),8px);min-height:clamp(26px,calc(var(--app-h) * .08),42px);padding:0 clamp(4px,calc(var(--app-h) * .014),10px);border-radius:13px;border:1px solid var(--c-btn-border);background:var(--c-btn-bg);color:var(--c-btn-text);font-size:clamp(11px,calc(var(--app-h) * .027),13.5px);font-weight:600;cursor:pointer;user-select:none;min-width:0}.theme-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.facts{display:flex;flex-wrap:wrap;gap:clamp(4px,calc(var(--app-h) * .014),8px);margin-top:clamp(6px,calc(var(--app-h) * .018),12px);min-height:0}.fact{font-size:clamp(9.5px,calc(var(--app-h) * .0225),11.5px);line-height:1.3;color:var(--c-muted);background:#0000002e;border:1px dashed var(--c-panel-border);border-radius:10px;padding:4px 8px;flex:1 1 46%;min-width:0;max-width:100%}.start-screen .panel-center .facts{display:none}@media(min-width:980px)and (min-height:800px){.start-screen .panel-center .facts{display:flex}}.side-card{display:flex;flex-direction:column;gap:clamp(5px,calc(var(--app-h) * .018),10px);padding:clamp(7px,calc(var(--app-h) * .022),12px) clamp(8px,calc(var(--app-h) * .024),13px);border-radius:14px;background:#00000029;border:1px solid var(--c-panel-border);flex:0 0 auto;min-height:0}.panel-left .hist-panel{margin-top:clamp(4px,calc(var(--app-h) * .012),7px);max-height:clamp(120px,calc(var(--app-h) * .44),320px);overflow-y:auto;flex:0 1 auto}.panel-left .hist-panel.hide{display:none}.panel-left .hist-panel::-webkit-scrollbar{width:4px}.panel-left .hist-panel::-webkit-scrollbar-thumb{background:var(--c-panel-border);border-radius:2px}.hist-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.hist-head .btn{min-height:clamp(24px,calc(var(--app-h) * .066),30px);padding:0 10px;font-size:clamp(10.5px,calc(var(--app-h) * .024),12px)}.card-sub{font-size:clamp(9.5px,calc(var(--app-h) * .022),11px);color:var(--c-muted);letter-spacing:.04em}.join-section{display:flex;flex-direction:column;gap:clamp(4px,calc(var(--app-h) * .012),6px)}.actions-panel{flex:0 0 auto;display:flex;flex-direction:column;gap:clamp(5px,calc(var(--app-h) * .016),9px);margin-top:auto;padding-top:clamp(6px,calc(var(--app-h) * .02),11px);border-top:1px solid var(--c-panel-border);position:sticky;bottom:0;background:var(--c-panel-bg);z-index:2}.nick-row{display:flex;align-items:center;gap:clamp(6px,calc(var(--app-h) * .02),12px);min-width:0}.field-label{flex:0 0 auto;width:clamp(48px,calc(var(--app-h) * .125),68px);font-size:clamp(10.5px,calc(var(--app-h) * .0245),12.5px);color:var(--c-muted);letter-spacing:.04em}.nick-row input{flex:1;min-width:0}.start-screen .btn,.start-screen .seg-btn,.start-screen .theme-btn,.start-screen .mode-card,.start-screen .quick-card,.start-screen .card-hd,.start-screen .sec-title,.start-screen .panel-label,.start-screen .field-label{white-space:nowrap}.start-screen .btn.cta{background:linear-gradient(120deg,var(--c-gold),#ff9f1a);border-color:transparent;color:#241a00;font-weight:900;letter-spacing:.02em;box-shadow:0 8px 22px #ffaa2842}.start-screen .actions-panel .btn.big{border-radius:14px;padding:clamp(7px,calc(var(--app-h) * .026),13px);font-size:clamp(12px,calc(var(--app-h) * .033),15.5px)}.start-screen .actions-panel .btn.cta.ghost{background:var(--c-btn-bg);border:1px solid var(--c-btn-border);color:var(--c-btn-text);box-shadow:none;font-weight:800}.start-screen .actions-panel .btn.cta.ghost:hover{border-color:var(--c-turn-ring);color:var(--c-gold)}.start-screen .actions-panel .tip-text{margin:0}.start-screen .start-top .top-tools .btn{min-height:clamp(28px,calc(var(--app-h) * .078),36px);padding:0 clamp(8px,calc(var(--app-h) * .018),12px);font-size:clamp(11px,calc(var(--app-h) * .026),13px);border-radius:11px;white-space:nowrap}.start-screen .start-top .top-tools .btn:hover{border-color:var(--c-turn-ring);color:var(--c-gold)}.rules-pop{position:absolute;top:calc(100% + 6px);right:clamp(10px,calc(var(--app-h) * .026),18px);z-index:40;width:min(86vw,330px);display:flex;flex-direction:column;gap:clamp(4px,calc(var(--app-h) * .014),8px);padding:clamp(8px,calc(var(--app-h) * .024),13px) clamp(10px,calc(var(--app-h) * .028),15px);border-radius:14px;background:var(--c-modal-bg);border:1px solid var(--c-modal-border);box-shadow:var(--c-card-shadow)}.rules-pop.hide{display:none}.rules-pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rules-pop-title{display:flex;align-items:center;gap:6px;font-size:clamp(11px,calc(var(--app-h) * .025),13px);font-weight:700;color:var(--c-text);letter-spacing:.04em}.rules-pop-title:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c-gold);flex:none}.rules-pop-head .btn{min-height:clamp(24px,calc(var(--app-h) * .066),30px);padding:0 10px;font-size:clamp(10.5px,calc(var(--app-h) * .024),12px)}.rules-pop-body{display:flex;flex-direction:column;gap:3px}.rules-pop-lead{margin:0;font-size:clamp(10px,calc(var(--app-h) * .023),12px);color:var(--c-gold);font-weight:700}.rules-pop-line{font-size:clamp(10px,calc(var(--app-h) * .023),12px);color:var(--c-text);line-height:1.5}.start-screen input{width:100%;min-height:clamp(30px,calc(var(--app-h) * .082),40px);background:#00000042;border:1px solid var(--c-btn-border);border-radius:12px;color:var(--c-text);padding:0 clamp(9px,calc(var(--app-h) * .024),14px);font-size:clamp(12px,calc(var(--app-h) * .03),15px);outline:none}.start-screen input:focus{border-color:var(--c-turn-ring);box-shadow:0 0 0 1px var(--c-turn-ring)}.start-screen input::placeholder{color:var(--c-muted);opacity:.75}.start-screen .code-input{letter-spacing:.22em;text-align:center;font-size:clamp(13px,calc(var(--app-h) * .034),18px);font-weight:800}.start-screen .flex-row input{flex:1;min-width:0}.start-screen .flex-row .btn{flex:0 0 auto}.start-screen .acc-row{flex-wrap:wrap}.start-screen .acc-row .btn{flex:1 1 auto;min-width:5em;min-width:max-content}.start-screen .acc-box{gap:clamp(5px,calc(var(--app-h) * .016),9px);margin:0}.start-screen .acc-who{border-radius:10px;font-size:clamp(10.5px,calc(var(--app-h) * .0245),12.5px);padding:clamp(4px,calc(var(--app-h) * .014),7px) clamp(7px,calc(var(--app-h) * .02),10px)}.start-screen .acc-tip{font-size:clamp(10px,calc(var(--app-h) * .023),12px);color:var(--c-muted)}.start-screen .hist-box{margin-top:0;max-height:none}.start-screen .hist-row{background:#ffffff0f;border:1px solid var(--c-btn-border);border-radius:11px;padding:clamp(5px,calc(var(--app-h) * .016),10px) clamp(7px,calc(var(--app-h) * .02),12px);font-weight:600;transition:border-color .15s}.start-screen .hist-row:hover{border-color:var(--c-turn-ring)}.start-screen .hist-title{color:var(--c-gold)}@media(max-height:560px),(max-width:620px){.start-screen .config-row{margin-bottom:3px}.start-screen .btn-group .seg-btn{min-height:24px;font-size:clamp(10.5px,2.6vw,11.5px);border-radius:10px}.start-screen .group-theme,.start-screen .rules-hint{display:none}.start-screen .actions-panel{flex-direction:row;flex-wrap:wrap;align-items:center;gap:5px;padding-top:5px}.start-screen .actions-panel .nick-row{flex:1 1 100%;min-width:0}.start-screen .actions-panel .nick-row .field-label{display:none}.start-screen .actions-panel .btn.cta,.start-screen .actions-panel .btn.cta.ghost,.start-screen .actions-panel .join-section{flex:1 1 100%}.start-screen .actions-panel .tip-text{display:none}.start-screen .actions-panel .btn.big{padding:8px;font-size:clamp(11.5px,3vw,13px);border-radius:11px}.start-screen .actions-panel input{min-height:30px}.start-screen .join-section .card-sub{display:none}.start-screen .side-card{padding:6px 8px}.start-screen .panel-left .hist-panel{max-height:40vh}}@media(max-width:400px){.start-screen .config-row{margin-bottom:2px}.start-screen .actions-panel{gap:4px;padding-top:4px}}@media(min-width:1024px){.start-screen .start-content{max-width:1320px}}@media(max-height:470px)and (orientation:landscape){.start-screen{gap:8px;padding:9px 14px 10px}.start-top{border-radius:13px}.start-top .title-sub{display:none}.start-screen .panel-left,.start-screen .panel-center,.start-screen .panel-right{border-radius:14px}.start-screen .config-row{margin-bottom:4px}.rules-head{margin-bottom:5px}.rules-hint{display:none}.start-screen .fact{padding:3px 7px}.start-screen .tip-text{font-size:10px;line-height:1.35}.join-section .card-sub,.start-screen .mode-tag{display:none}}html.force-rotate .start-screen{gap:8px}html.force-rotate .start-top{border-radius:13px}html.force-rotate .start-top .title-sub{display:none}html.force-rotate .start-screen .panel-left,html.force-rotate .start-screen .panel-center,html.force-rotate .start-screen .panel-right{border-radius:14px}html.force-rotate .start-screen .config-row{margin-bottom:4px}html.force-rotate .rules-head{margin-bottom:5px}html.force-rotate .start-screen .tip-text{font-size:10px;line-height:1.35}html.force-rotate .start-screen .fact{padding:3px 7px}@media(max-width:470px){.start-screen .mode-desc,.start-screen .mode-tag,.start-screen .quick-hint,.join-section .card-sub{display:none}}.theme-dot{width:12px;height:12px;border-radius:50%;flex:none;border:1px solid rgba(255,255,255,.35)}.theme-dot-classic{background:linear-gradient(135deg,#2a8a5c,#124a30);box-shadow:inset 0 0 0 1.5px #d9b45b}.theme-dot-modern{background:linear-gradient(135deg,#9db1ff,#43d6c9)}.table{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--c-frame-outer)}.felt{position:relative;flex:1;min-height:0;overflow:hidden;background:radial-gradient(ellipse 95% 75% at 50% 40%,var(--c-felt-1) 0%,var(--c-felt-2) 55%,var(--c-felt-3) 100%);box-shadow:inset 0 0 0 1px var(--c-frame),var(--c-vignette);user-select:none}:root[data-theme=classic] .felt{box-shadow:inset 0 0 0 2px var(--c-frame-dark),inset 0 0 60px #0000008c;border-bottom:2px solid var(--c-frame)}.felt:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(45deg,var(--c-felt-line) 0 1px,transparent 1px 8px)}:root[data-theme=modern] .felt:before{display:none}.seat{position:absolute;transform:translate(-50%,-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:2px;max-width:min(30vw,240px)}.pc-4 .seat .seat-team,.pc-4 .seat .seat-backs,.pc-6 .seat .seat-team,.pc-6 .seat .seat-backs{display:none}.seat.turn .seat-name{color:var(--c-gold);text-shadow:0 0 12px var(--c-turn-glow)}.seat.me{display:none!important}.seat.me .seat-name{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--c-turn-ring)}.seat-badge{display:inline-block;font-size:clamp(11px,calc(var(--app-h) * .026),15px);font-weight:800;letter-spacing:1px;padding:3px 11px;border-radius:999px;color:#fff;border:1px solid rgba(255,255,255,.4);box-shadow:0 2px 8px #00000073;white-space:nowrap}.sb-reveal{background:linear-gradient(135deg,#f0a24f,#e4763f)}.sb-jiu{background:linear-gradient(135deg,#5b76f6,#3f5ad9)}.sb-han{background:linear-gradient(90deg,#ff7a4d,#ff5a7a)}.sb-chuan{background:linear-gradient(135deg,#9a6bff,#7a4dff)}.sb-fanchuan{background:linear-gradient(135deg,#b84dff,#8a2be2)}.sb-nianliu{background:linear-gradient(135deg,#2fae87,#1d8a68)}.sb-mingliao{background:linear-gradient(90deg,#ffd24d,#ff9a3d);color:#3a1f00}.sb-s4{background:#3f6d33}.sb-bid{background:#6b4a1a}:root[data-theme=classic] .seat-badge{border-color:#fff3cf}.seat-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;min-height:18px}.seat-open{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1px;max-width:min(40vw,300px);padding:2px 3px;border-radius:6px;background:#ffd27824;border:1px solid rgba(255,210,120,.5);box-shadow:inset 0 0 10px #ffc85040}.seat-open .card{width:clamp(15px,calc(var(--card-w) * .34),26px);height:clamp(21px,calc(var(--card-h) * .36),36px);border-radius:4px;margin-left:0;flex:0 0 auto;box-shadow:0 1px 3px #0006}.seat-open .card .c-face{font-size:clamp(8px,calc(var(--card-h) * .12),13px)}.seat-open .card .c-corner,.seat-open .card .c-sub{font-size:clamp(6px,calc(var(--card-h) * .09),10px)}.play-zone{position:absolute;transform:translate(-50%,-50%);z-index:5;width:clamp(110px,24%,240px);display:flex;justify-content:center;align-items:center;pointer-events:none}.play-zone .card{width:clamp(30px,calc(var(--card-w) * .82),56px);height:clamp(42px,calc(var(--card-h) * .84),78px);border-radius:6px;margin-left:calc(var(--card-w) * -.5);box-shadow:0 3px 9px #00000073}.play-zone .card:first-child{margin-left:0}.play-zone .card .c-corner{font-size:clamp(9px,calc(var(--card-h) * .16),13px);top:3px;left:4px}.play-zone .card .c-face{font-size:clamp(14px,calc(var(--card-h) * .29),22px);right:5px;bottom:4px}.seat-played{display:none}.fx-el{position:absolute;pointer-events:none;z-index:12;will-change:transform,opacity}.fx-shoot{font-size:clamp(22px,calc(var(--app-h) * .07),40px);filter:drop-shadow(0 0 6px rgba(255,220,120,.9))}.fx-glow{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,#ffd85ed9,#ffd85e00 70%);display:flex;align-items:center;justify-content:center;font-size:26px}.fx-fire{font-size:clamp(30px,calc(var(--app-h) * .1),56px);filter:drop-shadow(0 0 10px rgba(255,120,40,.9))}.fx-spark{font-size:clamp(12px,calc(var(--app-h) * .04),22px)}.fx-confetti{width:8px;height:14px;border-radius:2px}.fx-mult{font-size:clamp(20px,calc(var(--app-h) * .065),38px);font-weight:900;color:#ffd75e;text-shadow:0 0 8px rgba(255,200,60,.95),0 2px 4px rgba(0,0,0,.55);letter-spacing:1px}.zone-pass{font-size:clamp(11px,calc(var(--app-h) * .024),15px);color:var(--c-muted);background:var(--c-panel-bg);border:1px solid var(--c-panel-border);border-radius:999px;padding:3px 14px;white-space:nowrap;letter-spacing:2px;box-shadow:var(--c-shadow)}.qka-fan{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.qf-card{position:relative;width:.98em;height:1.34em;flex:none;border-radius:.16em;border:1px solid var(--c-card-border);background:var(--c-card-bg);box-shadow:0 2px 4px #0006;margin-left:-.44em}.qf-card:first-child{margin-left:0;transform:rotate(-10deg)}.qf-card:nth-child(2){transform:rotate(2deg)}.qf-card:last-child{transform:rotate(10deg)}.qf-card.red{color:var(--c-red)}.qf-card.black{color:var(--c-black)}.qf-rank{position:absolute;inset:.14em 0 auto;text-align:center;font-size:.52em;font-weight:800;line-height:1;font-style:normal}.qf-suit{position:absolute;left:0;right:0;bottom:.08em;text-align:center;font-size:.36em;line-height:1}.game-title .title-icon .qka-fan{font-size:clamp(11px,calc(var(--app-h) * .028),15px)}.game-title .title-icon,.game-title .title-icon *{-webkit-text-fill-color:initial}.tab-icon .qka-fan{font-size:1em}.tab-label{margin-left:2px}.meta-icon .qka-fan{font-size:1.1em}.seat-name{font-size:clamp(11px,calc(var(--app-h) * .023),15px);font-weight:700;color:var(--c-text);white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.6)}.seat-role{font-size:clamp(9px,calc(var(--app-h) * .018),11px);color:var(--c-gold);white-space:nowrap}.seat-team{font-size:clamp(9px,calc(var(--app-h) * .018),11px);color:var(--c-muted);white-space:nowrap}.seat.unknown .seat-team{color:var(--c-muted)}.seat-backs{display:flex}.seat-backs .card.back{width:14px;height:20px;border-radius:2.5px;margin-left:-6px;background:var(--c-card-back);border:1px solid var(--c-card-back-border);box-shadow:0 1px 3px #0006}.seat-backs .card.back:first-child{margin-left:0}.seat-backs .card.back .c-face{display:none}.seat-count{display:inline-flex;align-items:baseline;gap:2px;padding:2px 8px;border-radius:8px;background:var(--c-panel-bg);border:1px solid var(--c-panel-border);color:var(--c-text);white-space:nowrap}.seat-count-num{font-size:clamp(11px,calc(var(--app-h) * .022),14px);font-weight:800;color:var(--c-gold)}.seat-count-unit{font-size:clamp(8px,calc(var(--app-h) * .014),10px);color:var(--c-muted)}.seat-done{font-size:10.5px;color:var(--c-badge-done);border:1px dashed currentColor;border-radius:8px;padding:1px 7px}.center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(3px,calc(var(--app-h) * .012),7px);width:max-content;max-width:78%;pointer-events:none}.center-label{font-size:clamp(11px,calc(var(--app-h) * .022),15px);color:var(--c-text);width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.5)}.center-label b{color:var(--c-gold)}.center-cards{display:flex;justify-content:center}.center-cards .card{width:clamp(34px,calc(var(--app-h) * .1),72px);height:clamp(48px,calc(var(--app-h) * .145),102px);margin-left:calc(var(--card-w) * -.28);box-shadow:0 6px 16px #00000073}.center-cards .card:first-child{margin-left:0}.turn-banner{position:static;max-width:100%;background:var(--c-banner-bg);color:var(--c-banner-text);font-weight:700;font-size:clamp(10px,calc(var(--app-h) * .026),15px);line-height:1.2;text-align:center;padding:clamp(4px,calc(var(--app-h) * .011),8px) clamp(10px,2.4vw,16px);border-radius:999px;border:1px solid var(--c-banner-border);box-shadow:var(--c-shadow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%}.turn-banner.mine{animation:banner-pulse 1.6s ease-in-out infinite}@keyframes banner-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.18)}}.table-meta{position:static;font-size:clamp(11px,calc(var(--app-h) * .024),15px);letter-spacing:1px;color:var(--c-muted);opacity:.9;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.45)}.team-bar{position:static;max-width:96%;display:flex;flex-wrap:wrap;justify-content:center;gap:3px 8px;font-size:clamp(9.5px,calc(var(--app-h) * .019),12.5px);line-height:1.2;background:var(--c-panel-bg);border:1px solid var(--c-panel-border);border-radius:12px;padding:3px 10px;backdrop-filter:blur(var(--c-panel-blur))}.team-a-tag{color:var(--c-gold);font-weight:600}.team-b-tag{color:var(--c-text);opacity:.9}.team-mult{color:#ffb9a0;font-weight:700}.team-hidden{color:var(--c-muted)}.log{position:absolute;right:8px;top:8px;bottom:auto;width:min(24vw,220px);z-index:4;background:var(--c-panel-bg);border:1px solid var(--c-panel-border);border-radius:10px;padding:clamp(4px,calc(var(--app-h) * .008),7px) clamp(6px,1.4vw,10px);backdrop-filter:blur(var(--c-panel-blur));max-height:calc(var(--app-h) * .22);overflow:hidden}.log-line{font-size:clamp(9px,calc(var(--app-h) * .017),11.5px);color:var(--c-text);opacity:.92;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card{position:relative;display:inline-block;width:var(--card-w);height:var(--card-h);border-radius:8px;background:var(--c-card-bg);border:1px solid var(--c-card-border);box-shadow:var(--c-card-shadow);flex:none;color:var(--c-black)}.card.red{color:var(--c-red)}.card.black{color:var(--c-black)}.card .c-corner{position:absolute;top:4px;left:6px;font-size:clamp(11px,3vw,15px);font-weight:700;line-height:1.05;text-align:center}.card .c-corner small{display:block;font-size:.72em}.card .c-face{position:absolute;right:7px;bottom:5px;font-size:calc(var(--card-h) * .34);line-height:1}.card .c-sub{display:none}.card.back{background:var(--c-card-back);border:1px solid var(--c-card-back-border)}.card.back .c-face{font-size:18px;opacity:.9}.card.deal-in{animation:deal-in .45s backwards;animation-delay:calc(var(--i, 0) * 36ms)}@keyframes deal-in{0%{opacity:0;transform:translateY(-18px) rotate(-6deg)}to{opacity:1;transform:none}}.hand-wrap{position:relative;z-index:7;padding:clamp(4px,calc(var(--app-h) * .012),10px) 6px calc(env(safe-area-inset-bottom) + clamp(6px,calc(var(--app-h) * .015),12px));background:linear-gradient(180deg,transparent 0%,var(--c-felt-3) 38%)}.me-badges{display:flex;justify-content:center;align-items:center;min-height:0;padding-bottom:2px}.me-badges:empty{display:none}:root[data-theme=modern] .hand-wrap{background:linear-gradient(180deg,#0c111d00,#0a0e1ae6 45%)}.hand-wrap.ready:before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;background:var(--c-sel-ring);border-radius:2px;opacity:.75}.hand{display:flex;justify-content:center;min-height:calc(var(--card-h) * 1.3);align-items:flex-end}.hand .card{margin-left:calc(var(--card-w) * -.42);cursor:pointer;transition:transform .15s,box-shadow .15s}.hand .card:first-child{margin-left:0}.hand .card.selected{transform:translateY(-14px);box-shadow:0 0 0 2.5px var(--c-sel-ring),0 10px 20px #00000080}.hand-empty{text-align:center;color:var(--c-muted);font-size:13px;padding:14px 0}.controls{position:relative;z-index:7;display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:clamp(3px,.7vw,8px);padding:4px 8px 0;overflow-x:auto;scrollbar-width:none}.controls .btn:first-child{margin-left:auto}.controls .btn:last-child{margin-right:auto}.controls::-webkit-scrollbar{display:none}.countdown{position:absolute;left:50%;bottom:clamp(4px,calc(var(--app-h) * .012),9px);transform:translate(-50%);z-index:9;max-width:92%;padding:2px clamp(7px,1.6vw,12px);border-radius:999px;background:var(--c-panel-bg);border:1px solid var(--c-panel-border);backdrop-filter:blur(var(--c-panel-blur));white-space:nowrap;font-size:clamp(10px,calc(var(--app-h) * .019),13px);color:var(--c-gold);font-weight:600;pointer-events:none}.countdown:empty{display:none}.auto-bar{border-color:var(--c-turn-ring)!important;color:var(--c-gold)}.overlay{position:absolute;inset:0;z-index:20;background:var(--c-overlay);display:flex;align-items:center;justify-content:center;padding:18px;animation:fade-in .18s ease-out}.overlay-clear{background:#0000001a;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}.modal-clear{background:#0e161c9e;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border-color:#ffffff24}@keyframes fade-in{0%{opacity:0}}.modal{width:min(640px,100%);max-height:calc(var(--app-h) * .92);overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:16px;background:var(--c-modal-bg);border:1px solid var(--c-modal-border);box-shadow:var(--c-shadow);padding:clamp(12px,calc(var(--app-h) * .035),20px) clamp(14px,2vw,22px)}.modal-title{text-align:center;font-size:clamp(15px,calc(var(--app-h) * .032),19px);letter-spacing:3px;color:var(--c-gold);margin-bottom:clamp(6px,calc(var(--app-h) * .02),12px);font-weight:700}.modal-hint{font-size:13px;color:var(--c-muted);text-align:center;margin-bottom:12px;line-height:1.6}.modal-footer{display:flex;gap:10px;margin-top:14px}.modal-footer .btn{flex:1}.friend-picker{text-align:center}.friend-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}.friend-grid .btn{min-width:64px}.result-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px 14px;align-items:start}.result-left,.result-right{display:flex;flex-direction:column;gap:8px;min-width:0}.result-list{display:flex;flex-direction:column;gap:4px}.result-hands{display:flex;flex-direction:column;gap:4px;max-height:calc(var(--app-h) * .14);overflow-y:auto}.result-actions{display:flex;flex-direction:column;gap:8px}.result-actions .btn{width:100%;min-height:clamp(29px,calc(var(--app-h) * .075),42px);padding:6px 10px;font-size:13px}.result-banner{text-align:center;font-size:clamp(14px,calc(var(--app-h) * .034),20px);font-weight:800;letter-spacing:1px;color:var(--c-mine-text);background:var(--c-mine-bg);border-radius:10px;padding:clamp(6px,calc(var(--app-h) * .016),11px);box-shadow:var(--c-shadow)}.result-row{display:flex;align-items:center;gap:8px;background:var(--c-panel-bg);border:1px solid var(--c-panel-border);border-radius:9px;padding:clamp(3px,calc(var(--app-h) * .009),7px) clamp(6px,1vw,12px)}.r-name{width:clamp(38px,6.5vw,58px);font-size:clamp(11.5px,calc(var(--app-h) * .022),14px);font-weight:700;color:var(--c-text);flex:none}.r-delta{width:clamp(42px,7.5vw,62px);font-size:clamp(13.5px,calc(var(--app-h) * .027),17px);font-weight:800;text-align:right;flex:none}.r-delta.win{color:#4ee6b0}.r-delta.lose{color:#ff8a9b}.r-note{font-size:clamp(9.5px,calc(var(--app-h) * .017),11px);color:var(--c-muted);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-hand-row{display:flex;align-items:center;gap:8px}.rh-count{font-size:11px;color:var(--c-muted);width:34px;flex:none}.rh-cards{display:flex}.rh-cards .card{width:calc(var(--card-w) * .38);height:calc(var(--card-h) * .54);border-radius:5px;margin-left:calc(var(--card-w) * -.22);box-shadow:0 2px 5px #0006}.rh-cards .card:first-child{margin-left:0}.rh-cards .card .c-corner{font-size:9px}.rh-cards .card .c-face{font-size:14px}.result-log{margin-top:4px}.result-log-row{display:flex;gap:8px;margin-bottom:8px}.result-log-row .btn{font-size:11px;padding:4px 9px;min-height:0}.result-log-box{display:none;max-height:calc(var(--app-h) * .3);overflow-y:auto;background:#00000040;border-radius:8px;padding:8px 10px}.result-log-box .log-line{font-size:11px}.reconnect-bar{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:10px;background:var(--c-toast-bg);border:1px solid var(--c-toast-border);border-radius:12px;padding:8px 12px;font-size:13px;box-shadow:var(--c-shadow);max-width:92vw}.toast{position:absolute;left:50%;top:4%;transform:translate(-50%) translateY(-6px);z-index:90;background:var(--c-toast-bg);border:1px solid var(--c-toast-border);color:var(--c-text);font-size:15px;padding:12px 20px;border-radius:14px;box-shadow:var(--c-shadow);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:80%;text-align:center;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:760px){.toast{white-space:normal}}@media(min-width:1024px){.start-screen{padding-top:calc(env(safe-area-inset-top) + 30px)}.game-title{font-size:36px}.start-content{max-width:1180px}}@media(max-width:760px)and (orientation:landscape){.center-label{font-size:clamp(10px,calc(var(--app-h) * .026),14px)}.center-cards .card{width:clamp(36px,calc(var(--app-h) * .11),58px);height:clamp(50px,calc(var(--app-h) * .3),96px)}.turn-banner{max-width:62%}.team-bar{max-width:64%}.log{display:none}.seat{max-width:28vw}.controls .btn{min-height:34px;padding:5px 9px;font-size:12px}}@media(max-height:460px)and (orientation:landscape){.turn-banner,.team-bar{line-height:1.1;padding-top:3px;padding-bottom:3px}.team-bar{gap:3px}.center-label{margin-bottom:0}.hand-wrap{padding-top:2px;padding-bottom:4px}.log{display:none}}.chat-bubble{position:absolute;top:-4px;left:50%;transform:translate(-50%,-100%);background:#fff;color:#1a2230;padding:6px 12px;border-radius:12px;font-size:13px;max-width:calc(var(--app-w) * .46);text-align:center;line-height:1.35;z-index:30;box-shadow:0 4px 14px #00000059;animation:chatIn .18s ease-out}.chat-bubble.emoji{font-size:clamp(34px,calc(var(--app-h) * .11),56px);padding:2px 8px;background:radial-gradient(circle at 50% 45%,#ffffff38,#00000057 70%);border:1px solid rgba(255,214,120,.55);border-radius:16px;box-shadow:0 6px 22px #00000073,0 0 16px #ffcd6459}.chat-bubble.voice-bubble{background:#101828e0;color:#ffe6a6;font-weight:700;border:1px solid rgba(255,205,100,.6);cursor:pointer}.self-bubble{position:absolute;left:50%;bottom:6%;transform:translate(-50%);z-index:30}.self-bubble{width:calc(var(--app-w) * .92);pointer-events:none}.self-bubble .chat-bubble{pointer-events:auto}.mic-btn{white-space:nowrap}.mic-btn.recording{background:#c0392b;border-color:#ff8a7a;color:#fff;animation:micPulse 1s ease-in-out infinite}.mic-btn:disabled{opacity:.55}@keyframes micPulse{0%,to{box-shadow:0 0 #ff5a468c}50%{box-shadow:0 0 0 6px #ff5a4600}}@keyframes chatIn{0%{opacity:0;transform:translate(-50%,-88%) scale(.9)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}.overlay.chat-overlay{padding:clamp(6px,calc(var(--app-h) * .02),14px)}html.force-rotate .overlay.chat-overlay{padding:8px}.overlay.chat-overlay .modal{width:min(780px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden}.chat-panel{display:flex;flex-direction:column;gap:clamp(4px,calc(var(--app-h) * .016),10px);min-height:0;flex:0 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.chat-sec{display:flex;flex-direction:column;gap:clamp(3px,calc(var(--app-h) * .01),6px);min-width:0}.chat-sec-title{font-size:clamp(10px,calc(var(--app-h) * .026),13px);letter-spacing:2px;color:var(--c-gold);opacity:.8;text-align:left;white-space:nowrap}.chat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(104px,calc(var(--app-h) * .3),176px),1fr));gap:clamp(4px,calc(var(--app-h) * .014),9px);min-width:0}.chat-item{margin:0;min-width:0;background:#ffffff24;color:#e8ecf2;font-weight:600;font-size:clamp(11px,calc(var(--app-h) * .028),14px);padding:clamp(4px,calc(var(--app-h) * .016),9px) clamp(6px,calc(var(--app-h) * .02),12px);min-height:clamp(28px,calc(var(--app-h) * .07),42px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row.emoji-row{grid-template-columns:repeat(auto-fit,minmax(clamp(34px,calc(var(--app-h) * .1),56px),1fr))}.chat-item.emoji{font-size:clamp(20px,calc(var(--app-h) * .075),34px);line-height:1.15;padding:clamp(2px,calc(var(--app-h) * .008),5px) clamp(4px,calc(var(--app-h) * .012),8px);background:transparent}.acc-box{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px}.acc-row{display:flex;gap:8px}.acc-row .btn{flex:1;margin:0}.acc-tip{font-size:12px;color:#7b8aa3;line-height:1.5;min-height:18px}.acc-who{font-size:12.5px;line-height:1.5;padding:6px 10px;border-radius:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#9fb0c8}.acc-who.ok{color:#8ef2b0;border-color:#3cdc8c73;background:#28b46e1f}.acc-who.guest{color:#c9d3e2}.hist-box{margin-top:10px;display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto}.hist-title{font-size:13px;color:#ffd75e;font-weight:700}.hist-score{font-size:12.5px;color:#cfd8e6}.hist-row{text-align:left;margin:0;background:#ffffff1a;color:#e8ecf2;font-weight:600;font-size:12.5px}.hist-list{display:flex;flex-direction:column;gap:3px;background:#00000047;border-radius:8px;padding:8px 10px}.hist-line{font-size:12px;color:#cfe0d8;font-family:Consolas,monospace;line-height:1.6}.voice-row{display:flex;gap:8px;align-items:center;margin:6px 0 2px}.voice-row .btn{flex:0 0 auto}.mj-table{--mj-felt1: #1e4d36;--mj-felt2: #143524;--mj-felt3: #0b2115;--mj-panel: rgba(10, 30, 20, .74);--mj-line: rgba(233, 196, 106, .22);--mj-line2: rgba(233, 196, 106, .5);--mj-text: #f2ead2;--mj-muted: #9db3a1;--mj-gold: #e9c46a;--mj-gold2: #d4a94e;--mj-gold-br: #f6dd9a;--mj-red: #c73e2c;--mj-red2: #9e2f20;--mj-red-br: #e8654f;--mj-paper1: #f8f2df;--mj-paper2: #ece2c6;--mj-edge: #c3ad7d;--mj-back1: #2e6b4f;--mj-back2: #1d4a34;--mj-suit-m: #b03024;--mj-suit-s: #1d7a3f;--mj-suit-p: #1d56b8;--mj-suit-z: #26221c;--mj-kai: KaiTi, STKaiti, "Kaiti SC", serif;--mj-tw: clamp(26px, calc(var(--app-h) * .088), 46px);--mj-rw: clamp(12px, calc(var(--app-h) * .038), 20px);--mj-bw: clamp(11px, calc(var(--app-h) * .036), 18px);--mj-gap: clamp(5px, calc(var(--app-h) * .016), 12px);--mj-top-h: 46px;--mj-opptop-h: 56px;--mj-self-h: 66px;--mj-rail-h: 52px;--mj-turn: 0 0 0 2px rgba(233, 196, 106, .95), 0 0 24px rgba(233, 196, 106, .5);position:absolute;inset:0;overflow:hidden;user-select:none;color:var(--mj-text);font-size:clamp(11px,calc(var(--app-h) * .036),14px);background:radial-gradient(120% 95% at 50% 42%,var(--mj-felt1) 0%,var(--mj-felt2) 55%,var(--mj-felt3) 100%)}.mj-table:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;background:repeating-linear-gradient(45deg,transparent 0 12px,#e9c46a 12px 13px)}.mj-table:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 140px #081a0fd9}.mj-top{position:absolute;top:0;left:0;right:0;z-index:10;min-height:clamp(34px,calc(var(--app-h) * .11),46px);display:flex;align-items:center;gap:clamp(4px,calc(var(--app-h) * .012),8px);flex-wrap:wrap;padding:3px clamp(6px,calc(var(--app-h) * .018),12px);background:linear-gradient(180deg,#0c2418d9,#0c241840);border-bottom:1px solid var(--mj-line)}.mj-brand{display:flex;align-items:center;gap:6px;margin-right:2px}.mj-seal{width:clamp(22px,calc(var(--app-h) * .075),30px);height:clamp(22px,calc(var(--app-h) * .075),30px);display:grid;place-items:center;border-radius:6px;rotate:-3deg;font-family:var(--mj-kai);font-size:clamp(15px,calc(var(--app-h) * .048),19px);color:#fdeed3;background:linear-gradient(150deg,var(--mj-red-br),var(--mj-red2));box-shadow:0 3px 10px #c73e2c73,inset 0 0 0 1.5px #f6dd9a80}.mj-brand-name{font-family:var(--mj-kai);font-size:1.25em;letter-spacing:2px;color:var(--mj-gold-br);white-space:nowrap}.mj-stat{padding:2px clamp(6px,calc(var(--app-h) * .016),10px);border-radius:999px;background:var(--mj-panel);border:1px solid var(--mj-line);color:var(--mj-muted);white-space:nowrap;font-size:clamp(10px,calc(var(--app-h) * .028),13px)}.mj-stat.on{color:#fdeed3;font-weight:700;border-color:transparent;background:linear-gradient(120deg,var(--mj-red-br),var(--mj-red2));box-shadow:inset 0 0 0 1px #f6dd9a80}.mj-exit{margin-left:auto}.mj-table .btn{border:1px solid var(--mj-line);border-radius:10px;background:#123224;color:var(--mj-text);padding:5px 12px;font-size:.95em;cursor:pointer;white-space:nowrap}.mj-table .btn:hover{border-color:var(--mj-line2);color:var(--mj-gold-br)}.mj-table .btn:active{transform:translateY(1px)}.mj-table .btn.primary{background:linear-gradient(120deg,var(--mj-red-br),var(--mj-red2));color:#fdeed3;border-color:#f6dd9a8c;box-shadow:0 4px 14px #c73e2c66}.mj-others{position:absolute;inset:0;pointer-events:none;z-index:3}.mj-opp{position:absolute;pointer-events:auto;display:flex;flex-direction:column;gap:3px;padding:6px 9px;border-radius:12px;background:var(--mj-panel);border:1px solid var(--mj-line);transition:box-shadow .2s;max-width:300px}.mj-opp-top{top:calc(var(--mj-top-h) + var(--mj-gap));left:50%;transform:translate(-50%);align-items:center;max-width:min(46%,340px)}.mj-opp-left{left:var(--mj-gap);top:50%;transform:translateY(-50%);max-width:clamp(104px,calc(var(--app-h) * .3),148px)}.mj-opp-right{right:var(--mj-gap);top:50%;transform:translateY(-50%);max-width:clamp(104px,calc(var(--app-h) * .3),148px)}.mj-opp.active{border-color:transparent;box-shadow:var(--mj-turn);background:#183424e0}.mj-opp.active:after{content:"▶ 出牌中";position:absolute;top:-11px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:.78em;font-weight:700;letter-spacing:1px;color:#3a2408;background:linear-gradient(120deg,var(--mj-gold-br),var(--mj-gold2));padding:2px 11px;border-radius:999px;box-shadow:0 3px 10px #0006}.mj-opp-top.active:after{top:auto;bottom:-11px}.mj-opp-name{display:flex;align-items:center;gap:6px;font-weight:700;font-family:var(--mj-kai);font-size:1.05em;letter-spacing:1px;color:var(--mj-gold-br);white-space:nowrap}.mj-opp-name .mj-wind-chip{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:5px;font-size:.82em;color:#c4d9bf;background:#123224;border:1px solid var(--mj-line2)}.mj-opp-name .mj-wind-chip.dealer{background:linear-gradient(140deg,var(--mj-red-br),var(--mj-red2));color:#fdeed3;border-color:#f2d698}.mj-opp-name .mj-cnt{color:var(--mj-muted);font-family:inherit;font-weight:400;font-size:.86em}.mj-center{position:absolute;left:50%;top:calc(var(--mj-top-h) + var(--mj-opptop-h) + var(--mj-gap) * 2);transform:translate(-50%);width:min(52%,480px);height:max(88px,calc(100% - var(--mj-top-h) - var(--mj-opptop-h) - var(--mj-self-h) - var(--mj-rail-h) - var(--mj-gap) * 5));z-index:2;border-radius:18px;border:1px solid var(--mj-line2);background:radial-gradient(circle at 50% 45%,#1e4d368c,#0b2115b8);box-shadow:inset 0 0 0 6px #e9c46a0f,inset 0 0 60px #00000059,0 10px 30px #00000059}.mj-river{position:absolute;display:grid;grid-template-columns:repeat(6,var(--mj-rw));grid-auto-rows:calc(var(--mj-rw) * 1.4);gap:2px;width:max-content;padding:3px;z-index:2}.mj-river-top,.mj-river-bottom{grid-template-columns:none;grid-template-rows:calc(var(--mj-rw) * 1.4);grid-auto-flow:column;grid-auto-columns:var(--mj-rw)}.mj-river-top{top:4px;left:50%;transform:translate(-50%)}.mj-river-bottom{bottom:4px;left:50%;transform:translate(-50%)}.mj-river-left{left:calc(var(--mj-rw) * 2.6);top:50%;transform:translate(-50%,-50%) rotate(90deg)}.mj-river-right{right:calc(var(--mj-rw) * 2.6);top:50%;transform:translate(50%,-50%) rotate(-90deg)}.mj-river .mj-tile.last{box-shadow:0 2px #b6ad79,0 0 0 2px var(--mj-gold)}.mj-compass{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);--mj-river-band: calc(var(--mj-rw) * 1.4 + 6px);height:clamp(34px,calc(100% - var(--mj-river-band) * 2 - 16px),108px);aspect-ratio:1;min-width:34px;z-index:1;border-radius:18px;background:radial-gradient(circle at 50% 38%,#1c4331,#10281c);border:1px solid var(--mj-line2);box-shadow:0 3px #0e3028,0 10px 24px #0a322580,inset 0 0 0 5px #e9c46a1a;display:grid;place-items:center}.mj-compass:after{content:"";position:absolute;inset:26%;border:1px solid rgba(233,196,106,.25);border-radius:50%}.mj-wind{position:absolute;font-family:var(--mj-kai);font-size:clamp(9px,calc(var(--app-h) * .026),13px);color:#8fa896;padding:0 5px;border-radius:6px;transition:.2s}.mj-wind.w-n{top:4px}.mj-wind.w-s{bottom:4px}.mj-wind.w-w{left:6px}.mj-wind.w-e{right:6px}.mj-wind.on{color:#fdeed3;background:linear-gradient(150deg,var(--mj-red-br),var(--mj-red2));box-shadow:0 0 12px #e8654f8c}.mj-core{position:relative;z-index:1;text-align:center;line-height:1.15}.mj-core b{display:block;font-size:clamp(13px,calc(var(--app-h) * .05),22px);font-weight:800;color:var(--mj-gold-br);font-variant-numeric:tabular-nums}.mj-core span{font-size:.72em;color:var(--mj-muted);letter-spacing:2px}.mj-pointer{position:absolute;width:0;height:0;transition:.25s;z-index:2}.mj-pointer.p-top{top:-9px;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #f0cb80}.mj-pointer.p-bottom{top:calc(100% + 2px);left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:7px solid #f0cb80}.mj-pointer.p-left{left:-9px;top:calc(50% - 5px);border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid #f0cb80}.mj-pointer.p-right{left:calc(100% + 2px);top:calc(50% - 5px);border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:7px solid #f0cb80}.mj-window{position:absolute;left:50%;bottom:-13px;transform:translate(-50%);white-space:nowrap;font-size:.98em;font-weight:700;color:var(--mj-gold-br);background:#08160ef2;border:1px solid var(--mj-line2);padding:4px 15px;border-radius:999px;box-shadow:0 4px 12px #00000080;z-index:4}.mj-hint{color:var(--mj-muted)}.mj-rail{position:absolute;left:0;right:0;bottom:calc(var(--mj-self-h) + var(--mj-gap) * 2);z-index:7;display:flex;align-items:center;justify-content:space-between;gap:var(--mj-gap);padding:0 var(--mj-gap);min-height:clamp(32px,calc(var(--app-h) * .1),52px)}.mj-rail-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;gap:var(--mj-gap);overflow:hidden}.mj-rail .mj-banner,.mj-rail .mj-window{position:static;transform:none;left:auto;bottom:auto;max-width:100%}.mj-countdown{position:absolute;left:50%;bottom:calc(100% + 3px);transform:translate(-50%);z-index:2;max-width:92%;padding:2px 12px;border-radius:999px;background:#08160ef0;border:1px solid var(--mj-line2);color:var(--mj-gold-br);font-size:clamp(10px,calc(var(--app-h) * .028),13px);font-weight:700;white-space:nowrap;pointer-events:none}.mj-countdown:empty{display:none}.mj-top .mj-auto{padding:2px clamp(7px,calc(var(--app-h) * .018),12px);min-height:0;border-radius:999px;background:var(--mj-panel);border:1px solid var(--mj-line);color:var(--mj-muted);font-size:clamp(10px,calc(var(--app-h) * .028),13px);white-space:nowrap}.mj-top .mj-auto.active{color:#fdeed3;border-color:var(--mj-line2);background:linear-gradient(120deg,var(--mj-red-br),var(--mj-red2))}.mj-stamp-host{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:6}.mj-stamp{font-family:var(--mj-kai);font-size:clamp(30px,calc(var(--app-h) * .13),54px);font-weight:900;letter-spacing:6px;color:var(--mj-gold-br);text-shadow:0 0 26px rgba(233,196,106,.65),0 4px 6px rgba(0,0,0,.65);border:3px solid var(--mj-gold);padding:2px 24px 6px;border-radius:16px;rotate:-4deg;background:#0d2418e6;animation:mj-stamp .35s cubic-bezier(.2,1.6,.4,1)}.mj-stamp.red{color:#ffd9d0;border-color:var(--mj-red-br);text-shadow:0 0 26px rgba(232,101,79,.8)}@keyframes mj-stamp{0%{scale:1.9;opacity:0}to{scale:1;opacity:1}}.mj-banner{flex:0 1 auto;min-width:0;font-family:var(--mj-kai);font-size:clamp(11px,calc(var(--app-h) * .033),18px);letter-spacing:1px;color:var(--mj-gold-br);padding:5px 16px;border-radius:999px;border:1px solid var(--mj-line2);background:#0a1e14e0;white-space:nowrap}.mj-banner.mine{font-size:clamp(11.5px,calc(var(--app-h) * .036),19px);color:#fdeed3;border-color:#f6dd9aa6;background:linear-gradient(120deg,var(--mj-red-br),var(--mj-red2));box-shadow:0 6px 20px #c73e2c80,inset 0 0 0 1px #f6dd9a66;animation:mj-breath 1.5s ease-in-out infinite}@keyframes mj-breath{50%{box-shadow:0 6px 30px #e8654fcc,inset 0 0 0 1px #f6dd9ab3}}.mj-self{position:absolute;bottom:var(--mj-gap);left:50%;transform:translate(-50%);z-index:4;display:flex;flex-direction:column;gap:4px;max-width:min(96%,940px);padding:6px 12px;border-radius:14px;background:linear-gradient(180deg,#0000002e,#00000057);border:1px solid var(--mj-line);transition:box-shadow .2s}.mj-self.active{box-shadow:var(--mj-turn);border-color:transparent}.mj-row{display:flex;flex-wrap:wrap;gap:2px;align-items:center;min-height:calc(var(--mj-rw) * 1.4)}.mj-self .mj-row{flex-wrap:nowrap}.mj-col{display:flex;flex-direction:column;align-items:center;gap:1px}.mj-col .mj-tile.back:nth-child(n+5){display:none}.mj-opp-left .mj-tile.back.small,.mj-opp-right .mj-tile.back.small{width:clamp(9px,calc(var(--app-h) * .03),15px);height:clamp(12px,calc(var(--app-h) * .042),21px)}.mj-opp-left,.mj-opp-right{max-height:calc(100% - (var(--mj-self-h) + var(--mj-gap) * 2 + var(--mj-rail-h)) * 2);overflow:hidden}.mj-label{color:var(--mj-muted);margin-right:4px;font-family:var(--mj-kai);letter-spacing:2px;flex:0 0 auto}.mj-hand{align-items:flex-end}.mj-ting{flex:0 0 auto;display:flex;align-items:center;gap:clamp(3px,calc(var(--app-h) * .01),6px);padding:2px clamp(7px,calc(var(--app-h) * .018),12px);border-radius:999px;border:1px solid rgba(233,196,106,.6);background:#08160eeb;box-shadow:0 3px 12px #00000073,inset 0 0 0 1px #e9c46a1f;color:var(--mj-text);font-size:clamp(11px,calc(var(--app-h) * .03),14px);line-height:1.5;white-space:nowrap}.mj-ting-label{font-family:var(--mj-kai);font-weight:700;letter-spacing:1px;color:var(--mj-gold-br)}.mj-ting-tile{display:inline-block;padding:0 clamp(3px,calc(var(--app-h) * .008),5px);border-radius:4px;background:linear-gradient(180deg,var(--mj-paper1),var(--mj-paper2));border:1px solid #f3ecd2;box-shadow:0 1px 0 var(--mj-edge);color:var(--mj-suit-z);font-family:var(--mj-kai);font-weight:700}.mj-ting-tile.suit-m{color:var(--mj-suit-m)}.mj-ting-tile.suit-s{color:var(--mj-suit-s)}.mj-ting-tile.suit-p{color:var(--mj-suit-p)}.mj-ting-tile.suit-z{color:var(--mj-suit-z)}.mj-ting-more,.mj-ting-left{color:var(--mj-muted)}.mj-ting-ting{border-color:transparent;box-shadow:0 0 0 2px #e9c46ad9,0 4px 14px #e9c46a47,inset 0 0 0 1px #e9c46a33}.mj-ting-unready{border-color:var(--mj-line);background:#08160eb8;box-shadow:none}.mj-ting-unready .mj-ting-label{color:var(--mj-muted);font-weight:400}.mj-ting-win{border-color:#f6dd9aa6;background:linear-gradient(120deg,var(--mj-red-br),var(--mj-red2));box-shadow:0 4px 16px #c73e2c73,inset 0 0 0 1px #f6dd9a66;animation:mj-breath 1.4s ease-in-out infinite}.mj-ting-win .mj-ting-label{color:#fdeed3;letter-spacing:2px}.mj-actions{flex:0 0 auto;display:flex;align-items:center;gap:clamp(5px,calc(var(--app-h) * .016),10px);flex-wrap:wrap;justify-content:flex-end}.mj-actions .btn{width:clamp(36px,calc(var(--app-h) * .13),54px);height:clamp(36px,calc(var(--app-h) * .13),54px);min-height:0;padding:0;border-radius:50%;font-family:var(--mj-kai);font-size:clamp(16px,calc(var(--app-h) * .058),26px);background:#1c4331;color:var(--mj-gold-br);border:1px solid var(--mj-line2);box-shadow:0 4px #0e3028,inset 0 0 0 4px #e9c46a1f;transition:transform .15s}.mj-actions .btn:hover{transform:translateY(-3px)}.mj-actions .btn.mj-act-wide{width:auto;height:auto;border-radius:12px;padding:clamp(6px,calc(var(--app-h) * .02),10px) clamp(10px,calc(var(--app-h) * .03),16px);font-family:inherit;font-size:clamp(12px,calc(var(--app-h) * .034),16px);letter-spacing:1px}.mj-actions .btn.primary{width:clamp(44px,calc(var(--app-h) * .155),64px);height:clamp(44px,calc(var(--app-h) * .155),64px);font-size:clamp(18px,calc(var(--app-h) * .066),30px);font-weight:900;background:linear-gradient(140deg,var(--mj-red-br),var(--mj-red2));color:#fdeed3;border-color:#ffe6b0;box-shadow:0 4px #6e1f14,inset 0 0 0 4px #f6dd9a66;animation:mj-breath 1.4s ease-in-out infinite}.mj-actions .btn.mj-act-pass{width:auto;height:auto;min-height:clamp(32px,calc(var(--app-h) * .1),46px);border-radius:999px;border:1px solid rgba(233,196,106,.4);box-shadow:none;background:#0a1e14cc;font-family:inherit;font-size:clamp(12px,calc(var(--app-h) * .034),16px);color:var(--mj-text);padding:0 clamp(10px,calc(var(--app-h) * .03),18px)}.mj-actions .btn.mj-act-pass:hover{color:#fff;border-color:var(--mj-line2);transform:none}.mj-actions .mj-status{font-family:var(--mj-kai);letter-spacing:1px;font-size:clamp(11px,calc(var(--app-h) * .031),16px);color:var(--mj-gold-br);border:1px solid var(--mj-line2);border-radius:999px;padding:5px 14px;background:#0d2418d9;white-space:nowrap}.mj-tile{position:relative;width:var(--mj-tw);height:calc(var(--mj-tw) * 1.4);border-radius:5px;background:linear-gradient(180deg,var(--mj-paper1),var(--mj-paper2));border:1px solid #f3ecd2;box-shadow:0 3px 0 var(--mj-edge),0 5px 8px #0006,inset 0 1px #ffffffb3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--mj-suit-z);line-height:1;flex:0 0 auto;font-family:var(--mj-kai)}.mj-tile-main{font-size:calc(var(--mj-tw) * .46);font-weight:700}.mj-tile-sub{font-size:calc(var(--mj-tw) * .3);opacity:.9;margin-top:1px}.mj-tile.small{width:var(--mj-rw);height:calc(var(--mj-rw) * 1.4);border-radius:3px;box-shadow:0 2px #97b3a0,0 3px 4px #163a2d80}.mj-tile.small .mj-tile-main{font-size:calc(var(--mj-rw) * .5)}.mj-tile.small .mj-tile-sub{font-size:calc(var(--mj-rw) * .34)}.mj-tile.suit-m .mj-tile-main{color:var(--mj-suit-m)}.mj-tile.suit-s .mj-tile-main{color:var(--mj-suit-s)}.mj-tile.suit-p .mj-tile-main{color:var(--mj-suit-p)}.mj-tile.suit-z .mj-tile-main{color:var(--mj-suit-z)}.mj-tile.back{width:var(--mj-bw);height:calc(var(--mj-bw) * 1.4);background:linear-gradient(180deg,var(--mj-back1),var(--mj-back2));border:1px solid rgba(0,0,0,.3);box-shadow:0 2px #153526,0 3px 5px #00000059,inset 0 0 0 2px #e9c46a1f}.mj-tile.back.small{width:var(--mj-bw);height:calc(var(--mj-bw) * 1.4)}.mj-tile.clickable{cursor:pointer;transition:transform .1s}.mj-tile.clickable:hover{transform:translateY(-8%)}.mj-tile.mj-drawn{margin-left:clamp(8px,calc(var(--app-h) * .03),18px);width:calc(var(--mj-tw) * 1.04);height:calc(var(--mj-tw) * 1.4 * 1.04);transform:translateY(-6%);box-shadow:0 0 0 2px var(--mj-gold),0 0 16px #e9c46acc,0 3px 0 var(--mj-edge),0 6px 10px #00000073;z-index:2;animation:mj-drawn-in .26s ease-out}.mj-tile.mj-drawn.clickable:hover{transform:translateY(-13%)}.mj-tile.mj-drawn:after{content:"摸";position:absolute;top:calc(var(--mj-tw) * -.2);right:calc(var(--mj-tw) * -.12);width:calc(var(--mj-tw) * .46);height:calc(var(--mj-tw) * .46);display:grid;place-items:center;border-radius:50%;font-family:var(--mj-kai);font-size:calc(var(--mj-tw) * .3);font-weight:700;color:#fdeed3;background:linear-gradient(140deg,var(--mj-red-br),var(--mj-red2));border:1px solid var(--mj-gold-br);box-shadow:0 2px 6px #00000080}@keyframes mj-drawn-in{0%{opacity:.2;transform:translateY(-16%) scale(.9)}to{opacity:1;transform:translateY(-6%) scale(1)}}.mj-meld{display:flex;gap:1px;padding:2px 3px;border-radius:6px;background:#00000042;border:1px solid rgba(233,196,106,.14)}.mj-discard{display:flex;flex-wrap:wrap;gap:1px;align-items:center;min-height:calc(var(--mj-rw) * 1.4)}.mj-overlay{position:absolute;inset:0;background:#082b25bf;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:20}.mj-modal{min-width:min(78%,440px);max-width:92%;max-height:88%;overflow:auto;padding:16px 20px;border-radius:14px;background:linear-gradient(170deg,#f7f0dc,#eee2c4);color:#3a2c10;border:1px solid rgba(233,196,106,.7);box-shadow:0 18px 50px #0009}.mj-modal h2{font-family:var(--mj-kai);font-size:1.5em;letter-spacing:3px;color:#7a2e1d;margin:0 0 10px;text-align:center}.mj-score{display:flex;justify-content:space-between;gap:12px;padding:6px 2px;border-bottom:1px dashed rgba(122,46,29,.25);font-size:.98em}.mj-score .plus{color:#b3261e;font-weight:700}.mj-score .minus{color:#1d7a3f}.mj-modal-footer{display:flex;gap:10px;justify-content:center;margin-top:14px}.mj-modal .btn{background:#e9e2c8;color:#2c5544;border:1px solid #c3cfba;border-radius:8px;padding:8px 20px}.mj-modal .btn.primary{background:linear-gradient(120deg,var(--mj-red),var(--mj-red2));color:#fdeed3;border-color:var(--mj-red-br)}.mj-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:10px}.mj-tag{padding:2px 10px;border-radius:999px;font-size:.88em;background:#e9c46a2e;border:1px solid rgba(201,164,78,.55);color:#7a2e1d}.mj-tag-strong{background:linear-gradient(120deg,var(--mj-red-br),var(--mj-red2));border-color:var(--mj-red-br);color:#fdeed3;font-weight:700}.mj-win-hand{padding:8px 0;border-bottom:1px dashed rgba(122,46,29,.25);margin-bottom:6px}.mj-modal.mj-win{border-color:var(--mj-gold);box-shadow:0 0 0 2px #e9c46a80,0 18px 50px #0009}.mj-win .mj-tag-strong{animation:mj-pop .42s ease-out}@keyframes mj-pop{0%{transform:scale(.6);opacity:.2}60%{transform:scale(1.18);opacity:1}to{transform:scale(1)}}.mj-table.mj-over .mj-tile.clickable{transform:none;cursor:default}.mj-chat-btn{padding:4px 10px}.mj-chat-bubble{position:absolute;top:-6px;right:4px;transform:translateY(-100%);max-width:62%;padding:4px 11px;border-radius:10px;background:linear-gradient(150deg,var(--mj-red-br),var(--mj-red2));border:1px solid rgba(246,221,154,.6);color:#fdeed3;font-size:.95em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:9;animation:mj-pop .24s ease-out;box-shadow:0 6px 16px #c73e2c73}.mj-chat-bubble.emoji{font-size:1.5em;line-height:1.1;padding:2px 8px}.mj-chat-panel{position:absolute;left:50%;top:52px;transform:translate(-50%);z-index:12;width:min(94%,780px);max-height:calc(100% - 64px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 12px;border-radius:12px;background:linear-gradient(170deg,#f7f0dc,#eee2c4);color:#3a2c10;border:1px solid rgba(233,196,106,.7);box-shadow:0 18px 50px #0009;display:flex;flex-direction:column;gap:8px}.mj-chat-panel-head{display:flex;align-items:center;justify-content:space-between;color:#7a2e1d;font-weight:700;font-family:var(--mj-kai);letter-spacing:2px}.mj-chat-panel .btn{background:#e9e2c8;color:#2c5544;border-color:#c3cfba}.mj-chat-panel .chat-item{font-size:clamp(11px,calc(var(--app-h) * .028),14px);padding:clamp(4px,calc(var(--app-h) * .016),9px) clamp(6px,calc(var(--app-h) * .02),12px);min-height:clamp(28px,calc(var(--app-h) * .07),42px)}.mj-chat-panel .chat-item.emoji{font-size:clamp(20px,calc(var(--app-h) * .075),34px);line-height:1.15;padding:clamp(2px,calc(var(--app-h) * .008),5px) clamp(4px,calc(var(--app-h) * .012),8px);background:transparent}.mj-chat-panel .chat-sec-title{color:#7a2e1d;opacity:1}.mj-replay-host{position:fixed;inset:0;z-index:60;background:var(--mj-felt3, #0b2115)}.mj-replay-bar{gap:6px;height:auto}.mj-replay-bar .mj-stat{white-space:nowrap;max-width:34%;overflow:hidden;text-overflow:ellipsis}.mj-mic-btn{padding:4px 10px}.mj-mic-btn.recording{background:#dc3c3c47;border-color:#ff8a8a;color:#ffd9d9}.mj-mic-btn:disabled{opacity:.55}.mj-voice-bubble{cursor:pointer}.mj-voice-pending{border-color:var(--mj-line2);color:var(--mj-gold-br)}@media(max-width:760px){.mj-brand-name{display:none}.mj-rail-main{gap:4px}.mj-banner,.mj-window{padding:4px 10px}}
