.casual-shell{position:relative;min-height:100dvh;padding:clamp(6px,1.2vw,14px);color:#fff4da;font-family:Songti SC,"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;background:radial-gradient(circle at 16% 10%,rgba(219,179,86,.2),transparent 27%),radial-gradient(circle at 84% 86%,rgba(42,129,94,.26),transparent 28%),linear-gradient(140deg,#091310,#16291f 48%,#110f0b)}.link-level-select{display:grid;grid-template-rows:auto minmax(0,1fr);gap:clamp(10px,1.5vw,16px);width:min(1040px,100%);height:calc(100dvh - clamp(12px,2.4vw,28px));min-height:520px;margin:0 auto;padding:clamp(12px,1.7vw,18px);overflow:hidden}.link-level-select__top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding-bottom:10px;border-bottom:1px solid rgba(255,247,227,.13)}.link-level-select__top p{margin:0 0 3px;color:#f6efe19e;font-size:.75rem}.link-level-select__top h1{margin:0;color:#fff4da;font-size:clamp(1.35rem,3vw,2rem);line-height:1.05}.link-level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.4vw,14px);align-content:start;min-height:0;padding:2px 2px 16px;overflow-y:auto;overscroll-behavior:contain}.link-level-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:5px 10px;min-height:150px;padding:clamp(12px,1.8vw,16px);overflow:hidden;border:1px solid rgba(255,247,227,.15);border-radius:8px;color:#fff4da;background:linear-gradient(135deg,rgba(255,247,227,.08),transparent 36%),#03161080;cursor:pointer;text-align:left;transition:transform .16s ease,border-color .16s ease,background-color .16s ease}.link-level-card:hover{transform:translateY(-2px);border-color:#ffd889a3;background:linear-gradient(135deg,rgba(255,216,137,.12),transparent 38%),#041e169e}.link-level-card__difficulty{justify-self:start;padding:3px 7px;border:1px solid rgba(255,216,137,.28);border-radius:999px;color:#ffd889;background:#d7a3481f;font-size:.62rem;font-weight:900}.link-level-card strong{grid-column:1;color:#fff4da;font-size:clamp(1.1rem,2.2vw,1.48rem);line-height:1.08}.link-level-card small{grid-column:1;color:#f6efe19e;font-size:.72rem;font-weight:800}.link-level-card p{grid-column:1 / -1;margin:3px 0 0;color:#f6efe1b8;font-size:.76rem;line-height:1.45}.link-level-card__best{grid-column:1;align-self:end;color:#ffd889e6;font-size:.72rem;font-weight:900}.link-level-card svg{grid-column:2;grid-row:1 / span 2;align-self:start;color:#ffd889c7}.link-game-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(6px,1vw,10px);width:100%;height:calc(100dvh - clamp(8px,1.8vw,18px));min-height:520px;margin:0 auto;padding:clamp(7px,1vw,12px);overflow:hidden}.casual-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(8px,1.2vw,12px);width:min(1120px,100%);height:calc(100dvh - clamp(12px,2.4vw,28px));min-height:520px;margin:0 auto;padding:clamp(9px,1.4vw,16px);overflow:hidden;border:1px solid rgba(215,163,72,.34);border-radius:8px;background:repeating-linear-gradient(35deg,rgba(255,247,227,.018) 0 1px,transparent 1px 6px),radial-gradient(circle at 50% 48%,#115b40f0,#07221afa 72%);box-shadow:0 28px 80px #00000061,inset 0 0 0 5px #041f1642}.link-frame{grid-template-rows:auto auto minmax(0,1fr) auto}.casual-topbar{display:grid;grid-template-columns:auto minmax(120px,1fr) auto auto;gap:10px;align-items:center;padding-bottom:8px;border-bottom:1px solid rgba(255,247,227,.13)}.casual-title p,.casual-result-card p{margin:0 0 2px;color:#f6efe1a3;font-size:.72rem}.casual-title h1{margin:0;color:#fff4da;font-size:clamp(1.2rem,2.6vw,1.82rem);line-height:1.05}.casual-icon-button,.casual-actions button,.casual-result-card button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid rgba(255,247,227,.18);border-radius:8px;color:#fff4da;background:#fff7e314;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background-color .16s ease}.casual-icon-button{width:36px}.casual-actions,.casual-stats{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.casual-stats span{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 10px;border:1px solid rgba(255,247,227,.14);border-radius:8px;color:#fff7e3;background:#03120d6b;font-size:.75rem;font-weight:800;white-space:nowrap}.casual-actions button,.casual-result-card button{padding:0 10px;font-size:.78rem;font-weight:800}.casual-icon-button:hover,.casual-actions button:hover:not(:disabled),.casual-result-card button:hover{transform:translateY(-1px);border-color:#ffd889ad;background:#d7a34824}.link-playfield{display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden;padding:clamp(2px,.6vw,6px)}.link-board-viewport{display:grid;width:100%;height:100%;overflow:hidden;overscroll-behavior:contain}.link-board-stage{display:grid;place-items:center;min-width:100%;min-height:100%}.link-board{--tile-gap: clamp(2px, .48vw, 5px);position:relative;display:grid;grid-template-columns:repeat(var(--link-cols),minmax(0,1fr));grid-template-rows:repeat(var(--link-rows),minmax(0,1fr));gap:var(--tile-gap);width:auto;height:100%;max-width:calc(100dvw - 18px);max-height:100%;aspect-ratio:var(--link-aspect);padding:clamp(5px,.7vw,9px);border:1px solid rgba(255,247,227,.15);border-radius:8px;background:linear-gradient(90deg,rgba(255,247,227,.04) 1px,transparent 1px),linear-gradient(rgba(255,247,227,.04) 1px,transparent 1px),#0419126b;background-size:calc(100% / var(--link-cols)) calc(100% / var(--link-rows));box-shadow:inset 0 0 0 5px #00000024}.link-tile{position:relative;z-index:2;display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:1px solid rgba(255,247,227,.13);border-radius:6px;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 34%),repeating-linear-gradient(45deg,#124536 0,#124536 5px,#0d3328 5px,#0d3328 10px);cursor:pointer;transition:transform .15s ease,border-color .15s ease,filter .15s ease,opacity .18s ease}.link-tile:not(:disabled):hover,.link-tile.is-selected,.link-tile.is-hinted{transform:translateY(-3px);border-color:#ffd889e0;filter:drop-shadow(0 12px 14px rgba(0,0,0,.28))}.link-tile.is-selected{background:#d7a3482b}.link-tile.is-hinted{box-shadow:0 0 0 2px #ffd8893d}.link-tile.is-removed{pointer-events:none;opacity:0;transform:scale(.72)}.link-tile img{display:block;width:auto;height:80%;max-width:80%;object-fit:contain;filter:drop-shadow(0 7px 7px rgba(0,0,0,.25));-webkit-user-select:none;user-select:none}.link-path{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;overflow:visible}.link-path polyline{fill:none;stroke:#ffd889;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px rgba(255,216,137,.72));stroke-dasharray:1;animation:link-path-draw .42s ease both}@keyframes link-path-draw{0%{stroke-dashoffset:1;opacity:.3}to{stroke-dashoffset:0;opacity:1}}.casual-footer,.link-game-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#f6efe194;font-size:.72rem}.casual-result-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:grid;place-items:center;padding:16px;background:#020c0994;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.casual-result-card{display:grid;gap:10px;width:min(340px,100%);padding:18px;border:1px solid rgba(255,216,137,.46);border-radius:8px;background:linear-gradient(145deg,#174734fa,#061913fa);box-shadow:0 24px 60px #0000006b;text-align:center}.casual-result-card h2{margin:0;color:#fff4da;font-size:1.45rem}.casual-result-card span{color:#f6efe1bd;font-size:.86rem}.casual-result-card div{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.casual-result-card button:first-child{color:#20160c;border-color:#d7a348b8;background:linear-gradient(180deg,#ffd47c,#c9892e)}@media(orientation:landscape)and (max-height:430px){.casual-shell{padding:max(4px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.casual-frame{height:calc(100dvh - 8px);min-height:0;padding:7px 9px;gap:6px}.link-level-select,.link-game-frame{height:calc(100dvh - 8px);min-height:0;padding:6px 8px}.link-level-select{gap:6px}.link-level-select__top{padding-bottom:5px}.link-level-select__top p{display:none}.link-level-select__top h1{font-size:clamp(1rem,2.8vw,1.28rem)}.link-level-grid{gap:7px;padding-bottom:6px}.link-level-card{min-height:86px;padding:8px 9px}.link-level-card strong{font-size:.92rem}.link-level-card small,.link-level-card__best{font-size:.58rem}.link-level-card p{display:-webkit-box;overflow:hidden;font-size:.6rem;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.casual-topbar{grid-template-columns:auto minmax(90px,1fr) auto auto;gap:6px;padding-bottom:5px}.casual-title p,.casual-footer{display:none}.casual-title h1{font-size:clamp(1rem,2.8vw,1.28rem)}.casual-icon-button,.casual-actions button{min-height:27px;border-radius:7px}.casual-icon-button{width:29px}.casual-actions,.casual-stats{gap:4px}.casual-stats span{min-height:25px;padding:0 6px;font-size:.62rem}.casual-actions button{padding:0 6px;font-size:.62rem}.casual-actions svg,.casual-stats svg{width:13px;height:13px}.link-playfield{min-height:0;padding:2px 4px}.link-board{width:auto;height:100%;max-width:calc(100dvw - 16px);max-height:100%;gap:3px;padding:5px}.link-tile img{width:auto;height:80%;max-width:80%}.link-path{top:0;right:0;bottom:0;left:0}}@media(orientation:landscape)and (max-height:300px){.casual-frame,.link-level-select,.link-game-frame{padding:5px 7px;gap:4px}.casual-topbar{grid-template-columns:auto minmax(84px,1fr) auto auto}.casual-title h1{font-size:.92rem}.link-level-card{min-height:70px;padding:6px 8px}.link-level-card p{-webkit-line-clamp:1}.casual-stats span:nth-child(3){display:none}.casual-stats span:nth-child(4){display:none}.casual-actions button{min-height:23px;padding:0 5px}.casual-icon-button{width:25px;min-height:23px}.link-board{width:auto;height:100%;gap:2px;padding:4px}}@media(orientation:landscape)and (max-height:430px)and (max-width:940px){.link-board-viewport{overflow:auto;cursor:grab;scrollbar-width:none;touch-action:none}.link-board-viewport::-webkit-scrollbar{display:none}.link-board-viewport.is-panning{cursor:grabbing}.link-board-stage{--mobile-cell: 34px;place-items:center;min-width:max(100%,calc(var(--link-cols) * var(--mobile-cell) + 22px));min-height:max(100%,calc(var(--link-rows) * var(--mobile-cell) + 22px));padding:2px}.link-board{width:max(calc(100% - 8px),calc(var(--link-cols) * var(--mobile-cell)));height:auto;max-width:none;max-height:none}}@media(orientation:portrait)and (max-width:1024px){.casual-frame,.link-level-select,.link-game-frame{display:none}.casual-shell .rotate-device{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;color:#fff7e3;background:radial-gradient(circle at 50% 20%,rgba(215,163,72,.18),transparent 30%),linear-gradient(145deg,#0a1711,#102b21 55%,#07100d);text-align:center}.casual-shell .rotate-device div{display:grid;gap:10px;max-width:280px;padding:20px;border:1px solid rgba(215,163,72,.36);border-radius:8px;background:#0000003d}.casual-shell .rotate-device strong{color:#ffd889;font-size:1.3rem}.casual-shell .rotate-device span{color:#f5f0e7bd;line-height:1.5}}.yang-shell{background:radial-gradient(circle at 18% 12%,rgba(231,184,82,.2),transparent 28%),radial-gradient(circle at 80% 70%,rgba(190,46,37,.18),transparent 30%),linear-gradient(140deg,#0a1310,#173022 48%,#161008)}.yang-frame{width:min(1180px,100%)}.yang-playfield{display:grid;place-items:center;min-height:0;padding:clamp(4px,.8vw,8px)}.yang-stack{--yang-tile-w: 56px;--yang-tile-h: 76px;--yang-step-x: calc(var(--yang-tile-w) + 6px);--yang-step-y: calc(var(--yang-tile-h) + 6px);--yang-layer-x: 3px;--yang-layer-y: -4px;position:relative;width:min(100%,calc(var(--yang-step-x) * 8.4 + var(--yang-tile-w)));height:min(100%,calc(var(--yang-step-y) * 5.2 + var(--yang-tile-h) + 16px));border:1px solid rgba(255,247,227,.15);border-radius:8px;background:linear-gradient(90deg,rgba(255,247,227,.03),transparent 24%,rgba(255,247,227,.03) 52%,transparent),radial-gradient(ellipse at center,#196246bd,#051a14a3 68%);box-shadow:inset 0 0 0 5px #00000021,0 18px 42px #0000003d}.yang-stack:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1px solid rgba(215,163,72,.18);border-radius:8px;pointer-events:none}.yang-tile{position:absolute;left:calc(50% - (var(--yang-step-x) * 3.35) + var(--yang-x) * var(--yang-step-x) + var(--yang-layer) * var(--yang-layer-x));top:calc(50% - (var(--yang-step-y) * 2.65) + var(--yang-y) * var(--yang-step-y) + var(--yang-layer) * var(--yang-layer-y));z-index:calc(10 + var(--yang-layer));display:grid;place-items:center;width:var(--yang-tile-w);height:var(--yang-tile-h);padding:0;border:0;border-radius:8px;background:transparent;cursor:pointer;transition:transform .15s ease,filter .15s ease,opacity .18s ease,border-color .15s ease}.yang-tile img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 9px 8px rgba(0,0,0,.34)) drop-shadow(0 1px 0 rgba(255,255,255,.18));-webkit-user-select:none;user-select:none}.yang-tile.is-clickable:hover,.yang-tile.is-hinted{transform:translateY(-6px);border-color:#ffd889db;filter:drop-shadow(0 14px 15px rgba(0,0,0,.3))}.yang-tile.is-hinted{box-shadow:0 0 0 2px #ffd88942}.yang-tile.is-blocked{cursor:not-allowed;opacity:1;filter:brightness(.48) saturate(.72) contrast(.9)}.yang-tile.is-removed{pointer-events:none;opacity:0;transform:translateY(8px) scale(.78)}.yang-slotbar{display:grid;grid-template-columns:repeat(7,var(--yang-slot-w, 52px));justify-content:center;gap:clamp(5px,1vw,9px);padding:clamp(6px,1vw,10px);border:1px solid rgba(255,247,227,.14);border-radius:8px;background:linear-gradient(180deg,#fff7e314,#fff7e308),#04140f94}.yang-slot{display:grid;place-items:center;width:var(--yang-slot-w, 52px);height:var(--yang-slot-h, 70px);border:1px dashed rgba(255,247,227,.2);border-radius:8px;background:#fff7e30d}.yang-slot.is-filled{border-style:solid;border-color:#ffd88961;background:#d7a34814}.yang-slot img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 7px rgba(0,0,0,.24))}@media(orientation:landscape)and (max-height:430px){.yang-playfield{padding:1px 4px}.yang-stack{--yang-tile-w: 42px;--yang-tile-h: 56px;--yang-step-x: calc(var(--yang-tile-w) + 4px);--yang-step-y: calc(var(--yang-tile-h) + 4px);--yang-layer-x: 2px;--yang-layer-y: -3px;width:min(100%,calc(var(--yang-step-x) * 8.4 + var(--yang-tile-w)));height:min(100%,calc(var(--yang-step-y) * 5.2 + var(--yang-tile-h) + 12px))}.yang-slotbar{--yang-slot-w: 36px;--yang-slot-h: 49px;grid-template-columns:repeat(7,var(--yang-slot-w));gap:4px;padding:4px 6px}}@media(orientation:landscape)and (max-height:300px){.yang-stack{--yang-tile-w: 34px;--yang-tile-h: 46px;--yang-step-x: calc(var(--yang-tile-w) + 3px);--yang-step-y: calc(var(--yang-tile-h) + 3px);--yang-layer-x: 2px;--yang-layer-y: -2px}.yang-slotbar{--yang-slot-w: 30px;--yang-slot-h: 41px;grid-template-columns:repeat(7,var(--yang-slot-w));padding:3px 5px}}.app-shell.sc-theme{background:radial-gradient(circle at 82% 8%,rgba(240,190,96,.22),transparent 30%),radial-gradient(circle at 12% 90%,rgba(150,24,20,.4),transparent 34%),linear-gradient(140deg,#2a0b0a,#521512 46%,#240807)}.sc-theme .game-frame{border-color:#f0c06966;background:linear-gradient(135deg,rgba(255,244,221,.06),transparent 30%),radial-gradient(circle at center,#781814e6,#300a09fa 74%)}.sc-theme .top-bar{border-bottom-color:#f0c0693d}.sc-theme .mahjong-table{border-color:#f0c0694d;background:linear-gradient(90deg,transparent 49.9%,rgba(240,192,105,.05) 50%,transparent 50.1%),linear-gradient(transparent 49.9%,rgba(240,192,105,.05) 50%,transparent 50.1%),radial-gradient(circle at center,#96201aeb 0,#601410f5 55%,#3c0d0a);box-shadow:inset 0 0 70px #0006,inset 0 0 0 5px #28080766}.sc-theme .table-felt{border-color:#ffe0aa14;background:repeating-linear-gradient(35deg,rgba(255,255,255,.014) 0 1px,transparent 1px 5px),#3c0c0924}.sc-theme .human-area{border-color:#f0c06933;background:#28080780}.sc-theme .player-status{border-color:#f0c06933;background:#2e0a09b8}.sc-theme .table-seat .player-status{background:#2e0a09d1}.sc-theme .river-zone{border-color:#f0c0691f;background:#2808074d}.sc-theme .wall-counter{color:#ffe4ab;background:#00000047}.sc-theme .recent-action{border-color:#f0c0694d;color:#ffe0a1;background:#00000075}.sc-theme .tile-back{border-color:#f0c0693d;background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 34%),repeating-linear-gradient(45deg,#8f1f19 0,#8f1f19 5px,#6d1712 5px,#6d1712 10px)}.sc-theme .meld-set{background:#fff4dd1a}.sc-theme .meld-label{color:#f0c069}.sc-theme .result-card{border-color:#f0c06970;background:radial-gradient(circle at 80% 0%,rgba(240,192,105,.14),transparent 40%),linear-gradient(160deg,#5a1512,#340b0a)}.tile-button--missing .tile-face{filter:grayscale(.5) brightness(.82)}.tile-button--missing .tile-face:after{content:"缺";position:absolute;top:2px;right:2px;z-index:2;padding:0 3px;border-radius:4px;color:#fff;font-size:.6rem;font-weight:800;background:#d8392c}.tile-back--meld{width:22px;height:30px}.sc-seat-won{opacity:.82}.sc-won-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;color:#3a1206;font-weight:800;font-size:.74rem;background:linear-gradient(180deg,#f4cd7d,#c68a2c)}.sc-miss{margin-left:5px;color:#f0c069;font-style:normal;font-weight:800}.sc-winners-chip{position:absolute;left:50%;top:calc(50% - 30px);z-index:2;padding:3px 12px;border-radius:20px;color:#3a1206;font-size:.74rem;font-weight:800;background:linear-gradient(180deg,#f4cd7d,#c68a2c);transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap}.sc-kong-wrap{position:relative;display:inline-flex}.sc-kong-menu{position:absolute;bottom:calc(100% + 6px);left:0;z-index:20;display:flex;gap:6px;padding:8px;border:1px solid rgba(240,192,105,.4);border-radius:10px;background:#280807f5;box-shadow:0 12px 28px #0006}.sc-kong-item{display:grid;gap:3px;justify-items:center;padding:6px 8px;border:1px solid rgba(240,192,105,.24);border-radius:8px;color:#fff4dd;background:#fff4dd14;cursor:pointer}.sc-kong-item img{width:30px;height:42px;object-fit:contain}.sc-kong-item span{font-size:.72rem;font-weight:800;color:#f0c069}.sc-missing-panel{position:absolute;right:clamp(10px,2vw,18px);bottom:calc(var(--hand-tile-height) + clamp(52px,9vh,86px));z-index:9;display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:12px;align-items:center;width:min(560px,calc(100% - 20px));padding:10px 12px;border:1px solid rgba(240,192,105,.42);border-radius:8px;background:linear-gradient(135deg,rgba(255,244,221,.1),transparent 36%),#2c0908e6;box-shadow:0 14px 34px #00000057;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sc-missing-panel h2{margin:0;color:#fff4dd;font-size:clamp(1rem,2vw,1.28rem)}.sc-missing-panel p{margin:4px 0 0;color:#fbeedeb8;font-size:.74rem;line-height:1.35}.sc-missing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:0}.sc-missing-option{display:grid;gap:3px;justify-items:center;min-width:58px;padding:8px 9px;border:1px solid rgba(240,192,105,.4);border-radius:8px;color:#fff4dd;background:#fff4dd14;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background-color .14s ease;font-family:inherit}.sc-missing-option:hover{transform:translateY(-3px);border-color:#ffd889e6;background:#f0c06929}.sc-missing-suit{font-size:1.2rem;font-weight:900;color:#f0c069}.sc-missing-option small{color:#fbeedeb3;font-size:.68rem}@media(orientation:landscape)and (max-height:430px){.sc-missing-panel{right:6px;bottom:calc(var(--hand-tile-height) + 34px);grid-template-columns:minmax(120px,1fr) auto;gap:8px;padding:7px 8px}.sc-missing-panel h2{font-size:.82rem}.sc-missing-panel p,.sc-missing-option small{font-size:.56rem}.sc-missing-option{min-width:46px;padding:5px 6px}.sc-missing-suit{font-size:.9rem}}@media(orientation:landscape)and (max-height:320px){.sc-missing-panel{left:6px;right:6px;bottom:calc(var(--hand-tile-height) + 28px)}.sc-missing-panel p{display:none}}.sc-winner-list{display:grid;gap:8px;margin:12px 0}.sc-winner-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:8px 12px;border-radius:8px;background:#f0c0691f}.sc-winner-row strong{color:#fff4dd;text-align:left}.sc-winner-title{color:#ffe0a1;font-size:.82rem}.sc-winner-fan{color:#f0c069;font-weight:900}.sc-settle-table{display:grid;gap:6px;margin:12px 0 4px}.sc-settle-row{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;border-radius:8px;background:#0000003d;font-size:.86rem}.sc-settle-row strong{color:#fff4dd}.sc-settle-row strong.is-negative{color:#ff9b8f}.home-shell{position:relative;min-height:100dvh;display:grid;place-items:center;padding:clamp(14px,3vw,30px);color:#f6efe1;font-family:Songti SC,"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;background:radial-gradient(circle at 18% 12%,rgba(215,163,72,.18),transparent 28%),radial-gradient(circle at 84% 88%,rgba(150,24,20,.22),transparent 30%),linear-gradient(140deg,#0c1611,#162820 46%,#0b1110)}.home-frame{width:min(980px,100%);padding:clamp(16px,3vw,28px);border:1px solid rgba(215,163,72,.34);border-radius:8px;background:linear-gradient(135deg,rgba(255,247,227,.09),transparent 30%),repeating-linear-gradient(35deg,rgba(255,247,227,.018) 0 1px,transparent 1px 6px),radial-gradient(circle at 50% 42%,#14523ee6,#08231bf5 72%);box-shadow:0 28px 80px #0006,inset 0 0 0 5px #041f1647}.home-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:clamp(14px,2.4vw,22px);padding-bottom:clamp(14px,2.2vw,22px);border-bottom:1px solid rgba(255,247,227,.13);text-align:left}.home-header--split{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;justify-content:start}.home-eyebrow{margin:0 0 4px;color:#f6efe1a8;font-size:.78rem;letter-spacing:0}.home-header h1{margin:0;color:#fff4da;font-size:clamp(1.75rem,4.7vw,3.3rem);font-weight:900;letter-spacing:0;line-height:1.05;text-shadow:0 3px 12px rgba(0,0,0,.4)}.home-sub{margin:8px 0 0;color:#f6efe1b8;font-size:.9rem}.home-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2vw,16px)}.home-sections{display:grid;gap:clamp(12px,2vw,18px)}.home-section{display:grid;gap:9px;min-width:0}.home-section>h2{margin:0;color:#ffd889;font-size:.86rem;font-weight:900}.home-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;gap:12px;align-items:start;min-height:clamp(210px,26vw,260px);padding:clamp(14px,2.4vw,20px);overflow:hidden;border:1px solid rgba(255,247,227,.14);border-radius:8px;color:inherit;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;font-family:inherit}.home-card:before{content:"";position:absolute;right:-32px;bottom:-42px;width:144px;height:144px;border:1px solid rgba(215,163,72,.18);border-radius:999px;background:linear-gradient(90deg,transparent 48%,rgba(215,163,72,.16) 49%,rgba(215,163,72,.16) 51%,transparent 52%),linear-gradient(transparent 48%,rgba(215,163,72,.13) 49%,rgba(215,163,72,.13) 51%,transparent 52%);opacity:.8}.home-card--classic{background:linear-gradient(135deg,#14523e8c,#08231bb3)}.home-card--sichuan{background:linear-gradient(135deg,#96201a8c,#480e0cb8)}.home-card--link{background:linear-gradient(135deg,#145d688a,#082b30b8)}.home-card--yang{background:linear-gradient(135deg,#a95c1c8a,#49280cb8)}.home-card--locked{cursor:not-allowed;opacity:.72;background:linear-gradient(135deg,#46464175,#121612ad)}.home-card:not(:disabled):hover{transform:translateY(-3px);border-color:#ffd889b8;box-shadow:0 16px 34px #00000057}.home-card__icon{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:8px;color:#20160c;background:linear-gradient(180deg,#ffd47c,#c9892e)}.home-card__body{position:relative;z-index:1;grid-column:1 / -1;align-self:end}.home-card__body h3{margin:0 0 6px;color:#fff4da;font-size:clamp(1.4rem,3vw,2rem);font-weight:900}.home-card__body p{margin:0;color:#f6efe1c7;font-size:.84rem;line-height:1.5}.home-card__go{position:relative;z-index:1;align-self:end;color:#ffd889cc}.home-card__badge{justify-self:end;padding:5px 9px;border:1px solid rgba(255,247,227,.18);border-radius:999px;color:#f6efe1ad;background:#fff7e314;font-size:.72rem;font-weight:800;white-space:nowrap}.home-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid rgba(255,247,227,.18);border-radius:8px;color:#fff4da;background:#fff7e314;cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;white-space:nowrap}.home-back:hover{border-color:#ffd889ad;background:#d7a34824}.home-footer{margin-top:20px;text-align:left;color:#f6efe185;font-size:.78rem}@media(max-width:640px){.home-header{display:block}.home-header--split{display:grid;grid-template-columns:1fr;gap:10px}.home-modes{grid-template-columns:1fr}.home-card{min-height:176px}.home-card__go,.home-card__badge{grid-column:2;justify-self:start}}@media(orientation:landscape)and (max-height:430px){.home-shell{min-height:100dvh;padding:max(4px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));place-items:stretch}.home-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-self:center;width:min(900px,100%);max-height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)));margin:0 auto;padding:clamp(8px,1.7vw,12px);overflow:hidden;box-shadow:0 16px 40px #0000005c,inset 0 0 0 4px #041f163d}.home-header{align-items:center;gap:10px;margin-bottom:8px;padding-bottom:8px}.home-header--split{grid-template-columns:auto minmax(0,1fr)}.home-eyebrow{margin-bottom:2px;font-size:.62rem}.home-header h1{font-size:clamp(1.18rem,3.4vw,1.75rem)}.home-sub{margin-top:3px;font-size:.68rem;line-height:1.2}.home-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.home-sections{gap:6px;min-height:0}.home-section{gap:4px;min-height:0}.home-section>h2{font-size:.62rem}.home-card{grid-template-columns:36px minmax(0,1fr) auto;grid-template-rows:1fr;gap:9px;align-items:center;min-height:54px;padding:9px 10px}.home-card:before{right:-44px;bottom:-58px;width:116px;height:116px}.home-card__icon{width:34px;height:34px}.home-card__icon svg{width:20px;height:20px}.home-card__body{grid-column:auto;align-self:center;min-width:0}.home-card__body h3{margin-bottom:3px;font-size:clamp(.96rem,2.4vw,1.22rem);line-height:1.08}.home-card__body p{display:-webkit-box;overflow:hidden;font-size:.66rem;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-card__go,.home-card__badge{grid-column:auto;align-self:center;justify-self:end}.home-card__badge{padding:3px 6px;font-size:.58rem}.home-back{min-height:26px;padding:0 8px;font-size:.68rem}.home-footer{margin-top:8px;font-size:.62rem}}@media(orientation:landscape)and (max-height:300px){.home-frame{padding:6px 8px}.home-header{margin-bottom:6px;padding-bottom:6px}.home-eyebrow,.home-sub,.home-footer{display:none}.home-header h1{font-size:clamp(1.02rem,3vw,1.36rem)}.home-card{grid-template-columns:30px minmax(0,1fr) auto;gap:7px;min-height:46px;padding:7px 8px}.home-card__icon{width:28px;height:28px}.home-card__icon svg{width:17px;height:17px}.home-card__body h3{font-size:.9rem}.home-card__body p{font-size:.6rem;-webkit-line-clamp:1}.home-back{min-height:22px;padding:0 6px;font-size:.62rem}}:root{color:#f5f0e7;background:#101713;font-family:Songti SC,"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--table-green: #123d31;--table-green-deep: #09291f;--ink: #1d1712;--ivory: #fff7e3;--gold: #d7a348;--red: #c3362b;--green: #16845e;--blue: #2270a6}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button{font:inherit}.app-shell{position:relative;min-height:100svh;padding:clamp(6px,1.2vw,14px);background:radial-gradient(circle at 18% 12%,rgba(215,163,72,.2),transparent 26%),linear-gradient(135deg,#0c1611,#162820 46%,#0b1110)}.rotate-device{display:none}.game-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(6px,1vw,10px);width:min(1280px,100%);height:calc(100svh - clamp(12px,2.4vw,28px));min-height:650px;margin:0 auto;padding:clamp(8px,1.3vw,14px);border:1px solid rgba(215,163,72,.34);border-radius:8px;background:linear-gradient(135deg,rgba(255,247,227,.08),transparent 28%),radial-gradient(circle at center,#14523ef2,#08231bfa 72%);box-shadow:0 28px 80px #00000061}.top-bar{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(260px,1fr);gap:10px;align-items:center;padding:4px 8px 8px;border-bottom:1px solid rgba(255,247,227,.13)}.eyebrow{margin:0 0 2px;color:#f5f0e7a3;font-size:.74rem;letter-spacing:0}h1,h2{margin:0;letter-spacing:0}h1{color:#fff4da;font-size:clamp(1.16rem,2.3vw,1.78rem);font-weight:800}.table-chips,.score-chip,.rule-chip,.mode-button,.primary-command,.secondary-command,.icon-command{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;border:1px solid rgba(255,247,227,.16);border-radius:8px;color:#fff7e3;background:#fff7e314;white-space:nowrap}.table-chips{gap:6px;min-height:0;border:0;background:transparent}.score-chip{min-height:34px;padding:0 13px;color:#fff7e3;border-color:#fff7e333;background:#04120d8a;font-size:.8rem;font-weight:800}.rule-chip{padding:0 14px;color:#ffd889;border-color:#d7a3486b;background:#d7a3481f}.mode-actions,.command-bar,.result-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.mode-button,.primary-command,.secondary-command,.icon-command{cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,opacity .16s ease}.mode-button{padding:0 10px}.mode-button--active,.primary-command{border-color:#d7a348b8;color:#20160c;background:linear-gradient(180deg,#ffd47c,#c9892e);font-weight:800}.secondary-command{padding:0 13px}.icon-command{width:34px;padding:0}.icon-command--active{border-color:#ffd889b8;color:#ffd889;background:#d7a3482e}.mode-button:hover:not(:disabled),.primary-command:hover:not(:disabled),.secondary-command:hover:not(:disabled),.icon-command:hover:not(:disabled){transform:translateY(-1px);border-color:#fff7e36b}button:disabled{cursor:not-allowed;opacity:.43}.table-layout{display:grid;grid-template-columns:minmax(82px,.22fr) minmax(460px,1fr) minmax(82px,.22fr);grid-template-rows:minmax(72px,auto) minmax(0,1fr);gap:clamp(6px,.9vw,10px);min-height:0}.opponent-panel{position:relative;display:grid;gap:5px;min-width:0;padding:7px;border:1px solid rgba(255,247,227,.12);border-radius:8px;background:#05140f54}.opponent-panel--top{grid-column:2;grid-row:1}.opponent-panel--left{grid-column:1;grid-row:1 / span 2}.opponent-panel--right{grid-column:3;grid-row:1 / span 2}.opponent-panel.is-active,.player-status.is-active{border-color:#ffd380b8;box-shadow:0 0 0 1px #d7a34824}.player-status{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;padding:6px 8px;border:1px solid rgba(255,247,227,.12);border-radius:8px;background:#fff7e312}.player-status>div{min-width:0}.player-status strong,.player-status span,.player-status small{display:block}.player-status strong{color:#fff7e3;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relation-badge{display:inline-block;margin-right:4px;color:#ffd889;font-size:.68rem;font-weight:900}.player-status span,.player-status small{color:#f5f0e7a8;font-size:.68rem;flex:0 0 auto;white-space:nowrap}.concealed-hand{display:flex;gap:3px;justify-content:center;flex-wrap:wrap;min-height:30px;max-height:66px;overflow:hidden}.opponent-panel--left .concealed-hand,.opponent-panel--right .concealed-hand{align-content:flex-start}.tile-back{width:18px;height:27px;border-radius:5px;border:1px solid rgba(255,247,227,.18);background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 34%),repeating-linear-gradient(45deg,#124536 0,#124536 5px,#0d3328 5px,#0d3328 10px);box-shadow:inset 0 -2px #00000047}.table-center{position:relative;grid-column:2;grid-row:2;display:grid;grid-template-rows:auto minmax(0,1fr);gap:7px;min-height:0;padding:clamp(8px,1.3vw,14px);border:1px solid rgba(215,163,72,.24);border-radius:8px;background:linear-gradient(rgba(255,247,227,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,247,227,.05) 1px,transparent 1px),#04161061;background-size:28px 28px}.wall-counter{display:inline-flex;align-items:center;justify-self:center;gap:7px;min-height:28px;padding:0 10px;border-radius:8px;color:#f8dfad;background:#0003}.river-board{position:relative;display:grid;grid-template-columns:minmax(80px,.8fr) minmax(160px,1.1fr) minmax(80px,.8fr);grid-template-rows:minmax(74px,1fr) 8px minmax(74px,1fr);gap:6px;min-height:0}.river-zone{display:grid;gap:3px;min-width:0;min-height:56px;padding:6px;border:1px solid rgba(255,247,227,.11);border-radius:8px;background:#06120e40}.river-zone--top{grid-column:2;grid-row:1}.river-zone--left{grid-column:1;grid-row:1 / span 3}.river-zone--right{grid-column:3;grid-row:1 / span 3}.river-zone--bottom{grid-column:2;grid-row:3}.river-zone__name{color:#f5f0e794;font-size:.72rem;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.river-zone__tiles{display:flex;gap:2px;flex-wrap:wrap;align-content:flex-start;min-height:42px}.river-zone--top .river-zone__tiles{justify-content:center;transform:rotate(180deg)}.river-zone--left .river-zone__tiles{align-content:center;justify-content:center;transform:rotate(90deg);transform-origin:center;min-height:176px}.river-zone--right .river-zone__tiles{align-content:center;justify-content:center;transform:rotate(-90deg);transform-origin:center;min-height:176px}.river-zone--bottom .river-zone__tiles{justify-content:center}.river-zone__empty{display:grid;place-items:center;width:100%;color:#f5f0e75c;font-size:.72rem}.recent-action{position:absolute;left:50%;top:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:min(260px,54%);min-height:26px;padding:4px 9px;border:1px solid rgba(215,163,72,.3);border-radius:8px;color:#ffe0a1;background:#0000006b;box-shadow:0 8px 18px #0000002e;transform:translate(-50%,-50%);text-align:center;font-size:.76rem;line-height:1.2;pointer-events:none}.meld-row{display:flex;gap:5px;min-height:24px;align-items:center;flex-wrap:wrap}.meld-row--empty{display:none;color:#f5f0e761;font-size:.72rem}.meld-row--compact{min-height:28px}.meld-set{display:inline-flex;align-items:center;gap:2px;padding:2px 4px;border-radius:8px;background:#fff7e314}.meld-label{color:#f5f0e7ad;font-size:.7rem;font-weight:800}.claim-options{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.claim-option{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:4px 8px;border:1px solid rgba(255,247,227,.2);border-radius:8px;color:#fff7e3;background:#fff7e317;cursor:pointer}.claim-option:hover,.claim-option:focus-visible{border-color:#ffd889b8;background:#d7a3482e;outline:none}.claim-option>span:first-child{font-size:.84rem;font-weight:800}.claim-option__tiles{display:inline-flex;gap:1px;align-items:center}.claim-option__tiles img{width:18px;height:25px;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(0,0,0,.18))}.human-area{display:grid;gap:7px;padding:8px 10px;border:1px solid rgba(255,247,227,.14);border-radius:8px;background:#04120d73}.hand-row{display:flex;gap:clamp(3px,.6vw,8px);min-height:74px;overflow-x:auto;padding:3px 2px 9px;scrollbar-width:thin}.tile-button{flex:0 0 auto;padding:0;border:0;border-radius:8px;background:transparent}.tile-button--drawn{margin-left:clamp(12px,1.8vw,24px)}.tile-button--drawn .tile-face{transform:translateY(-2px);filter:drop-shadow(0 0 8px rgba(255,216,137,.35)) drop-shadow(0 8px 9px rgba(0,0,0,.2))}.tile-button:not(:disabled):hover .tile-face{transform:translateY(-8px);filter:drop-shadow(0 16px 18px rgba(0,0,0,.26))}.tile-face{position:relative;display:inline-block;width:clamp(41px,4.9vw,58px);height:clamp(58px,6.9vw,82px);color:var(--ink);filter:drop-shadow(0 8px 9px rgba(0,0,0,.2));transition:transform .16s ease,filter .16s ease,opacity .16s ease}.tile-face--compact{width:30px;height:42px}.tile-face.is-muted{opacity:.62}.tile-face.is-fresh{animation:tile-land .52s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 0 8px rgba(255,216,137,.7)) drop-shadow(0 9px 10px rgba(0,0,0,.24))}.tile-face.is-highlighted{transform:translateY(-10px);filter:drop-shadow(0 0 10px rgba(255,216,137,.9)) drop-shadow(0 14px 16px rgba(0,0,0,.28))}.tile-face__image{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.tile--characters{color:var(--red)}.tile--dots{color:var(--blue)}.tile--bamboos,.tile--dragon-green{color:var(--green)}.tile--dragon-red{color:var(--red)}.tile--honor{color:#16120f}@keyframes tile-land{0%{opacity:0;transform:translateY(-18px) scale(1.16) rotate(-4deg)}65%{opacity:1;transform:translateY(2px) scale(.98) rotate(1deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.result-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;border-radius:8px;background:#020806b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:5}.result-card{width:min(520px,100%);max-height:calc(100% - 8px);overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(255,216,137,.55) rgba(255,247,227,.06);padding:clamp(18px,3vw,26px);border:1px solid rgba(215,163,72,.48);border-radius:8px;background:linear-gradient(145deg,rgba(255,247,227,.1),transparent 34%),#14241c;box-shadow:0 22px 70px #0000006b}.result-card::-webkit-scrollbar,.rules-help-scroll::-webkit-scrollbar{width:8px}.result-card::-webkit-scrollbar-track,.rules-help-scroll::-webkit-scrollbar-track{border-radius:999px;background:#fff7e30e}.result-card::-webkit-scrollbar-thumb,.rules-help-scroll::-webkit-scrollbar-thumb{border:2px solid rgba(20,36,28,.96);border-radius:999px;background:#ffd88994}.result-card::-webkit-scrollbar-thumb:hover,.rules-help-scroll::-webkit-scrollbar-thumb:hover{background:#ffd889d1}.result-card h2{color:#fff7e3;font-size:clamp(1.6rem,5vw,2.8rem)}.result-title{margin-top:12px;color:#ffd889;font-size:1.08rem;font-weight:800}.result-score{margin-top:4px;color:#fff7e3;font-size:clamp(2.1rem,8vw,4rem);font-weight:900}.result-details{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.result-details span,.pattern-note{color:#f5f0e7b8;font-size:.82rem}.result-hand{display:flex;gap:5px;flex-wrap:wrap;margin:14px 0}.pattern-note{margin:0 0 18px}.pause-card h2,.settings-card h2{margin-bottom:12px}.settings-card{width:min(560px,100%)}.settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:10px 0 12px;padding:4px;border:1px solid rgba(255,247,227,.12);border-radius:8px;background:#05120d57}.settings-tabs button{min-height:34px;border:0;border-radius:6px;background:transparent;color:#f5f0e7b3;font:inherit;font-size:.86rem;font-weight:800;cursor:pointer}.settings-tabs button.is-active{background:#ffd8892e;color:#ffd889}.settings-page{display:grid;gap:10px}.pause-scoreboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.pause-scoreboard div{display:grid;gap:2px;padding:9px 10px;border:1px solid rgba(255,247,227,.12);border-radius:8px;background:#fff7e312}.pause-scoreboard span{color:#f5f0e799;font-size:.72rem}.pause-scoreboard strong{color:#fff7e3;font-size:.95rem}.name-editor{display:grid;gap:8px;margin:0;padding:10px;border:1px solid rgba(215,163,72,.24);border-radius:8px;background:#05120d4d}.name-editor-row{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:8px}.name-editor-row span{color:#f5f0e79e;font-size:.72rem}.name-editor-row input{min-width:0;height:34px;padding:0 10px;border:1px solid rgba(255,247,227,.16);border-radius:8px;background:#fff7e314;color:#fff7e3;font:inherit;outline:none}.name-editor-row input:focus{border-color:#ffd889b8;box-shadow:0 0 0 2px #ffd8891f}.name-editor-actions{display:flex;gap:8px;flex-wrap:wrap}.rules-help-backdrop{z-index:22}.rules-help-card{width:min(660px,100%);display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;overflow:hidden}.rules-help-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.rules-help-header h2{font-size:clamp(1.42rem,3.6vw,2.3rem)}.rules-help-scroll{display:grid;gap:16px;min-height:0;max-height:min(68vh,560px);overflow-y:auto;padding-right:4px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(255,216,137,.55) rgba(255,247,227,.06)}.rules-help-section{display:grid;gap:8px}.rules-help-section h3{margin:0;color:#ffd889;font-size:.92rem}.rules-help-list{display:grid;gap:7px}.rules-help-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:9px 10px;border:1px solid rgba(255,247,227,.12);border-radius:8px;background:#fff7e312}.rules-help-row strong{color:#fff7e3;font-size:.88rem}.rules-help-row p{margin:3px 0 0;color:#f5f0e7a8;font-size:.78rem;line-height:1.4}.rules-help-row>span{min-width:64px;padding:3px 8px;border-radius:999px;color:#20160c;background:#ffd889;text-align:center;font-size:.76rem;font-weight:900}.rules-help-note{padding:10px 12px;border:1px solid rgba(215,163,72,.3);border-radius:8px;color:#f5f0e7bd;background:#d7a34817;font-size:.8rem;line-height:1.5}.rules-help-note strong{color:#ffd889}@media(max-width:860px)and (orientation:portrait){.app-shell{padding:0}.game-frame{grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100svh;min-height:0;padding:8px;border-radius:0}.top-bar{grid-template-columns:minmax(120px,1fr) auto;gap:7px;padding:3px 4px 6px}.rule-chip{justify-self:end}.mode-actions{grid-column:1 / -1;justify-content:flex-start;gap:6px}.table-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:6px}.opponent-panel--top{grid-column:1 / -1;grid-row:1}.opponent-panel--left{grid-column:1;grid-row:2}.opponent-panel--right{grid-column:2;grid-row:2}.table-center{grid-column:1 / -1;grid-row:3;min-height:0;padding:8px}.river-board{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;min-height:0}.river-zone--top,.river-zone--bottom,.river-zone--left,.river-zone--right{grid-column:auto;grid-row:auto}.river-zone--top,.river-zone--bottom{grid-column:1 / -1}.recent-action{width:min(240px,70%);min-height:24px;font-size:.72rem}.river-zone--top .river-zone__tiles,.river-zone--left .river-zone__tiles,.river-zone--right .river-zone__tiles{min-height:50px;transform:none}.opponent-panel{padding:6px}.concealed-hand{max-height:32px;overflow:hidden}.tile-back{width:15px;height:22px;border-radius:4px}}@media(max-width:860px)and (orientation:landscape){.app-shell{padding:0}.game-frame{grid-template-rows:30px minmax(0,1fr) 92px;height:100svh;min-height:0;gap:3px;padding:3px}.top-bar{grid-template-columns:minmax(120px,1fr) auto minmax(190px,1fr);gap:4px;padding:0 3px 2px}.eyebrow{display:none}h1{font-size:1rem}.rule-chip,.mode-button{min-height:24px;padding:0 6px;font-size:.68rem}.mode-actions{grid-column:auto;justify-content:flex-end;gap:4px}.icon-command{width:26px;min-height:26px}.table-layout{grid-template-columns:minmax(56px,.18fr) minmax(430px,1fr) minmax(56px,.18fr);grid-template-rows:40px minmax(0,1fr);gap:3px}.opponent-panel{gap:2px;padding:3px}.player-status{gap:4px;padding:3px 4px}.player-status strong{font-size:.68rem}.player-status span,.player-status small{font-size:.58rem}.relation-badge{margin-right:2px;font-size:.56rem}.concealed-hand{min-height:13px;max-height:15px;gap:2px}.tile-back{width:9px;height:14px;border-radius:3px}.table-center{padding:3px;gap:2px}.wall-counter{min-height:20px;padding:0 7px;font-size:.66rem}.river-board{grid-template-columns:minmax(56px,.7fr) minmax(142px,1.4fr) minmax(56px,.7fr);grid-template-rows:minmax(44px,1fr) 3px minmax(44px,1fr);gap:3px}.river-zone{min-height:38px;padding:3px}.river-zone__name{font-size:.6rem}.river-zone__tiles{min-height:28px;gap:1px}.river-zone--top .river-zone__tiles{transform:rotate(180deg)}.river-zone--left .river-zone__tiles{min-height:104px;transform:rotate(90deg)}.river-zone--right .river-zone__tiles{min-height:104px;transform:rotate(-90deg)}.recent-action{width:min(190px,58%);min-height:20px;padding:2px 6px;font-size:.62rem}.tile-face{width:30px;height:42px}.tile-face--compact{width:19px;height:27px}.human-area{gap:2px;padding:4px;overflow:hidden}.human-area>.player-status{display:none}.hand-row{min-height:44px;padding:0 1px 2px}.command-bar{justify-content:flex-start;gap:5px}.primary-command,.secondary-command{min-height:24px;padding:0 7px;font-size:.68rem}.claim-option{min-height:24px;padding:2px 5px}.claim-option__tiles img{width:15px;height:21px}}@media(max-width:860px)and (orientation:portrait){.game-frame{visibility:hidden}.rotate-device{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;color:#fff7e3;background:radial-gradient(circle at 50% 20%,rgba(215,163,72,.18),transparent 30%),linear-gradient(145deg,#0a1711,#102b21 55%,#07100d);text-align:center}.rotate-device div{display:grid;gap:10px;max-width:280px;padding:20px;border:1px solid rgba(215,163,72,.36);border-radius:8px;background:#0000003d}.rotate-device strong{color:#ffd889;font-size:1.3rem}.rotate-device span{color:#f5f0e7bd;line-height:1.5}}@media(max-height:760px)and (min-width:861px){.game-frame{gap:6px;padding:8px;min-height:0}.top-bar{padding-bottom:5px}.eyebrow{display:none}h1{font-size:1.18rem}.table-layout{grid-template-columns:minmax(74px,.2fr) minmax(480px,1fr) minmax(74px,.2fr);grid-template-rows:minmax(54px,auto) minmax(0,1fr);gap:6px}.opponent-panel{gap:4px;padding:5px}.player-status{padding:5px 6px}.concealed-hand{min-height:24px;max-height:48px}.tile-back{width:15px;height:23px}.table-center{padding:8px}.river-board{grid-template-rows:minmax(64px,1fr) 6px minmax(64px,1fr);gap:5px}.river-zone{min-height:48px;padding:5px}.river-zone--left .river-zone__tiles,.river-zone--right .river-zone__tiles{min-height:150px}.recent-action{min-height:22px;padding:3px 8px;font-size:.86rem}.human-area{gap:5px;padding:6px 8px}.hand-row{min-height:66px;padding-bottom:5px}.tile-face{width:clamp(38px,4.3vw,52px);height:clamp(54px,6vw,74px)}.tile-face--compact{width:27px;height:38px}}:root{--hand-tile-width: clamp(42px, 4.2vw, 58px);--hand-tile-height: calc(var(--hand-tile-width) * 1.42);--river-tile-width: 28px;--river-tile-height: 39px;--back-width: 15px;--back-height: 23px;--frame-gap: clamp(4px, .7vh, 9px)}html,body,#root{width:100%;height:100%}body{min-width:0;min-height:0;overflow:hidden;overscroll-behavior:none}.app-shell{width:100%;height:100dvh;min-height:0;overflow:hidden;padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}.game-frame{grid-template-rows:auto minmax(0,1fr);gap:var(--frame-gap);width:min(1440px,100%);height:100%;min-height:0;padding:clamp(4px,.8vw,12px);overflow:hidden}.top-bar{position:relative;z-index:10;grid-template-columns:minmax(150px,1fr) auto minmax(220px,1fr);min-height:38px;padding:2px 6px 5px}.mahjong-table{position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;border:1px solid rgba(215,163,72,.28);border-radius:9px;background:linear-gradient(90deg,transparent 49.88%,rgba(255,247,227,.035) 50%,transparent 50.12%),linear-gradient(transparent 49.8%,rgba(255,247,227,.035) 50%,transparent 50.2%),radial-gradient(circle at center,#1b6149e6 0,#0c3e2ef5 55%,#082d22);box-shadow:inset 0 0 70px #00000057,inset 0 0 0 5px #041f1657}.table-felt{position:absolute;inset:clamp(28px,5vh,52px) clamp(46px,7vw,92px) clamp(70px,13vh,132px);z-index:-1;border:1px solid rgba(255,236,195,.055);border-radius:46%;background:repeating-linear-gradient(35deg,rgba(255,255,255,.012) 0 1px,transparent 1px 5px),#021c141a}.table-seat{position:absolute;z-index:4;display:flex;align-items:center;gap:clamp(4px,.7vw,9px);pointer-events:none}.table-seat--top{top:clamp(3px,.8vh,8px);left:50%;flex-direction:row-reverse;transform:translate(-50%)}.table-seat--left{top:44%;left:clamp(3px,.5vw,8px);align-items:flex-start;flex-direction:column;transform:translateY(-50%)}.table-seat--right{top:44%;right:clamp(3px,.5vw,8px);align-items:flex-end;flex-direction:column;transform:translateY(-50%)}.table-seat .player-status{position:relative;flex:0 0 auto;min-width:clamp(118px,12vw,170px);padding:5px 8px;border-color:#fff7e32b;background:#031610d1;box-shadow:0 7px 18px #0000003d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.table-seat--left .player-status,.table-seat--right .player-status{position:absolute;top:calc(100% + 5px);min-width:clamp(102px,10vw,142px)}.table-seat--left .player-status{left:0}.table-seat--right .player-status{right:0}.table-seat.is-active .player-status,.human-area.is-active .player-status{border-color:#ffd889e6;box-shadow:0 0 0 1px #d7a34833,0 0 18px #ffc6573d;animation:active-seat 1.8s ease-in-out infinite}.table-seat__rack{display:flex;align-items:center;gap:4px;min-width:0}.table-seat--left .table-seat__rack,.table-seat--right .table-seat__rack{flex-direction:column;gap:0}.concealed-hand{display:flex;flex-wrap:nowrap;justify-content:center;gap:2px;min-height:0;max-height:none;overflow:visible}.table-seat--left .concealed-hand,.table-seat--right .concealed-hand{flex-direction:column;align-items:center;gap:0}.tile-back{flex:0 0 auto;width:var(--back-width);height:var(--back-height);border-radius:3px}.table-seat--top .tile-back{transform:rotate(180deg)}.table-seat--left .tile-back{margin-block:calc((var(--back-width) - var(--back-height)) / 2);transform:rotate(90deg)}.table-seat--right .tile-back{margin-block:calc((var(--back-width) - var(--back-height)) / 2);transform:rotate(-90deg)}.table-seat .meld-row{flex-wrap:nowrap}.table-seat--left .meld-row,.table-seat--right .meld-row{flex-direction:column;max-width:none;justify-content:center;gap:0}.table-seat--left .meld-set,.table-seat--right .meld-set{position:relative;flex-direction:column;gap:0;padding:0;background:transparent}.table-seat--left .meld-label,.table-seat--right .meld-label{position:absolute;z-index:2;top:-5px;left:50%;min-width:14px;padding:1px 2px;border:1px solid rgba(255,216,137,.38);border-radius:3px;color:#ffd889;background:#031610d1;font-size:.52rem;line-height:1;text-align:center;transform:translate(-50%)}.table-seat--top .meld-row .tile-face{width:var(--back-width);height:var(--back-height);transform:rotate(180deg)}.table-seat--left .meld-row .tile-face{width:var(--back-width);height:var(--back-height);margin-block:calc((var(--back-width) - var(--back-height)) / 2);transform:rotate(90deg)}.table-seat--right .meld-row .tile-face{width:var(--back-width);height:var(--back-height);margin-block:calc((var(--back-width) - var(--back-height)) / 2);transform:rotate(-90deg)}.river-board{position:absolute;inset:clamp(64px,11vh,100px) clamp(145px,16vw,190px) calc(var(--hand-tile-height) + 64px);z-index:2;display:block;min-width:0;min-height:0}.river-board:before{content:"";position:absolute;top:22%;right:27%;bottom:22%;left:27%;border:1px solid rgba(231,196,128,.16);border-radius:7px;background:linear-gradient(135deg,rgba(255,247,227,.055),transparent 38%),#02181138;transform:rotate(45deg)}.river-zone{position:absolute;display:block;min-width:0;min-height:0;padding:3px;border:0;border-radius:4px;background:transparent}.river-zone--top,.river-zone--bottom{left:50%;width:46%;height:46%;transform:translate(-50%)}.river-zone--top{top:0}.river-zone--bottom{bottom:0}.river-zone--left,.river-zone--right{top:50%;width:27%;height:76%;transform:translateY(-50%)}.river-zone--left{left:0}.river-zone--right{right:0}.river-zone__name{position:absolute;z-index:1;padding:2px 5px;border-radius:3px;color:#f5f0e77a;background:#0217107a;font-size:clamp(.56rem,.85vw,.7rem);line-height:1;white-space:nowrap}.river-zone--top .river-zone__name{top:0;left:50%;transform:translate(-50%)}.river-zone--bottom .river-zone__name{right:0;bottom:0}.river-zone--left .river-zone__name{bottom:0;left:0}.river-zone--right .river-zone__name{right:0;bottom:0}.river-zone__tiles{display:grid;align-content:center;justify-content:center;gap:2px;width:100%;height:100%;min-height:0}.river-zone--top .river-zone__tiles,.river-zone--bottom .river-zone__tiles{grid-template-columns:repeat(6,var(--river-tile-width));grid-auto-rows:var(--river-tile-height)}.river-zone--left .river-zone__tiles,.river-zone--right .river-zone__tiles{grid-auto-flow:column;grid-template-rows:repeat(6,var(--river-tile-width));grid-auto-columns:var(--river-tile-height);min-height:0;transform:none}.river-zone .tile-face--compact{align-self:center;justify-self:center;width:var(--river-tile-width);height:var(--river-tile-height)}.river-zone--top .tile-face{transform:rotate(180deg)}.river-zone--top .tile-face.is-fresh{animation-name:tile-land-top}.river-zone--left .tile-face{transform:rotate(90deg)}.river-zone--left .tile-face.is-fresh{animation-name:tile-land-left}.river-zone--right .tile-face{transform:rotate(-90deg)}.river-zone--right .tile-face.is-fresh{animation-name:tile-land-right}@keyframes tile-land-top{0%{opacity:0;transform:translateY(-18px) scale(1.16) rotate(180deg)}65%{opacity:1;transform:translateY(2px) scale(.98) rotate(180deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(180deg)}}@keyframes tile-land-left{0%{opacity:0;transform:translateY(-18px) scale(1.16) rotate(90deg)}65%{opacity:1;transform:translateY(2px) scale(.98) rotate(90deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(90deg)}}@keyframes tile-land-right{0%{opacity:0;transform:translateY(-18px) scale(1.16) rotate(-90deg)}65%{opacity:1;transform:translateY(2px) scale(.98) rotate(-90deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(-90deg)}}.river-zone__empty{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;font-size:clamp(.55rem,.8vw,.7rem)}.wall-counter{position:absolute;top:50%;left:50%;z-index:3;min-height:29px;transform:translate(-50%,-50%);border:1px solid rgba(215,163,72,.26);background:#02110cb8;box-shadow:0 5px 14px #00000040}.recent-action{top:calc(50% + 36px);width:min(330px,54%);min-height:25px}.human-area{position:absolute;right:clamp(14px,5vw,72px);bottom:clamp(2px,.6vh,8px);left:clamp(14px,5vw,72px);z-index:5;display:block;min-width:0;padding:0;border:0;background:transparent}.human-area.is-active{box-shadow:inset 0 -2px #ffd889d1,0 7px 14px -9px #ffc657e6}.human-area>.player-status{display:none}.hand-row{display:flex;align-items:flex-end;justify-content:center;gap:clamp(2px,.38vw,6px);min-height:var(--hand-tile-height);padding:0;overflow:visible}.tile-face{width:var(--hand-tile-width);height:var(--hand-tile-height)}.tile-face--compact{width:var(--river-tile-width);height:var(--river-tile-height)}.tile-button--drawn{margin-left:clamp(9px,1.5vw,22px)}.command-bar{position:absolute;right:50%;bottom:calc(var(--hand-tile-height) + clamp(11px,2vh,20px));z-index:8;width:max-content;max-width:calc(100% - 16px);justify-content:center;flex-wrap:nowrap;padding:4px;border:1px solid rgba(255,247,227,.12);border-radius:9px;background:#031610c7;box-shadow:0 9px 22px #00000042;transform:translate(50%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.claim-options{flex-wrap:nowrap}.result-backdrop{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0}@keyframes active-seat{0%,to{filter:brightness(1)}50%{filter:brightness(1.15)}}@media(orientation:landscape)and (max-height:430px){:root{--hand-tile-width: clamp(30px, 4.5vw, 43px);--river-tile-width: 19px;--river-tile-height: 27px;--back-width: 10px;--back-height: 15px}.app-shell{padding:max(2px,env(safe-area-inset-top)) max(2px,env(safe-area-inset-right)) max(2px,env(safe-area-inset-bottom)) max(2px,env(safe-area-inset-left))}.game-frame{gap:2px;padding:1px;border-radius:5px}.top-bar{grid-template-columns:minmax(94px,1fr) auto minmax(112px,auto);min-height:24px;padding:0 2px 1px}.top-bar h1{font-size:.88rem}.top-bar .eyebrow{display:none}.rule-chip,.score-chip,.mode-button,.icon-command{min-height:21px;font-size:.6rem}.mode-button{padding:0 5px}.mode-actions{flex-wrap:nowrap;gap:3px}.score-chip{padding:0 6px}.icon-command{width:23px}.mahjong-table{border-radius:5px}.table-felt{top:22px;right:38px;bottom:52px;left:38px}.table-seat{gap:3px}.table-seat .player-status{min-width:105px;padding:3px 5px}.table-seat--left .player-status,.table-seat--right .player-status{min-width:92px}.player-status strong{font-size:.66rem}.player-status span,.player-status small{font-size:.55rem}.relation-badge{font-size:.54rem}.river-board{inset:46px 132px calc(var(--hand-tile-height) + 32px)}.river-board:before{top:24%;right:31%;bottom:24%;left:31%}.river-zone__tiles{gap:1px}.river-zone--top .river-zone__tiles,.river-zone--bottom .river-zone__tiles{grid-template-columns:repeat(8,var(--river-tile-width))}.river-zone--left .river-zone__tiles,.river-zone--right .river-zone__tiles{grid-template-columns:repeat(4,var(--river-tile-height))}.wall-counter{min-height:21px;padding:0 7px;font-size:.62rem}.wall-counter svg{width:13px}.recent-action{top:calc(50% + 26px);width:min(250px,58%);min-height:19px;padding:2px 6px;font-size:.6rem}.human-area{right:10px;bottom:max(1px,env(safe-area-inset-bottom));left:10px}.human-area>.player-status{min-width:102px;padding:3px 5px}.command-bar{right:max(4px,env(safe-area-inset-right));bottom:calc(var(--hand-tile-height) + 8px);gap:4px;padding:2px;border-radius:6px;transform:none}.primary-command,.secondary-command,.claim-option{min-height:23px;padding:0 7px;border-radius:6px;font-size:.65rem}.primary-command svg,.secondary-command svg{width:14px;height:14px}.claim-option{gap:3px;padding:1px 4px}.claim-option>span:first-child{font-size:.67rem}.claim-option__tiles img{width:14px;height:20px}.meld-set{padding:1px 2px}.meld-label{font-size:.58rem}}@media(orientation:landscape)and (max-height:320px){:root{--hand-tile-width: clamp(29px, 4.25vw, 36px);--river-tile-width: 12px;--river-tile-height: 17px;--back-width: 8px;--back-height: 12px}.top-bar{grid-template-columns:minmax(80px,1fr) minmax(74px,auto);min-height:20px}.rule-chip,.score-chip,.table-chips,.mode-button{display:none}.mode-actions{gap:3px}.mode-button,.icon-command{min-height:20px}.table-seat--top{top:1px}.table-seat--left,.table-seat--right{top:38%}.table-seat .player-status{min-width:96px;padding:2px 4px}.table-seat--left .player-status,.table-seat--right .player-status{min-width:84px}.table-seat--left .player-status>div>span,.table-seat--right .player-status>div>span{display:none}.concealed-hand{gap:1px}.river-board{inset:38px 126px calc(var(--hand-tile-height) + 28px)}.river-zone__name{display:none}.wall-counter{min-height:18px;padding:0 5px;font-size:.56rem}.recent-action{top:calc(50% + 18px);width:min(220px,54%);min-height:17px;font-size:.54rem}.human-area{right:10px;left:10px}.human-area>.player-status{display:none}.command-bar{bottom:calc(var(--hand-tile-height) + 8px);gap:3px;padding:2px}.primary-command,.secondary-command,.claim-option{min-height:20px;padding:0 5px;font-size:.6rem}.claim-option>span:first-child{font-size:.6rem}.claim-option__tiles img{width:12px;height:17px}.result-backdrop{padding:4px}.result-card{width:min(500px,100%);max-height:calc(100% - 4px);padding:8px 12px}.result-card h2{font-size:1.22rem}.result-title{margin-top:4px;font-size:.82rem}.result-score{font-size:1.7rem}.result-details,.result-hand{margin:5px 0}.pause-card h2,.settings-card h2{margin-bottom:3px}.settings-tabs{margin:4px 0;padding:3px}.settings-tabs button{min-height:25px;font-size:.68rem}.settings-page{gap:5px}.pause-scoreboard{gap:4px;margin:4px 0}.pause-scoreboard div{padding:3px 6px}.pause-scoreboard span{font-size:.58rem}.pause-scoreboard strong{font-size:.72rem}.name-editor{gap:4px;padding:6px}.name-editor-row{grid-template-columns:70px minmax(0,1fr);gap:6px}.name-editor-row span{font-size:.58rem}.name-editor-row input{height:26px;padding:0 7px;font-size:.72rem}.name-editor-actions{gap:5px}.pattern-note{margin-bottom:5px;font-size:.62rem;line-height:1.25}.result-actions{gap:4px}}@media(orientation:landscape)and (max-height:380px)and (pointer:coarse){.top-bar{grid-template-columns:minmax(82px,1fr) auto}.table-chips{display:none}.mode-actions{justify-content:flex-end}.mode-actions .mode-button{display:none}.command-bar{left:auto;right:max(4px,env(safe-area-inset-right));bottom:calc(var(--hand-tile-height) + 8px);max-width:min(42vw,230px);justify-content:flex-end;flex-wrap:wrap;transform:none}.human-area{right:max(6px,env(safe-area-inset-right));left:max(6px,env(safe-area-inset-left))}.hand-row{justify-content:flex-start;overflow-x:auto;overflow-y:visible;padding:0 40vw 0 2px;scrollbar-width:none}.hand-row::-webkit-scrollbar{display:none}.meld-row{flex-wrap:nowrap}.primary-command,.secondary-command,.claim-option{min-height:22px;padding:0 6px}}@media(orientation:portrait)and (max-width:1024px){.game-frame{display:none}.rotate-device{visibility:visible}}
