:root{color:#fff8e8;font-synthesis:none;text-rendering:optimizelegibility;background:#143126;font-family:Avenir Next,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(140deg,#125a3ee6,#123126),#143126;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:#fff5d6;cursor:pointer;background:linear-gradient(#315c49,#214837);border:1px solid #ffde8080;border-radius:6px;min-height:40px;padding:0 16px;transition:transform .14s,filter .14s,box-shadow .14s}button:disabled{cursor:not-allowed;opacity:.45}button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}button.gold{color:#2b1d08;background:linear-gradient(#ffd56b,#d79828);border-color:#ffe4a2}button.danger{color:#ffe6dc;background:linear-gradient(#7e2f24,#552119);border-color:#ff835cb8}input{color:#fff8e8;background:#03140e61;border:1px solid #ffde805c;border-radius:6px;outline:none;width:100%;min-height:44px;padding:0 12px}label{color:#f4d68a;margin-bottom:8px;font-size:13px;font-weight:700;display:block}h1,h2,h3,p{margin-top:0}.notice,.empty{color:#ffe4d6;background:#70191675;border:1px solid #ff6b506b;border-radius:8px;margin:0;padding:12px 14px}.lobby-shell{width:min(1040px,100vw - 28px);margin:0 auto;padding:22px 0}.lobby-hero{justify-content:space-between;align-items:center;gap:20px;min-height:116px;padding:18px 0 20px;display:flex}.lobby-hero p{color:#ffcf5b;margin-bottom:10px;font-size:16px;font-weight:800}.lobby-hero h1{color:#fff7dd;letter-spacing:0;text-shadow:0 6px #2c0c083d;margin:0;font-size:clamp(44px,7vw,78px);line-height:.92}.lobby-hero span,.table-topbar span{color:#d3c7a1;background:#02120d52;border:1px solid #ffde8059;border-radius:999px;padding:8px 12px}.lobby-hero span.online{color:#c7ffdc}.lobby-board{align-items:start;gap:14px;display:grid}.lobby-controls,.lobby-room-panel{background:linear-gradient(#ffffff09,#0000),#02120d47;border:1px solid #ffde8038;border-radius:8px;box-shadow:inset 0 0 36px #fff4c909}.lobby-controls{grid-template-columns:minmax(240px,1fr);align-content:start;gap:12px;padding:14px;display:grid}.lobby-controls.compact{min-height:0}.nickname-panel{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.nickname-panel label{color:#ffcf5b;margin:0;font-size:15px}.nickname-panel input{background:#03140e47;border-color:#ffde8047;min-height:48px;font-size:18px;font-weight:800}.nickname-panel button{min-height:48px;padding:0 18px}.create-room{grid-template-columns:1fr auto;gap:10px;display:grid}.create-room label{grid-column:1/-1}.lobby-room-panel{gap:0;min-height:0;padding:0;display:grid;overflow:hidden}.lobby-room-panel-head{border-bottom:1px solid #ffde8029;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;display:flex}.lobby-room-panel-head strong{color:#fff7dd;margin-bottom:4px;font-size:22px;display:block}.lobby-room-panel-head span{color:#d3c7a1;font-size:14px}.room-list{align-content:start;display:grid}.lobby-room{background:0 0;border:0;border-bottom:1px solid #ffde8024;border-radius:0;justify-content:space-between;align-items:center;gap:18px;min-height:72px;padding:14px 20px;display:flex}.lobby-room:last-child{border-bottom:0}.lobby-room:hover{background:#fff4c909}.lobby-room.active{background:#ffcf5b14;outline:none}.lobby-room.finished{opacity:.68}.lobby-room h3{margin-bottom:6px;font-size:22px}.lobby-room p{color:#d3c7a1;margin:0}.lobby-room button,.lobby-room-panel-head button{min-height:38px;padding:0 18px}.table-shell{grid-template-rows:auto 1fr;min-height:100dvh;padding:clamp(6px,1.2vw,14px);display:grid;overflow:hidden}.table-topbar{grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(8px,1.2vw,14px);min-height:clamp(42px,8dvh,56px);display:grid}.table-topbar strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:20px;overflow:hidden}.table-topbar-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.table-debug-bar{background:#02120d94;border:1px solid #ffde8047;border-radius:8px;grid-template-columns:minmax(190px,auto) 1fr auto;align-items:center;gap:12px;min-height:62px;margin-bottom:10px;padding:10px;display:grid}.table-debug-bar>div strong,.table-debug-bar>div span{display:block}.table-debug-bar>div span{color:#d3c7a1;margin-top:4px;font-size:12px}.table-debug-bar nav{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.table-debug-bar nav::-webkit-scrollbar{display:none}.table-debug-bar button{text-align:left;align-content:center;min-width:116px;min-height:44px;padding:5px 10px;display:grid}.table-debug-bar button.active{color:#2b1d08;background:linear-gradient(#ffd56b,#d79828);border-color:#ffe4a2}.table-debug-bar small{color:inherit;opacity:.72;margin-top:2px;font-size:11px}.table-debug-bar a{color:#ffe4a2;white-space:nowrap;font-weight:800;text-decoration:none}.game-table{aspect-ratio:16/9;background:radial-gradient(#228153fa,#0b462efa 62%,#082c1f),#0d5136;border:2px solid #ffde8061;border-radius:8px;justify-self:center;width:min(100%,177.778dvh - 1.77778*clamp(54px,10dvh,82px));min-height:0;position:relative;overflow:hidden;box-shadow:inset 0 0 90px #0000006b,0 18px 54px #00000042}.game-table:before{content:"";border:2px solid #ffde8033;border-radius:50%;position:absolute;inset:18% 12% 22%}.game-table:after{content:"";opacity:.35;pointer-events:none;background:radial-gradient(circle at 50% 45%,#ffcf5b29,#0000 24%),linear-gradient(90deg,#0000,#ffffff0d,#0000);border-radius:8px;position:absolute;inset:34px}.seat{z-index:2;position:absolute}.north{top:4%;left:50%;transform:translate(-50%)}.south{bottom:28%;left:50%;transform:translate(-50%)}.west{top:42%;left:3%;transform:translateY(-50%)}.east{top:42%;right:3%;transform:translateY(-50%)}.round-start-stage{z-index:4;color:#ffefb1;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02120d70;border:1px solid #ffde803d;border-radius:999px;place-items:center;gap:10px;min-width:150px;padding:12px 18px;display:grid;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);box-shadow:0 14px 34px #00000038,inset 0 1px #ffffff12}.round-start-stage strong{font-size:16px;line-height:1}.shuffle-deck{perspective:520px;width:70px;height:44px;position:relative}.shuffle-deck i{transform-origin:50% 90%;background:linear-gradient(135deg,#ffeaa859,#0000 36%),repeating-linear-gradient(135deg,#ffd56b57 0 2px,#54291c2e 2px 4px),linear-gradient(145deg,#7c281e,#321814);border:1px solid #ffe8a9b8;border-radius:4px;width:24px;height:34px;position:absolute;top:4px;left:24px;box-shadow:0 6px 11px #0000003d,inset 0 1px #ffffff29}.round-start-stage.shuffling .shuffle-deck i:first-child{animation:.76s cubic-bezier(.18,.82,.22,1) infinite shuffle-left}.round-start-stage.shuffling .shuffle-deck i:nth-child(2){animation:.76s cubic-bezier(.18,.82,.22,1) 80ms infinite shuffle-right}.round-start-stage.shuffling .shuffle-deck i:nth-child(3){animation:.76s cubic-bezier(.18,.82,.22,1) .16s infinite reverse shuffle-left}.round-start-stage.shuffling .shuffle-deck i:nth-child(4){animation:.76s cubic-bezier(.18,.82,.22,1) .24s infinite reverse shuffle-right}.round-start-stage.dealing .shuffle-deck i{animation:.72s cubic-bezier(.14,.82,.2,1.08) both deck-deal-out;animation-delay:calc((var(--deck-card,0)) * 80ms)}.round-start-stage.dealing .shuffle-deck i:first-child{--deck-card:0}.round-start-stage.dealing .shuffle-deck i:nth-child(2){--deck-card:1}.round-start-stage.dealing .shuffle-deck i:nth-child(3){--deck-card:2}.round-start-stage.dealing .shuffle-deck i:nth-child(4){--deck-card:3}.player-seat{--seat-accent:#ffcf5b;--seat-accent-2:#9edbb8;--seat-avatar-a:#ffe4a2;--seat-avatar-b:#d79828;--seat-glow:#ffcf5b52;color:#fff6dc;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:8px;width:150px;min-height:86px;transition:transform .18s,filter .18s;display:grid;position:relative;overflow:visible}.player-seat.seat{position:absolute}.player-seat.current{filter:drop-shadow(0 0 16px #ffcf5b6b);animation:1.15s ease-in-out infinite alternate seat-current-bob}.player-seat.empty{opacity:.56}.player-seat.skin-1{--seat-accent:#7fd7ff;--seat-accent-2:#f5bf62;--seat-avatar-a:#c3f0ff;--seat-avatar-b:#3a9fc9;--seat-glow:#7fd7ff4d}.player-seat.skin-2{--seat-accent:#f8a66a;--seat-accent-2:#9adf9a;--seat-avatar-a:#ffe1bd;--seat-avatar-b:#c86930;--seat-glow:#f8a66a4d}.player-seat.skin-3{--seat-accent:#d4c26a;--seat-accent-2:#a9dfd0;--seat-avatar-a:#f6e998;--seat-avatar-b:#8e8830;--seat-glow:#d4c26a4d}.player-seat.skin-4{--seat-accent:#f18fb0;--seat-accent-2:#9bd7ef;--seat-avatar-a:#ffd3e1;--seat-avatar-b:#bd5275;--seat-glow:#f18fb047}.player-seat.skin-5{--seat-accent:#a7d86d;--seat-accent-2:#f2c46c;--seat-avatar-a:#dff5b5;--seat-avatar-b:#5f9b35;--seat-glow:#a7d86d4d}.seat-person{transform-origin:50% 100%;place-items:center;width:58px;height:70px;display:grid;position:relative}.seat-person-shadow{background:radial-gradient(#02120d85,#02120d2e 62%,#0000 76%);border-radius:50%;height:12px;position:absolute;bottom:1px;left:2px;right:2px}.seat-person-aura{border:1px solid color-mix(in srgb, var(--seat-accent) 34%, transparent);background:radial-gradient(circle, var(--seat-glow), transparent 64%);opacity:.62;border-radius:50%;position:absolute;inset:4px 3px 9px}.player-seat.current .seat-person-aura{border-color:color-mix(in srgb, var(--seat-accent) 74%, transparent);opacity:1;animation:1.3s ease-in-out infinite alternate person-aura-pulse}.person-card-fan{z-index:1;width:40px;height:24px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.person-card-fan i{transform-origin:50% 100%;background:linear-gradient(#fff8e8,#ead9b0);border:1px solid #fff7ddb8;border-radius:3px;width:16px;height:22px;position:absolute;bottom:0;left:12px;box-shadow:0 4px 7px #0000002e}.person-card-fan i:first-child{transform:rotate(-18deg)translate(-6px)}.person-card-fan i:nth-child(2){transform:translateY(-2px)}.person-card-fan i:nth-child(3){transform:rotate(18deg)translate(6px)}.person-head{z-index:3;border:2px solid color-mix(in srgb, var(--seat-accent) 62%, #ffffff5c);color:#2b1d08;background:radial-gradient(circle at 32% 24%, #ffffff8c, transparent 24%), linear-gradient(145deg, var(--seat-avatar-a), var(--seat-avatar-b));border-radius:50%;place-items:center;width:48px;height:48px;font-size:19px;font-weight:900;display:grid;position:relative;box-shadow:inset 0 -5px #512b1221,0 0 0 3px #02120d33,0 8px 17px #0000003d}.player-seat.empty .person-head{color:#fff6dcb8;background:radial-gradient(circle at 34% 26%,#ffffff38,#0000 24%),linear-gradient(145deg,#8d81609e,#32413694)}.ready-mark{z-index:5;background:#385446;border:2px solid #fff6dc94;border-radius:50%;width:18px;height:18px;position:absolute;bottom:16px;right:1px;box-shadow:0 3px 8px #0000003d}.ready-mark.on{background:#25c267;border-color:#dfffe8;animation:.46s cubic-bezier(.18,.82,.24,1.18) both ready-pop}.ready-mark.on:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:7px;height:4px;position:absolute;top:3px;left:4px;transform:rotate(-45deg)}.red-five-scarf{z-index:5;transform-origin:38%;background:linear-gradient(90deg,#9d1f1d,#ed5144 48%,#a82020);border-radius:5px;width:39px;height:7px;animation:1.7s ease-in-out infinite alternate scarf-wave;position:absolute;top:39px;left:50%;transform:translate(-50%)rotate(-5deg);box-shadow:inset 0 1px #ffffff3d,0 3px 8px #0000003d}.red-five-scarf:before,.red-five-scarf:after{display:none}.seat-main{z-index:6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02120d85;border:1px solid #ffde8029;border-radius:999px;min-width:78px;max-width:96px;padding:4px 7px;display:grid;position:absolute;top:0;left:48px;box-shadow:0 6px 13px #0000002e,inset 0 1px #ffffff0d}.player-seat strong{color:#fff7df;text-overflow:ellipsis;white-space:nowrap;max-width:82px;font-size:13px;line-height:1.1;display:block;overflow:hidden}.seat-hand-backs{z-index:4;pointer-events:none;width:78px;height:30px;position:absolute;top:27px;left:55px}.seat-mini-card{top:0;left:calc(var(--card-index) * 5px);width:18px;height:26px;transform:rotate(calc(-8deg + var(--card-index) * 1.6deg));transform-origin:50% 100%;background:linear-gradient(135deg,#ffeaa859,#0000 36%),repeating-linear-gradient(135deg,#ffd56b5c 0 2px,#54291c26 2px 4px),linear-gradient(145deg,#7c281e,#321814);border:1px solid #ffe8a9bd;border-radius:4px;display:grid;position:absolute;box-shadow:0 4px 7px #00000038,inset 0 1px #ffffff2e}.seat-mini-card.red-five-face{z-index:2;color:#c62b24;background:radial-gradient(circle at 76% 80%,#c62b242e,#0000 22%),linear-gradient(145deg,#fffaf0,#eadfc3);border-color:#e2c16b;box-shadow:0 6px 10px #00000042,inset 0 1px #ffffffb8}.seat-mini-card.red-five-face:before{content:"5";place-self:start;margin:3px 0 0 4px;font-size:11px;font-weight:900;line-height:1}.seat-mini-card.red-five-face:after{content:"♥";place-self:end;margin:0 4px 3px 0;font-size:11px;line-height:1}.seat-mini-card.red-five-face.diamond:after{content:"♦"}.seat-mini-card.red-five-face.revealing{animation:1.15s cubic-bezier(.17,.84,.24,1) both seat-red-five-flip}.red-five-fly-card{z-index:13;color:#c62b24;pointer-events:none;transform-origin:50% 90%;background:radial-gradient(circle at 76% 80%,#c62b242e,#0000 22%),linear-gradient(145deg,#fffaf0,#eadfc3);border:1px solid #e2c16b;border-radius:6px;width:34px;height:48px;animation:1.85s cubic-bezier(.16,.82,.24,1) both red-five-fly-center;display:grid;position:absolute;top:22px;left:74px;box-shadow:0 16px 28px #0000005c,inset 0 1px #ffffffb8}.red-five-fly-card b{place-self:start;margin:5px 0 0 7px;font-size:17px;line-height:1}.red-five-fly-card i{place-self:end;margin:0 6px 5px 0;font-size:17px;font-style:normal;line-height:1}.red-five-fly-card.second{animation-delay:.12s}.north .red-five-fly-card{--fly-x:0px;--fly-y:150px}.south .red-five-fly-card{--fly-x:0px;--fly-y:-180px}.west .red-five-fly-card{--fly-x:260px;--fly-y:-16px}.east .red-five-fly-card{--fly-x:-260px;--fly-y:-16px}.seat-stats{z-index:6;justify-content:center;gap:4px;display:flex;position:absolute;bottom:-4px;left:6px;right:6px}.stat-chip{color:#fff7dd;font-variant-numeric:tabular-nums;background:#02120d8a;border:1px solid #ffde8024;border-radius:999px;justify-content:center;align-items:center;gap:2px;min-width:24px;height:18px;padding:0 5px;font-size:9px;font-weight:900;line-height:1;display:inline-flex;box-shadow:0 4px 8px #00000029,inset 0 1px #ffffff0d}.stat-chip i{flex:none;display:block;position:relative}.center-play{z-index:9;text-align:center;align-content:center;gap:14px;width:min(42%,520px);min-height:0;display:grid;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.center-play.preplay-center{pointer-events:none;align-content:center;gap:0;width:min(38%,440px);min-height:auto;top:40%}.center-play .notice{z-index:12;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#44231ae6;border-color:#ff6b50b8;position:relative;box-shadow:0 14px 34px #00000052}.phase-banner{background:#02120d61;border:1px solid #ffde803d;border-radius:999px;justify-self:center;align-items:center;gap:12px;padding:8px 14px;transition:border-color .18s,box-shadow .18s,background .18s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000029}.phase-banner:before{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);animation:2.8s ease-in-out infinite banner-sheen;position:absolute;inset:0;transform:translate(-120%)}.phase-banner>*{z-index:1;position:relative}.phase-banner.wind-active{background:linear-gradient(120deg,#704109bd,#19392bdb);border-color:#ffd56bb8;box-shadow:0 0 0 2px #ffcf5b29,0 12px 34px #00000042}.phase-banner.wind-waiting{background:#063023b8;border-color:#87cea875}.phase-banner.wind-free{background:linear-gradient(120deg,#115d3ad1,#063023c2);border-color:#91ffc28a}.phase-banner.turn-timing{border-color:#91ffc26b}.phase-banner.turn-active{background:linear-gradient(120deg,#505b1fc7,#063023c7);border-color:#ffde80b8;box-shadow:0 0 0 2px #ffcf5b24,0 12px 34px #0000003d}.phase-banner.deadline-hot{background:linear-gradient(120deg,#7d2414b8,#293022db);border-color:#ff6648c7;animation:.62s ease-in-out infinite alternate deadline-pulse;box-shadow:0 0 0 2px #ff664829,0 12px 34px #0000004d}.phase-banner strong{color:#ffcf5b}.phase-banner span{color:#efe1bb}.phase-banner em{color:#2b1d08;font-variant-numeric:tabular-nums;background:#ffcf5b;border-radius:999px;min-width:36px;padding:3px 8px;font-size:13px;font-style:normal;font-weight:900}.phase-banner.deadline-hot em{color:#fff5d6;background:#c73522}.preplay-panel{z-index:11;color:#fff4d3;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#02120d94;border:1px solid #ffde8057;border-radius:8px;justify-self:center;gap:6px;min-width:min(100%,380px);padding:clamp(10px,1.6dvh,18px) clamp(14px,2vw,24px);display:grid;position:relative;box-shadow:0 16px 40px #00000042,inset 0 1px #ffffff0f}.preplay-panel strong{color:#ffcf5b;font-size:clamp(18px,2.5dvh,26px);line-height:1.1}.preplay-panel span{color:#efe1bb;font-size:clamp(12px,1.7dvh,15px);font-weight:800}.preplay-panel em{color:#2b1d08;font-variant-numeric:tabular-nums;background:#ffcf5b;border-radius:999px;justify-self:center;padding:5px 12px;font-size:14px;font-style:normal;font-weight:900}.draw-panel{z-index:12;color:#fff4d3;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02120dad;border:1px solid #ffde805c;border-radius:8px;justify-self:center;gap:12px;width:min(560px,100vw - 64px);padding:18px 22px;display:grid;position:relative;box-shadow:0 18px 46px #0000004d,inset 0 1px #ffffff12}.draw-panel strong{color:#ffcf5b;font-size:26px;line-height:1.1}.draw-panel span{color:#efe1bb;font-size:15px;font-weight:800}.draw-reset-button{color:#2b1d08;background:#ffcf5b;border:1px solid #ffdc7c7a;border-radius:8px;justify-self:center;padding:7px 14px;font-weight:900}.draw-target-grid{gap:10px;display:grid}.draw-target{gap:8px;display:grid}.draw-target.locked .draw-card-back:not(.selected){opacity:.38;filter:grayscale(.25)brightness(.8)}.draw-target b{color:#fff4d3;font-size:14px}.draw-card-row{justify-content:center;gap:5px;min-height:48px;display:flex}.draw-card-back{cursor:pointer;background:repeating-linear-gradient(135deg,#ffd56b57 0 4px,#54291c2e 4px 8px),linear-gradient(145deg,#7c281e,#321814);border:1px solid #ffdc7cb8;border-radius:5px;place-items:center;width:32px;height:46px;transition:transform .18s,box-shadow .18s,border-color .18s,filter .18s;display:inline-grid;position:relative;box-shadow:0 8px 18px #00000047}.draw-card-back span{color:#321814;white-space:nowrap;text-overflow:ellipsis;background:#ffcf5b;border-radius:6px;place-items:center;min-width:42px;max-width:88px;height:22px;padding:0 6px;font-size:12px;font-weight:900;line-height:1;display:grid;position:absolute;top:-28px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 0 0 2px #32181480}.draw-card-back.selected{z-index:2;filter:brightness(1.18);border-color:#ffcf5b;outline:2px solid #ffcf5b9e;transform:translateY(-18px)scale(1.06)}.draw-card-back.mine{box-shadow:0 18px 30px #ffcf5b57,0 8px 18px #00000052}.draw-card-back.mine:after{content:"";pointer-events:none;border:2px solid #ffcf5bbf;border-radius:8px;position:absolute;inset:-7px}.draw-card-back.confirmed span{background:#93f0c0}.draw-card-back.face{color:#203528;cursor:default;background:linear-gradient(160deg,#fff7df,#d8e0c5);border-color:#f3d483;align-content:space-between;padding:6px 4px}.draw-card-back.face.red{color:#b83a32}.draw-card-back.face em,.draw-card-back.face strong{font-style:normal;font-weight:900;line-height:1;display:block}.draw-card-back.face em{font-size:15px}.draw-card-back.face strong{justify-self:end;font-size:18px}.draw-card-back:disabled{cursor:default;opacity:.55}.draw-card-back.selected:disabled{opacity:1}.draw-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.draw-actions button{color:#2b1d08;background:#ffcf5b;border:1px solid #ffdc7c8f;border-radius:8px;padding:9px 18px;font-weight:900}.draw-actions button:disabled{cursor:default;opacity:.52}.draw-actions button.secondary{color:#ffefd0;background:#ffffff14}.draw-return-box{background:#ffffff12;border:1px solid #ffdc7c6b;border-radius:8px;justify-self:center;gap:10px;min-width:min(320px,100%);padding:14px;display:grid}.draw-return-box b{color:#ffcf5b;font-size:18px}.return-card-list{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.return-card-item{justify-items:center;gap:6px;min-width:72px;display:grid}.return-card-item small{color:#f4e8c2;font-size:12px;font-weight:800}.return-card-item i{color:#fff4d3a8;border:1px dashed #ffdc7c73;border-radius:6px;padding:8px 10px;font-style:normal;font-weight:800}.return-card-face{color:#203528;background:linear-gradient(160deg,#fff7df,#d8e0c5);border:1px solid #f3d483;border-radius:6px;align-content:space-between;width:42px;height:58px;padding:6px 5px;display:grid;box-shadow:0 8px 18px #0000003d}.return-card-face.red{color:#b83a32}.return-card-face em,.return-card-face strong{font-style:normal;font-weight:900;line-height:1;display:block}.return-card-face strong{justify-self:end;font-size:18px}.draw-return-box button{color:#2b1d08;background:#ffcf5b;border:1px solid #ffdc7c8f;border-radius:8px;justify-self:center;padding:9px 18px;font-weight:900}.draw-return-box button:disabled{cursor:default;opacity:.52}.played-zone{min-height:120px;animation:.34s cubic-bezier(.2,.86,.22,1) both played-zone-pop;position:relative}.played-zone p{color:#e8d5a5;gap:3px;margin-bottom:10px;display:inline-grid}.played-zone p strong,.played-zone p span{display:block}.played-zone p strong{color:#fff4d3;font-size:18px}.played-zone p span{color:#a7dec2;font-size:13px;font-weight:800}.played-zone.wind-target{background:#082a1e75;border:1px solid #ffd56b4d;border-radius:8px;justify-self:center;min-width:min(360px,100%);padding:12px;animation:.42s cubic-bezier(.2,.86,.22,1) both wind-target-pop;box-shadow:inset 0 0 24px #ffcf5b12}.played-cards{perspective:700px;justify-content:center;gap:8px;min-height:84px;display:flex}.played-cards:empty:before{content:"";background:linear-gradient(90deg,#0000,#ffde804d,#0000);border-radius:999px;align-self:center;width:128px;height:2px}.played-card-entry{animation:.48s cubic-bezier(.18,.82,.22,1.08) both play-card-drop;animation-delay:calc(var(--play-index,0) * 62ms)}.sit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.my-hand{z-index:3;pointer-events:none;padding-top:clamp(40px,7dvh,54px);display:block;position:absolute;bottom:2.5%;left:2.5%;right:2.5%}.my-hand>*{pointer-events:auto}.my-hand .action-bar{position:absolute;top:0;left:0;right:0}.hand-cards{scrollbar-width:none;perspective:900px;justify-content:center;min-height:138px;padding:18px 4px 4px;display:flex;overflow-x:auto}.hand-cards::-webkit-scrollbar{display:none}.hand-cards.disabled{opacity:.72}.hand-cards.dealing .playing-card{pointer-events:none;animation:.92s cubic-bezier(.14,.82,.2,1.08) both deal-card;animation-delay:calc(var(--deal-index,0) * 64ms)}.hand-cards.concealed .playing-card{color:#0000;background:linear-gradient(135deg,#ffeaa859,#0000 36%),repeating-linear-gradient(135deg,#ffd56b57 0 4px,#54291c2e 4px 8px),linear-gradient(145deg,#7c281e,#321814);border-color:#ffe8a9b8}.hand-cards.concealed .playing-card span,.hand-cards.concealed .playing-card strong{visibility:hidden}.hand-cards.concealed .playing-card:disabled{opacity:1;filter:none}.playing-card{color:#17120d;transform-origin:50% 86%;background:linear-gradient(145deg,#fffdf5,#e8dcc3);border:1px solid #d8c7a0;border-radius:8px;flex:0 0 74px;place-items:start;width:74px;height:110px;min-height:110px;margin-left:-22px;padding:9px;transition:transform .16s,box-shadow .16s,filter .16s,border-color .16s;display:grid;position:relative;box-shadow:0 10px 20px #00000047}.playing-card:first-child{margin-left:0}.playing-card:not(:disabled):hover{filter:brightness(1.04);border-color:#ffe4a2;transform:translateY(-9px)rotate(-1deg);box-shadow:0 18px 24px #00000057,0 0 0 1px #ffcf5b61}.playing-card:disabled{opacity:.58;filter:saturate(.7)}.playing-card.selected{border-color:#ffcf5b;animation:.18s ease-out both selected-card-pop;transform:translateY(-22px)scale(1.04);box-shadow:0 18px 24px #0000005c,0 0 0 2px #ffcf5b}.playing-card.red{color:#b9211c}.playing-card.compact{flex-basis:56px;width:56px;height:78px;min-height:78px;margin-left:0}.playing-card span{font-size:18px;font-weight:900}.playing-card strong{place-self:end;font-size:24px}@keyframes deal-card{0%{opacity:0;filter:brightness(.8);transform:translateY(-260px)scale(.56)rotateX(72deg)rotate(-18deg)}52%{opacity:1;filter:brightness(1.12);transform:translateY(18px)scale(1.08)rotateX(-7deg)rotate(4deg)}74%{transform:translateY(-7px)scale(.99)rotateX(0)rotate(-1deg)}to{filter:brightness();transform:translate(0,0)scale(1)rotateX(0)rotate(0)}}@keyframes play-card-drop{0%{opacity:0;filter:brightness(1.2);transform:translateY(-38px)rotateX(78deg)scale(.74)}58%{opacity:1;transform:translateY(7px)rotateX(-8deg)scale(1.05)}to{opacity:1;filter:brightness();transform:translate(0,0)rotateX(0)scale(1)}}@keyframes played-zone-pop{0%{opacity:.76;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes wind-target-pop{0%{opacity:.72;transform:scale(.95);box-shadow:inset 0 0 24px #ffcf5b12,0 0 #ffcf5b00}68%{opacity:1;transform:scale(1.02);box-shadow:inset 0 0 24px #ffcf5b14,0 0 30px #ffcf5b33}to{transform:scale(1)}}@keyframes selected-card-pop{0%{transform:translateY(-14px)scale(1)}to{transform:translateY(-22px)scale(1.04)}}@keyframes shuffle-left{0%{transform:translate(0,0)rotate(-2deg)}46%{transform:translate3d(-22px,-4px,16px)rotate(-18deg)rotateY(-24deg)}to{transform:translate(0,0)rotate(3deg)}}@keyframes shuffle-right{0%{transform:translate(0,0)rotate(2deg)}46%{transform:translate3d(22px,4px,16px)rotate(18deg)rotateY(24deg)}to{transform:translate(0,0)rotate(-3deg)}}@keyframes deck-deal-out{0%{opacity:1;transform:translate(0,0)rotate(0)scale(1)}to{opacity:0;transform:translate3d(calc(-90px + var(--deck-card,0) * 60px), 78px, 0) rotateZ(calc(-18deg + var(--deck-card,0) * 12deg)) scale(.62)}}@keyframes seat-red-five-flip{0%{filter:brightness(.86);transform:rotate(calc(-8deg + var(--card-index) * 1.6deg)) rotateY(180deg) translateY(0) scale(.96)}36%{filter:brightness(1.16);transform:rotate(calc(-8deg + var(--card-index) * 1.6deg)) rotateY(0deg) translateY(-6px) scale(1.08)}78%{filter:brightness(1.08);transform:rotate(calc(-8deg + var(--card-index) * 1.6deg)) rotateY(0deg) translateY(-6px) scale(1.08)}to{filter:brightness();transform:rotate(calc(-8deg + var(--card-index) * 1.6deg)) rotateY(0deg) translateY(0) scale(1)}}@keyframes red-five-fly-center{0%{opacity:0;transform:translate(0,0)rotate(12deg)rotateY(70deg)scale(.58)}16%{opacity:1}62%{opacity:1;transform:translate3d(var(--fly-x), var(--fly-y), 0) rotateZ(372deg) rotateY(0deg) scale(2.15)}78%{opacity:1;transform:translate3d(var(--fly-x), var(--fly-y), 0) rotateZ(372deg) rotateY(0deg) scale(2.15)}to{opacity:0;transform:translate(0,0)rotate(420deg)rotateY(65deg)scale(.42)}}@keyframes seat-current-bob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes person-aura-pulse{0%{transform:rotate(-4deg)scale(.98)}to{transform:rotate(-4deg)scale(1.04)}}@keyframes ready-pop{0%{filter:brightness(.9);transform:scale(.52)}62%{filter:brightness(1.18);transform:scale(1.18)}to{filter:brightness();transform:scale(1)}}@keyframes scarf-wave{0%{transform:translate(-50%)rotate(-7deg)translateY(0)}to{transform:translate(-50%)rotate(-3deg)translateY(1px)}}@keyframes banner-sheen{0%,58%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes deadline-pulse{0%{transform:scale(1)}to{transform:scale(1.035)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.action-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-height:44px;display:flex}.action-bar .wind-action{min-width:112px;box-shadow:0 0 0 2px #ffcf5b2e,0 10px 24px #0000003d}.action-status{color:#efe1bb;background:#02120d6b;border:1px solid #ffde8042;border-radius:6px;align-items:center;min-height:40px;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.result-modal{z-index:10;background:#02120da8;place-items:center;display:grid;position:fixed;inset:0}.result-modal>div{text-align:center;background:#19392b;border:1px solid #ffde806b;border-radius:8px;width:min(360px,100vw - 32px);padding:28px}.result-modal p{color:#ffcf5b;font-weight:800}.result-modal h2{margin-bottom:12px;font-size:42px}.result-modal em{color:#2b1d08;font-variant-numeric:tabular-nums;background:#ffcf5b;border-radius:999px;margin-top:16px;padding:6px 12px;font-style:normal;font-weight:900;display:inline-block}@media (width<=820px){.lobby-board{grid-template-columns:1fr}.lobby-hero{min-height:0;padding:10px 0 16px;display:block}.lobby-hero h1{font-size:42px}.lobby-hero span{margin-top:12px;display:inline-block}.nickname-panel{grid-template-columns:1fr auto;gap:8px}.nickname-panel label{grid-column:1/-1}.table-shell{grid-template-rows:auto minmax(0,1fr);min-height:100dvh;padding:8px}.table-topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;min-height:46px}.table-topbar button{min-height:36px;padding:0 12px}.table-topbar-actions{gap:6px}.table-topbar strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;line-height:1.2;overflow:hidden}.table-topbar span{white-space:nowrap;padding:7px 10px;font-size:13px}.game-table{border-width:1px;width:min(100%,177.778dvh - 103.111px);height:auto;min-height:0}.game-table:before{border-radius:46%;inset:18% 10% 24%}.player-seat{grid-template-columns:52px minmax(0,1fr);gap:7px;width:138px;min-height:76px}.seat-person{width:52px;height:64px}.player-seat strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.2;overflow:hidden}.stat-chip{min-width:21px;height:20px;padding:0 4px;font-size:10px}.seat-hand-backs{left:50px}.stat-chip i{width:11px;height:11px}.red-five-token,.rank-token{width:21px;height:24px;font-size:11px;top:6px;right:6px}.player-seat.has-red-five strong,.player-seat.finished strong{padding-right:24px}.ready-mark{width:16px;height:16px}.ready-mark.on:after{width:6px;height:3px;top:3px;left:4px}.red-five-scarf{height:9px;bottom:5px;left:4px;right:4px}.north{top:3%}.west{top:42%;left:2%}.east{top:42%;right:2%}.south{width:min(210px,100% - 32px);bottom:24%}.center-play{gap:10px;width:min(48%,360px);min-height:0;top:49%}.center-play.preplay-center{width:min(42%,320px);top:39%}.phase-banner{max-width:min(300px,100%);padding:7px 12px}.phase-banner strong,.phase-banner span,.phase-banner em{font-size:14px;line-height:1.2}.played-zone{min-height:86px}.played-zone.wind-target{min-width:0;padding:9px}.played-zone p{margin-bottom:6px}.played-zone p strong{font-size:16px}.played-zone p span{font-size:12px}.sit-grid{grid-template-columns:repeat(2,minmax(0,1fr));justify-self:center;width:min(320px,100%)}.sit-grid button{min-height:38px;padding:0 10px}.my-hand{padding-top:38px;bottom:2%;left:2%;right:2%}.hand-cards{justify-content:flex-start;min-height:78px;padding-top:8px}.playing-card{flex-basis:54px;width:54px;height:82px;min-height:82px;margin-left:-14px;padding:7px}.playing-card span{font-size:15px}.playing-card strong{font-size:20px}.action-bar{gap:8px;min-height:34px}.action-bar button,.action-status{min-height:34px;padding:0 10px}}@media (width<=520px) and (orientation:portrait){.table-shell{padding:6px}.table-topbar{grid-template-columns:auto minmax(0,1fr)}.table-topbar-actions{grid-column:1/-1;justify-content:space-between}.table-topbar span{text-align:center;justify-self:stretch}.game-table{height:calc(100dvh - 104px);min-height:590px}.game-table:before{inset:118px 28px 156px}.player-seat{grid-template-columns:46px minmax(0,1fr);gap:6px;width:122px;min-height:70px}.seat-person{width:46px;height:58px}.person-head{width:41px;height:41px;font-size:16px}.player-seat strong{font-size:13px}.stat-chip{gap:2px;min-width:18px;height:18px;padding:0 3px;font-size:9px}.seat-main{max-width:78px;left:40px}.seat-hand-backs{width:66px;top:25px;left:45px}.seat-mini-card{left:calc(var(--card-index) * 4px);width:15px;height:22px}.stat-chip i{width:9px;height:9px}.stat-draw i:after{top:3px;left:2px;right:2px}.red-five-token,.rank-token{width:19px;height:22px;font-size:10px}.red-five-token:before{width:3px;height:3px;top:3px}.west,.east{top:25%}.center-play{top:49%}.center-play.preplay-center{top:37%}.south{bottom:142px}}@media (orientation:landscape) and (height<=480px){.table-shell{grid-template-rows:auto minmax(0,1fr);padding:6px}.table-topbar{min-height:38px}.table-topbar button{min-height:32px;padding:0 10px}.table-topbar span{padding:5px 8px;font-size:12px}.table-topbar strong{font-size:16px}.game-table{width:min(100%,177.778dvh - 81.7778px)}.player-seat{grid-template-columns:46px minmax(0,1fr);width:126px;min-height:68px}.seat-person{width:46px;height:58px}.player-seat strong{font-size:13px}.seat-stats{gap:4px}.stat-chip{min-width:18px;height:18px;font-size:9px}.center-play.preplay-center{width:min(36%,280px);top:37%}.preplay-panel{min-width:0;padding:9px 12px}.preplay-panel strong{font-size:17px}.preplay-panel span,.preplay-panel em{font-size:12px}.my-hand{padding-top:34px}.action-bar button,.action-status{min-height:31px;font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.debug-shell{width:min(1680px,100vw - 24px);min-height:100vh;margin:0 auto;padding:16px 0 18px}.debug-topbar{grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:16px;min-height:66px;margin-bottom:14px;display:grid}.debug-topbar p{color:#ffcf5b;margin-bottom:4px;font-size:13px;font-weight:900}.debug-topbar h1{color:#fff7dd;letter-spacing:0;margin:0;font-size:clamp(26px,3vw,46px);line-height:1}.debug-topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.debug-topbar-actions span,.debug-topbar-actions a{color:#efe1bb;background:#02120d57;border:1px solid #ffde8052;border-radius:6px;align-items:center;min-height:40px;padding:0 12px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.debug-board{grid-template-columns:360px minmax(0,1fr);gap:14px;min-height:calc(100vh - 110px);display:grid}.debug-center,.debug-player-card{background:#02120d61;border:1px solid #ffde803d;border-radius:8px;box-shadow:inset 0 0 42px #fff4c909,0 16px 34px #0000002e}.debug-center{scrollbar-width:none;align-content:start;gap:12px;height:calc(100vh - 112px);min-height:560px;padding:14px;display:grid;position:sticky;top:12px;overflow:auto}.debug-center::-webkit-scrollbar{display:none}.debug-status,.debug-phase,.debug-last-play,.debug-wind-panel,.debug-result{background:#082c1f94;border:1px solid #ffde8038;border-radius:8px;padding:12px}.debug-status{gap:4px;display:grid}.debug-status strong{color:#fff4d3;font-size:17px}.debug-status span{color:#a7dec2;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.debug-phase{background:radial-gradient(circle at 100% 0,#ffcf5b2e,#0000 42%),#082c1fb8;position:relative;overflow:hidden}.debug-phase.hot{background:radial-gradient(circle at 100% 0,#ff66483d,#0000 42%),#481c16bd;border-color:#ff6648b8;animation:.62s ease-in-out infinite alternate deadline-pulse}.debug-phase p{color:#f4d68a;margin-bottom:8px;font-size:13px;font-weight:900}.debug-phase strong{color:#fff8e8;font-size:24px;line-height:1.12;display:block}.debug-phase em{color:#2b1d08;font-variant-numeric:tabular-nums;background:#ffcf5b;border-radius:999px;align-items:center;min-height:34px;margin-top:12px;padding:0 12px;font-style:normal;font-weight:900;display:inline-flex}.debug-last-play p{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.debug-last-play strong{color:#fff4d3;font-size:18px}.debug-last-play span{color:#a7dec2;font-size:12px;font-weight:800}.debug-played-cards{flex-wrap:wrap;align-items:center;gap:7px;min-height:84px;display:flex}.debug-played-cards:empty:before{content:"";background:linear-gradient(90deg,#0000,#ffde8047,#0000);border-radius:999px;width:100%;height:2px}.debug-wind-panel{background:radial-gradient(circle at 100% 0,#ffcf5b33,#0000 48%),#4b3012ad;border-color:#ffcf5b94;gap:8px;display:grid;box-shadow:inset 0 0 30px #ffcf5b14,0 0 0 1px #ffcf5b2e}.debug-wind-panel.requesting{animation:.9s ease-in-out infinite alternate deadline-pulse}.debug-wind-panel p{color:#ffcf5b;margin:0;font-size:13px;font-weight:900}.debug-wind-panel strong{color:#fff8e8;font-size:21px;line-height:1.15}.debug-wind-panel span{color:#efe1bb;font-size:13px;font-weight:800}.debug-wind-panel em{color:#2b1d08;font-variant-numeric:tabular-nums;background:#ffcf5b;border-radius:999px;justify-self:start;min-height:30px;padding:5px 10px;font-size:13px;font-style:normal;font-weight:900}.debug-wind-panel nav{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.debug-result{color:#2b1d08;background:linear-gradient(#ffd56b,#d79828);font-size:18px;font-weight:900}.debug-player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.debug-player-card{grid-template-rows:auto minmax(160px,1fr) auto auto;min-height:360px;padding:12px;transition:border-color .18s,box-shadow .18s,background .18s;display:grid;overflow:hidden}.debug-player-card.active{background:linear-gradient(130deg,#4c461b85,#02120d6b),#02120d61;border-color:#ffcf5bb8;box-shadow:0 0 0 2px #ffcf5b66,0 18px 44px #0000003d}.debug-player-card.finished{opacity:.78}.debug-player-card header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;margin-bottom:10px;display:grid}.debug-avatar{color:#2b1d08;background:linear-gradient(#ffe4a2,#d79828);border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;font-weight:900;display:grid}.debug-player-card h2{color:#fff7dd;text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:20px;line-height:1.1;overflow:hidden}.debug-player-card header span{color:#d3c7a1;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.debug-player-card header em{color:#f4d68a;white-space:nowrap;background:#02120d57;border:1px solid #ffde8047;border-radius:999px;padding:5px 8px;font-size:12px;font-style:normal;font-weight:900}.debug-player-card.active header em{color:#2b1d08;background:#ffcf5b}.debug-hand{scrollbar-width:thin;background:linear-gradient(#ffffff09,#0000),#02120d3d;border:1px solid #ffde8024;border-radius:8px;flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:168px;max-height:300px;padding:10px 6px;display:flex;overflow:auto}.debug-hand .playing-card{margin-left:0}.debug-hand .playing-card.selected{transform:translateY(-8px)scale(1.03)}.debug-actions{flex-wrap:wrap;align-items:center;gap:8px;min-height:46px;margin-top:10px;display:flex}.debug-actions button{min-height:36px;padding:0 12px;font-size:13px;font-weight:800}.debug-error{color:#ffe4d6;background:#70191675;border:1px solid #ff6b506b;border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:13px;font-weight:800}@media (width<=1180px){.debug-board{grid-template-columns:1fr}.debug-center{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;min-height:0;position:static}.debug-center>.notice,.debug-wind-panel,.debug-result{grid-column:1/-1}}@media (width<=860px){.debug-topbar{grid-template-columns:1fr;align-items:start}.debug-topbar-actions{justify-content:flex-start}.debug-player-grid,.debug-center{grid-template-columns:1fr}}@media (width<=560px){.debug-shell{width:min(100vw - 12px,1680px);padding-top:8px}.debug-player-card{min-height:320px;padding:10px}.debug-player-card header{grid-template-columns:auto minmax(0,1fr)}.debug-player-card header em{grid-column:1/-1;justify-self:start}.debug-hand{max-height:260px}}
