:root{color:#f5f7f3;font-synthesis:none;text-rendering:optimizelegibility;--ink:#f5f7f3;--muted:#96a39e;--green:#20d67a;--yellow:#ffd15c;--panel:#121c19;--line:#e5f0ea1c;--app-safe-top:0px;--app-safe-right:0px;--app-safe-bottom:0px;--app-safe-left:0px;--app-viewport-height:100dvh;background:#09100e;font-family:Inter,Noto Sans TC,Microsoft JhengHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;min-height:100vh;min-height:var(--app-viewport-height);background:radial-gradient(circle at 12% 8%,#2cbe8421,#0000 28rem),radial-gradient(circle at 88% 34%,#ffbc4c17,#0000 24rem),#09100e}.telegram-mini-app body{overscroll-behavior-y:none}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}a:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}input:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}summary:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}h1,h2,h3,p{margin-top:0}.shell{width:min(1180px,100%);min-height:100vh;min-height:var(--app-viewport-height);padding:max(22px, env(safe-area-inset-top), var(--app-safe-top)) max(20px, env(safe-area-inset-right), var(--app-safe-right)) max(22px, env(safe-area-inset-bottom), var(--app-safe-bottom)) max(20px, env(safe-area-inset-left), var(--app-safe-left));margin:0 auto;position:relative}.centered{place-content:center;justify-items:center;display:grid}.glass{border:1px solid var(--line);background:#111d19}.muted{color:var(--muted)}.brand{z-index:1;align-items:center;gap:10px;display:flex;position:relative}.brand-mark{color:#062216;background:linear-gradient(145deg,#63e8a7,#1abf70);border-radius:12px;place-items:center;width:43px;height:43px;display:grid;box-shadow:0 8px 22px #1fd37929}.brand-mark span{font-family:Noto Serif TC,PMingLiU,serif;font-size:21px;font-weight:800}.brand strong{letter-spacing:.1em;font-size:21px;line-height:1;display:block}.brand small{color:#7e8d87;letter-spacing:.2em;margin-top:5px;font-size:7px;display:block}.loader{border:2px solid #ffffff1f;border-top-color:var(--green);border-radius:50%;width:34px;height:34px;margin-top:42px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.identity-page{background:radial-gradient(circle at 50% 10%,#7040c257,#0000 28rem),radial-gradient(circle at 88% 72%,#125ca538,#0000 25rem),#070316;overflow:hidden}.ambient{pointer-events:none;filter:blur(2px);border-radius:50%;display:block;position:fixed}.ambient-one{background:radial-gradient(circle,#ffd26529,#0000 68%);width:180px;height:180px;top:8%;left:7%}.ambient-two{background:radial-gradient(circle,#6242d242,#0000 70%);width:240px;height:240px;bottom:5%;right:5%}.identity-card{background:linear-gradient(155deg,#1d0f3efa,#0a061efa);border:1px solid #f6c4538a;border-radius:24px;width:min(470px,100vw - 32px);padding:clamp(28px,6vw,48px);position:relative;box-shadow:0 30px 80px #00000094,inset 0 1px #ffefba1a,0 0 34px #7746d624}.identity-close{color:#f8e8bc;cursor:pointer;background:#21133d;border:1px solid #f6c4534d;border-radius:50%;width:36px;height:36px;font-size:24px;position:absolute;top:14px;right:14px}.identity-overlay{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#040110d6;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.identity-overlay .identity-page{width:100%;min-height:100%}.identity-card .brand{margin-bottom:46px}.eyebrow{color:var(--yellow);letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:800}.identity-card h1{letter-spacing:-.025em;margin:13px 0 16px;font-size:clamp(31px,7vw,44px);font-weight:850;line-height:1.16}.lead{color:#d4cbe3;font-size:15px;line-height:1.75}.invite-chip{color:#c8d0cc;border:1px solid #ffd15c4d;border-radius:10px;align-items:center;gap:9px;margin:10px 0 22px;padding:8px 13px;font-size:13px;display:inline-flex}.invite-chip b{color:var(--yellow);letter-spacing:.13em}.identity-form{gap:10px;margin-top:26px;display:grid}.identity-form label{color:#ced6d2;font-size:12px;font-weight:750}input{color:#fff7df;background:#0c0720;border:1px solid #f6c45347;border-radius:12px;width:100%;min-height:50px;padding:0 15px}input::placeholder{color:#8c81a2}.primary{color:#241000;cursor:pointer;background-color:#e9a72f;background-image:linear-gradient(135deg,#ffe48d,#e9a72f);border:1px solid #ffe08a;border-radius:12px;min-height:50px;padding:0 22px;font-weight:850;box-shadow:0 8px 22px #df9b232e}.primary:hover{background:linear-gradient(135deg,#ffedaf,#f4ba49)}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{color:#fff0c4;cursor:pointer;background:#21133d;border:1px solid #f6c45357;border-radius:12px;min-height:48px;padding:0 20px;font-weight:750}.secondary:hover{background:#2b1851;border-color:#ffe08ab3}.identity-form .primary{margin-top:7px}.oauth-actions{gap:10px;margin-top:25px;display:grid}.oauth-button{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:48px;font-weight:800;text-decoration:none;display:flex}.oauth-button.busy{opacity:.55;cursor:wait}.oauth-button.google{color:#1f1f1f;background:#fff;border-color:#747775}.oauth-button.line{color:#042b17;background:#06c755;border-color:#05a94f}.oauth-button.line b{border:1px solid #042b17c7;border-radius:3px;padding:2px 4px;font-size:10px}.line-login-help{color:#afa4c5;text-align:center;margin:0;font-size:11px;line-height:1.55}.line-login-help a{color:#cbd6d1;margin-left:4px}.oauth-tip{color:#dfc47c;margin:12px 0 0;font-size:12px;line-height:1.6}.oauth-tip a{color:#fff;margin-left:4px}.guest-disclosure{color:#d8cce8;text-underline-offset:3px;cursor:pointer;background:#170c31;border:0;width:100%;margin-top:18px;padding:8px;font-size:12px;text-decoration:underline}.guest-explanation{color:#b5aac8;margin:2px 0 0;font-size:11px;line-height:1.65}.merge-actions{gap:10px;margin-top:24px;display:grid}.identity-error{margin:14px 0 0}.privacy-note{color:#988cac;text-align:center;margin:20px 0 0;font-size:11px}.error{color:#ff9e96;margin:2px 0;font-size:13px;line-height:1.5}.lobby-app{isolation:isolate;width:min(1220px,100%);min-height:100vh;min-height:var(--app-viewport-height);padding:max(18px, env(safe-area-inset-top), var(--app-safe-top)) max(20px, env(safe-area-inset-right), var(--app-safe-right)) calc(32px + max(env(safe-area-inset-bottom), var(--app-safe-bottom))) max(20px, env(safe-area-inset-left), var(--app-safe-left));color:#fff4d2;margin:0 auto;position:relative}.lobby-app:before{content:"";z-index:-2;background:radial-gradient(circle at 50% -12%,#643db88c,#0000 34rem),radial-gradient(circle at 8% 38%,#123e8457,#0000 30rem),radial-gradient(circle at 92% 58%,#5819803d,#0000 30rem),linear-gradient(150deg,#070318 0%,#10062a 48%,#050b22 100%);position:fixed;top:0;bottom:0;left:0;right:0}.lobby-app:after{content:"";z-index:-1;pointer-events:none;opacity:.42;background-image:radial-gradient(circle,#ffe59dbf 0 1px,#0000 1.5px),radial-gradient(circle,#ad96ffa6 0 1px,#0000 1.5px),repeating-conic-gradient(at 50% -10%,#ffe18b06 0deg 7deg,#0000 7deg 14deg);background-position:18px 23px,0 0,50%;background-size:83px 83px,127px 127px,100% 100%;position:fixed;top:0;bottom:0;left:0;right:0}.app-topbar{justify-content:space-between;align-items:center;min-height:54px;display:flex}.brand-mark{color:#2d1400;background:linear-gradient(145deg,#ffe99a,#d79224);box-shadow:0 8px 24px #e1a22b47,inset 0 1px #ffffff8c}.lobby-app .brand strong{color:#fff2bd;text-shadow:0 2px 10px #0000008c}.lobby-app .brand small{color:#c6a960}.guest-link-banner{color:#d5ddd9;background:#ffd15c12;border:1px solid #ffd15c38;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 18px;margin:14px 0 0;padding:10px 14px;font-size:12px;display:flex}.guest-link-banner>div{gap:7px;display:flex}.guest-link-banner .line-login-help{text-align:left;flex-basis:100%;max-width:430px}.guest-link-banner a{color:#fff;cursor:pointer;background:#1c2d27;border:1px solid #ffffff24;border-radius:9px;align-items:center;min-height:32px;padding:0 11px;font-size:11px;font-weight:800;text-decoration:none;display:inline-flex}.guest-link-banner a.busy{opacity:.55;cursor:wait}.guest-link-loading{color:#93a09b;background:#17211e;border:1px solid #ffffff1a;border-radius:9px;align-items:center;min-height:32px;padding:0 11px;font-size:11px;font-weight:800;display:inline-flex}.guest-link-banner.compact{width:min(760px,100% - 16px);margin:8px auto 0}.profile-chip{background:#140a2dd1;border:1px solid #f6c4534d;border-radius:14px;align-items:center;gap:9px;padding:6px 10px 6px 7px;display:flex}.profile-actions{align-items:center;gap:10px;display:flex}.logout-button{color:#fff0c4;cursor:pointer;background:#1c1035;border:1px solid #c99b3a;border-radius:999px;min-height:36px;padding:0 13px}.logout-button:hover{color:#fff8dc;background:#2a184b;border-color:#ffe08a}.logout-button.compact{min-height:32px;padding:0 10px;font-size:12px}.confirm-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#030807c7;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.confirm-dialog{border:1px solid var(--line);width:min(390px,100%);color:var(--ink);background:#111c19;border-radius:18px;padding:24px;box-shadow:0 24px 70px #00000080}.confirm-dialog h2{margin:0 0 8px;font-size:22px}.confirm-dialog p{color:var(--muted);margin:0 0 22px;line-height:1.6}.confirm-dialog>div{justify-content:flex-end;gap:10px;display:flex}.confirm-dialog .danger{color:#fff4ee;background:#8f3f32;border-color:#b85d4d}.profile-avatar{color:#2d1400;background:linear-gradient(145deg,#ffe99a,#d99b2e);border-radius:10px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.profile-chip small,.profile-chip b{display:block}.profile-chip small{color:var(--muted);margin-bottom:2px;font-size:9px}.profile-chip b{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12px;overflow:hidden}.desktop-hall-nav{align-self:stretch;gap:4px;margin-left:auto;margin-right:18px;display:flex}.desktop-hall-nav button{color:#d8cde8;cursor:pointer;background:#160a2c;border:0;border-bottom:3px solid #0000;padding:0 13px;font-size:12px;font-weight:800}.desktop-hall-nav button.active{color:#ffe28a;border-bottom-color:#e8ad3a}.login-entry{color:#2a1200;cursor:pointer;background-color:#dc9626;background-image:linear-gradient(135deg,#ffe99b,#dc9626);border:1px solid #ffe294;border-radius:999px;min-height:40px;padding:0 16px;font-size:12px;font-weight:900;box-shadow:0 7px 20px #de9b2738}.game-catalog{margin-top:10px}.casual-banner{color:#ffe7a0;letter-spacing:.26em;background:radial-gradient(circle at 50% 0,#774bcd57,#0000 80%),#0d0723e6;border:1px solid #f6c4536b;border-radius:13px;justify-content:center;align-items:center;gap:14px;min-height:34px;margin-bottom:8px;font-family:Georgia,serif;font-size:14px;font-weight:850;display:flex;box-shadow:inset 0 1px #fff0be14,0 8px 24px #0000003d}.casual-banner button{color:#281100;letter-spacing:0;cursor:pointer;background-color:#dc9626;background-image:linear-gradient(135deg,#ffe99b,#dc9626);border:1px solid #ffe08a;border-radius:999px;padding:5px 10px;font-family:Inter,Noto Sans TC,sans-serif;font-size:10px;font-weight:900}.category-pills{scrollbar-width:none;gap:7px;margin-bottom:10px;display:flex;overflow-x:auto}.category-pills::-webkit-scrollbar{display:none}.category-pills button{color:#f7e9c6;cursor:pointer;background:#180d34;border:1px solid #f6c45347;border-radius:999px;flex:none;min-height:34px;padding:0 17px;font-size:11px;font-weight:800;box-shadow:inset 0 1px #ffffff0d,0 5px 14px #00000029}.category-pills button.active{color:#2b1200;background-color:#d99727;background-image:linear-gradient(135deg,#ffe99b,#d99727);border-color:#ffe69d;box-shadow:0 6px 18px #e29d2538}.casual-heading{justify-content:space-between;align-items:end;min-height:52px;margin-bottom:11px;display:flex}.casual-heading small{color:#087f82;letter-spacing:.1em;font-size:12px;font-weight:900}.casual-heading h1{margin:3px 0 0;font-size:clamp(22px,3vw,31px);line-height:1.1}.casual-heading>span{color:#55748a;font-size:11px}.casual-game-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.casual-game-card{color:#fff3c4;cursor:pointer;background:radial-gradient(circle at 50% 12%,#5a309a75,#0000 58%),linear-gradient(155deg,#1a0d38,#0c0824 72%);border:1px solid #f6c45373;border-radius:19px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;height:190px;padding:7px 7px 8px;transition:transform .18s,border-color .18s,filter .18s,box-shadow .18s;display:flex;overflow:hidden;box-shadow:0 13px 28px #00000061,inset 0 1px #ffeeb21a,0 0 20px #5c31a714}.casual-game-card:hover{filter:saturate(1.12);border-color:#ffe08ae6;transform:translateY(-3px);box-shadow:0 16px 34px #0000007a,0 0 24px #de9f3129}.casual-game-card:disabled{opacity:.55;cursor:wait}.casual-game-card strong{color:#fff3c4;text-align:center;text-shadow:0 2px 4px #000;white-space:nowrap;word-break:keep-all;background:#160a2c;border-radius:8px;place-items:center;width:100%;min-height:28px;font-size:13px;line-height:1;display:grid}.casual-game-icon{aspect-ratio:1;background:radial-gradient(circle at 50% 22%,#542479,#160b37 68%,#09061d);border:1px solid #ffdd7c8c;border-radius:28px;flex:none;place-items:center;width:min(144px,100% - 2px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 2px #ffffff26,0 10px 22px #00000059,0 0 18px #efb43e1f}.casual-game-icon.casual-game-icon-art{box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.casual-game-icon-art img{object-fit:contain;width:100%;height:100%;display:block}.casual-game-icon i{color:#721d2d;white-space:nowrap;background-color:#fff7d4;background-image:linear-gradient(145deg,#fff7d4,#e1bb61);border:2px solid #f7d36f;border-radius:50%;place-items:center;width:39%;min-height:39%;padding:2px;font:900 clamp(11px,1.8vw,21px)/1 Noto Serif TC,serif;display:grid;position:absolute;box-shadow:0 4px 10px #00000073}.casual-game-icon i:first-child{transform:translate(-50%,-5%)}.casual-game-icon i:nth-child(2){color:#21153e;transform:translate(50%,8%)}.casual-game-icon i:nth-child(3){color:#177357;width:34%;min-height:30%;transform:translateY(64%)}.icon-darkchess{background:linear-gradient(145deg,#ffbe4e,#ef6b42)}.icon-xiangqi{background:linear-gradient(145deg,#ef5268,#a9224c)}.icon-paichi{background:linear-gradient(145deg,#4ed9d0,#1975b3)}.icon-dalaoer{background:linear-gradient(145deg,#ff875e,#cf315a)}.icon-holdem{background:linear-gradient(145deg,#299b65,#075338)}.icon-ofc{background:linear-gradient(145deg,#5f8cff,#4037b8)}.icon-ofc54{background:linear-gradient(145deg,#9c63ed,#4d228d)}.icon-caijin13{background:linear-gradient(145deg,#ffcb4f,#e56a20)}.icon-joker13{background:linear-gradient(145deg,#f462b5,#932d9f)}.icon-mahjong{background:linear-gradient(145deg,#43d184,#0d8066)}.icon-mahjong-2p{background:linear-gradient(145deg,#53b9ff,#3159ca)}.icon-mahjong-us{background:linear-gradient(145deg,#ff7e72,#bd376b)}.icon-mahjong-jp{background:linear-gradient(145deg,#ef5b50,#9f2725)}.icon-paichi i,.icon-dalaoer i,.icon-holdem i{color:#22313d;background:#fffdf5;border-radius:8px;width:40%;height:58%;min-height:0;font-family:Georgia,Noto Sans TC,sans-serif}.icon-dalaoer i,.icon-holdem i:first-child{font-size:clamp(10px,1.65vw,20px)}.icon-paichi i:nth-child(2),.icon-dalaoer i:nth-child(2),.icon-holdem i:nth-child(2){color:#c92f42}.icon-ofc i,.icon-ofc54 i{border-radius:6px;width:52%;min-height:35%;font-size:clamp(9px,1.15vw,13px);line-height:.9}.icon-ofc i:first-child,.icon-ofc54 i:first-child{transform:translate(-34%,-92%)}.icon-ofc i:nth-child(2),.icon-ofc54 i:nth-child(2){transform:translate(34%)}.icon-ofc i:nth-child(3),.icon-ofc54 i:nth-child(3){width:52%;min-height:35%;transform:translate(-5%,92%)}.icon-caijin13 i,.icon-joker13 i{border-radius:8px;width:43%;height:56%;min-height:0;font-family:Georgia,Noto Sans TC,sans-serif;font-size:clamp(9px,1.35vw,16px)}.icon-mahjong i,.icon-mahjong-2p i,.icon-mahjong-us i,.icon-mahjong-jp i{color:#ba332d;background:linear-gradient(145deg,#fffdf5,#dcd2ba);border:2px solid #fff8e8;border-bottom-width:6px;border-radius:8px;width:42%;height:58%;min-height:0;font-size:clamp(9px,1.4vw,17px)}.icon-joker13 i:first-child,.icon-mahjong-us i:nth-child(2){width:48%;font-size:clamp(7px,.85vw,10px)}.icon-holdem i:nth-child(2),.icon-mahjong-jp i{font-size:clamp(8px,1.1vw,13px)}.icon-mahjong-jp i{width:48%}.loading-card{cursor:default;background:linear-gradient(100deg,#13211c 20%,#1c3028 45%,#13211c 70%) 0 0/250% 100%;border-color:#0000;animation:1.5s linear infinite loading-sheen}@keyframes loading-sheen{to{background-position:-250% 0}}.hall-hero{isolation:isolate;background:radial-gradient(circle at 74% 20%,#ffce5f29,#0000 20rem),linear-gradient(120deg,#1b3d31 0%,#123126 52%,#10231f 100%);border:1px solid #ffd15c38;border-radius:30px;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);align-items:stretch;gap:28px;margin-top:34px;padding:clamp(30px,5vw,58px);display:grid;position:relative;overflow:hidden;box-shadow:0 22px 60px #00000038,inset 0 1px #ffffff0a}.hall-hero:after{content:"";z-index:-1;border:58px solid #3bdf920e;border-radius:50%;width:300px;height:300px;position:absolute;bottom:-105px;right:-70px}.hero-copy,.hero-live-card{z-index:1;position:relative}.hero-fun-bits{z-index:2;pointer-events:none;width:122px;height:80px;position:absolute;top:20px;right:clamp(300px,31vw,390px)}.hero-fun-bits>span{place-items:center;display:grid;position:absolute;box-shadow:0 10px 24px #0000004d}.fun-mahjong{color:#17714f;background:linear-gradient(145deg,#fffdf5,#dfd4bb);border-radius:7px;width:39px;height:52px;font-family:Noto Serif TC,serif;font-weight:900;animation:4.8s ease-in-out infinite casual-float;top:2px;left:4px;transform:rotate(-12deg)}.fun-card{color:#202722;background:#fffaf0;border:2px solid #eee5d4;border-radius:8px;align-content:center;width:39px;height:54px;font-family:Georgia,serif;font-size:18px;font-weight:900;animation:5.2s ease-in-out .5s infinite casual-float;top:14px;left:45px;transform:rotate(9deg)}.fun-card small{color:#252b28;font-size:12px}.fun-disc{color:#a93630;background:radial-gradient(circle at 35% 25%,#fff9e8,#d7c394);border:4px double #a93630;border-radius:50%;width:48px;height:48px;font-family:Noto Serif TC,serif;font-weight:900;animation:4.5s ease-in-out 1s infinite casual-float;top:3px;right:0;transform:rotate(12deg)}.live-pill{color:#bfe9d3;background:#20d67a1f;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}.live-pill i{background:var(--green);border-radius:50%;width:7px;height:7px;animation:2.2s ease-out infinite live-pulse;box-shadow:0 0 0 4px #20d67a1f}.hero-copy h1{letter-spacing:-.045em;margin:22px 0 16px;font-size:clamp(42px,6.4vw,72px);line-height:1.04}.hero-copy p{color:#afbeb8;max-width:590px;margin-bottom:26px;font-size:15px;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.quick-play{min-width:190px}.hero-live-card{background:linear-gradient(160deg,#10251d,#08130f);border:1px solid #ffffff12;border-radius:24px;grid-template-columns:repeat(3,1fr);align-content:end;gap:8px;min-height:285px;padding:20px;display:grid;box-shadow:inset 0 1px #ffffff0a,0 18px 38px #0000003d}.hero-live-card>div:not(.mini-board){z-index:1;border-top:1px solid var(--line);text-align:center;padding:12px 8px;position:relative}.hero-live-card strong{color:var(--yellow);font-variant-numeric:tabular-nums;font-size:24px;display:block}.hero-live-card small{color:#75847e;margin-top:4px;font-size:9px;display:block}.mini-board{background:linear-gradient(145deg,#315947,#19392c);border:1px solid #dcbb7257;border-radius:10px;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));gap:0;padding:7px;display:grid;position:absolute;top:18px;bottom:95px;left:28px;right:28px;overflow:hidden;transform:perspective(500px)rotateX(9deg);box-shadow:inset 0 0 12px #0006}.mini-board span{border-bottom:1px solid #e2c4823d;border-right:1px solid #e2c4823d;place-items:center;min-height:0;display:grid;position:relative}.mini-board span:nth-child(8n){border-right:0}.mini-board span:nth-last-child(-n+8){border-bottom:0}.mini-board i{aspect-ratio:1;border-radius:50%;place-items:center;width:auto;height:76%;font-style:normal;display:grid;box-shadow:0 2px 4px #0000006b}.mini-board .mini-piece{background:radial-gradient(circle at 35% 25%,#fff9e9,#d7c293);border:2px double;font-family:Noto Serif TC,serif;font-size:clamp(9px,1vw,13px);font-weight:900;animation:3.8s ease-in-out infinite mini-piece-breathe}.mini-board .mini-tile-back{background:radial-gradient(circle at 36% 28%,#98784a 0%,#745a32 43%,#4d3a20 79%,#2f240f 100%);position:relative;box-shadow:inset 0 0 0 1px #0000008c,inset 0 -2px 4px #0000008c,inset 0 2px 3px #ffffff21,0 2px 4px #0000007a}.mini-board .mini-tile-back:after{content:"";border:1px solid #130c058c;border-radius:50%;position:absolute;top:17%;bottom:17%;left:17%;right:17%;box-shadow:inset 0 1px #ffffff14}.mini-board .mini-red{color:#ad3731}.mini-board .mini-black{color:#26231f;animation-delay:-.9s}.hall-tabs{border-bottom:1px solid var(--line);gap:5px;margin:34px 0 22px;display:flex}.hall-tabs button{color:#83908b;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;min-height:45px;padding:0 18px;font-weight:750}.hall-tabs button.active{color:#fff;border-bottom-color:var(--yellow)}.hall-tabs span{color:#9aa7a2;background:#1a2722;border-radius:999px;place-items:center;min-width:19px;height:19px;margin-left:5px;font-size:9px;display:inline-grid}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:17px;display:flex}.section-heading span{color:#61706a;letter-spacing:.17em;font-size:9px;font-weight:800}.section-heading h2{margin:5px 0 0;font-size:25px}.section-heading>button{color:var(--yellow);cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:12px;font-weight:750}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.game-tile{background:linear-gradient(145deg,#15241f,#101a17);border:1px solid #ebf4ee21;border-radius:24px;grid-template-columns:minmax(210px,.9fr) minmax(230px,1.1fr);min-height:230px;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid;overflow:hidden;box-shadow:0 12px 28px #00000024}.game-tile:hover{border-color:#ffd15c42;transform:translateY(-3px);box-shadow:0 18px 36px #00000038}.darkchess-tile{grid-column:1/-1}.registry-game{min-width:0}.registry-art{place-items:center;display:grid}.registry-piece{aspect-ratio:1;color:#9d2c22;background:#f2d99e;border:5px double #5f2219b8;border-radius:50%;place-items:center;width:clamp(66px,9vw,88px);font:800 clamp(30px,4vw,42px)/1 serif;display:grid;box-shadow:0 7px #9c7443,0 14px 24px #0000004d}.xiangqi-tile .registry-piece{color:#b32921;border-color:#b32921b8}.game-art{background:radial-gradient(circle at 50% 40%,#315944,#12231d 68%);min-height:230px;position:relative;overflow:hidden}.game-art:before{content:"";border:1px solid #ffd15c26;border-radius:50%;position:absolute;top:18%;bottom:18%;left:18%;right:18%}.game-art i{color:#07110d;background:var(--green);border-radius:999px;padding:5px 8px;font-size:9px;font-style:normal;font-weight:900;position:absolute;top:15px;left:15px}.chess-piece{background:radial-gradient(circle at 36% 27%,#fff9e8,#e1cca0 68%,#bba273);border:5px double;border-radius:50%;place-items:center;width:96px;height:96px;font-family:Noto Serif TC,serif;font-size:43px;font-weight:900;display:grid;position:absolute;box-shadow:inset 0 2px 2px #fff9,0 16px 30px #00000061}.red-piece{z-index:2;color:#b94138;animation:4.2s ease-in-out infinite piece-hover;top:52px;left:calc(50% - 80px);transform:rotate(-10deg)}.black-piece{color:#18231e;animation:4.6s ease-in-out .6s infinite piece-hover;top:88px;left:calc(50% + 4px);transform:rotate(12deg)}.game-info{justify-content:space-between;align-items:end;gap:18px;padding:28px;display:flex}.game-info span{color:var(--yellow);font-size:10px;font-weight:800}.game-info h3{margin:7px 0;font-size:32px}.game-info p{color:var(--muted);margin:0;font-size:11px}.game-info button{color:#07130d;background:var(--yellow);cursor:pointer;border:0;border-radius:11px;min-width:92px;min-height:42px;font-weight:850}.game-info button:disabled{opacity:.45}.coming-tile{opacity:.9;grid-template-columns:1fr}.mahjong-art{background:radial-gradient(circle at 50% 30%,#315548,#172620 72%);justify-content:center;align-items:center;gap:9px;min-height:150px;display:flex}.mahjong-art span{color:#a52f2b;background:linear-gradient(145deg,#fffdf6,#ded4bd);border:2px solid #f5efdd;border-bottom-width:6px;border-radius:9px;align-content:center;place-items:center;width:60px;height:78px;font-family:Noto Serif TC,serif;font-size:25px;font-weight:900;animation:4.4s ease-in-out infinite tile-bob;display:grid;box-shadow:inset -3px -3px #6b9b8438,0 9px 18px #0000004d}.mahjong-art span:nth-child(2){animation-delay:-.7s}.mahjong-art span:nth-child(3){animation-delay:-1.4s}.mahjong-art .tile-wan{color:#b3322d}.mahjong-art .tile-wan b,.mahjong-art .tile-wan small{line-height:1;display:block}.mahjong-art .tile-wan small{color:#1e7161;margin-top:4px;font-size:18px}.mahjong-art .tile-east{color:#252a27}.mahjong-art .tile-green{color:#148054}.poker-art{background:radial-gradient(circle at 50% 44%,#714338,#2c201d 72%);min-height:150px;position:relative;overflow:hidden}.poker-card{color:#242827;background:linear-gradient(145deg,#fffdf6,#e9dfcb);border:2px solid #f4ead5;border-radius:11px;align-content:start;place-items:start;width:72px;height:98px;padding:9px;font-family:Georgia,serif;font-size:25px;font-weight:900;display:grid;position:absolute;top:31px;left:50%;box-shadow:0 12px 20px #00000057}.poker-card small{font-size:20px;line-height:.9;display:block}.card-back{background:repeating-linear-gradient(45deg,#18765f 0 5px,#105943 5px 10px);margin-left:-92px;animation:5s ease-in-out infinite card-fan-left;transform:rotate(-17deg)}.card-back:after{content:"眾";color:#f4d77b;border:2px solid #ffe79da6;border-radius:7px;place-items:center;font-family:Noto Serif TC,serif;display:grid;position:absolute;top:10px;bottom:10px;left:10px;right:10px}.card-ace{margin-left:-35px;animation:5s ease-in-out .2s infinite card-fan-mid;transform:rotate(-2deg)}.card-king{color:#bd3737;margin-left:24px;animation:5s ease-in-out .4s infinite card-fan-right;transform:rotate(15deg)}.poker-chip{color:#fff4c8;background:#14725b;border:5px dashed #f3d479;border-radius:50%;place-items:center;width:42px;height:42px;font-family:Noto Serif TC,serif;font-style:normal;font-weight:900;animation:8s linear infinite chip-turn;display:grid;position:absolute;bottom:14px;right:18px;box-shadow:0 7px 13px #0000004d}.coming-tile .game-info{padding:20px 24px}.coming-tile .game-info h3{font-size:23px}.coming-tile .game-info b{color:#829089;font-size:11px}@keyframes live-pulse{0%{box-shadow:0 0 #20d67a59}70%,to{box-shadow:0 0 0 8px #20d67a00}}@keyframes casual-float{0%,to{translate:0}50%{translate:0 -6px}}@keyframes mini-piece-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.055)}}@keyframes piece-hover{0%,to{translate:0}50%{translate:0 -7px}}@keyframes tile-bob{0%,to{translate:0;rotate:-1deg}50%{translate:0 -5px;rotate:1deg}}@keyframes card-fan-left{0%,to{transform:rotate(-17deg)translateY(0)}50%{transform:rotate(-20deg)translateY(-4px)}}@keyframes card-fan-mid{0%,to{transform:rotate(-2deg)translateY(0)}50%{transform:rotate(-1deg)translateY(-7px)}}@keyframes card-fan-right{0%,to{transform:rotate(15deg)translateY(0)}50%{transform:rotate(18deg)translateY(-4px)}}@keyframes chip-turn{to{transform:rotate(360deg)}}.table-browser{min-height:300px}.section-heading span{color:#cba74e}.section-heading h2{color:#fff2c7}.create-public{border-radius:999px;color:#ffe28a!important;background:#160a2c!important;border:1px solid #f6c4534d!important;padding:8px 12px!important}.table-list{gap:8px;display:grid}.table-row{color:#fff2c7;background:linear-gradient(145deg,#1c0e39f5,#0b071ff5);border:1px solid #f6c45347;border-radius:15px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;min-height:76px;padding:12px 14px;display:grid;box-shadow:0 8px 22px #00000047,inset 0 1px #ffeeb50f}.table-game-icon{color:#2c1300;background:linear-gradient(145deg,#ffe99b,#d59022);border:1px solid #d5a63d;border-radius:13px;place-items:center;width:46px;height:46px;font-family:Noto Serif TC,serif;font-size:19px;font-weight:800;display:grid;box-shadow:0 7px 18px #0000004d}.table-row strong,.table-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.table-row strong{font-size:13px}.table-row small{color:#c6bad7;margin-top:6px;font-size:10px}.seat-count{color:#ded2ed;align-items:center;gap:7px;font-size:11px;display:flex}.seat-count i{background:#f2bd45;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #f2bd45a6}.table-row>button{color:#281100;cursor:pointer;background-color:#dc9626;background-image:linear-gradient(135deg,#ffe99b,#dc9626);border:1px solid #ffe08a;border-radius:10px;min-width:68px;min-height:39px;font-size:12px;font-weight:850}.table-row>button:disabled{opacity:.45}.table-actions,.waiting-actions{align-items:center;gap:8px;display:flex}.table-actions button,.waiting-actions button{cursor:pointer;border:0;border-radius:10px;min-height:39px;padding:0 13px;font-size:12px;font-weight:850}.table-actions button:first-child,.waiting-actions .primary{color:#07130d;background:var(--yellow)}.table-actions .leave-table,.waiting-actions .leave-table{color:#ef9b91;background:0 0;border:1px solid #7c4c48}.table-actions button:disabled,.waiting-actions button:disabled{opacity:.45}.phase-chip{color:#d9cce8;background:#20123a;border:1px solid #f6c45338;border-radius:999px;padding:6px 9px;font-size:9px}.phase-chip.playing{color:#2b1200;background:#f1bd49}.empty-hall,.hall-loading{color:#fff0c2;text-align:center;background:#140a2db8;border:1px dashed #f6c45357;border-radius:18px;place-items:center;min-height:220px;padding:30px;display:grid}.empty-hall p{color:#c5b8d5;margin:-20px 0 0;font-size:12px;line-height:1.6}.empty-hall button{color:#07130d;background:var(--yellow);border:0;border-radius:10px;min-height:40px;padding:0 18px;font-weight:800}.hall-loading{color:var(--muted)}.friend-panel{background:#120929d1;border:1px solid #f6c4533d;border-radius:15px;margin-top:28px}.friend-panel summary{color:#e5d6f1;cursor:pointer;padding:17px 19px;font-size:12px;font-weight:700}.friend-actions{grid-template-columns:auto minmax(260px,420px);gap:12px;padding:0 16px 16px;display:grid}.join-row{gap:8px;display:flex}.join-row input{text-transform:uppercase;letter-spacing:.12em;flex:1;min-width:0}.join-row button{border:1px solid var(--yellow);color:#ffe28a;background:#160a2c;border-radius:11px;min-width:70px;font-weight:800}.join-row button:disabled{opacity:.35}.lobby-error{color:#ff9e96;background:#351c1a;border:1px solid #ff988f66;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 0;padding:11px 12px 11px 16px;display:flex}.lobby-error button{color:#ffd2ce;cursor:pointer;background:#ffffff14;border:0;border-radius:8px;flex:none;width:32px;height:32px;padding:0;font-size:21px;line-height:1}.lobby-error button:hover{background:#ffffff24}.lobby-footer{color:#998cab;border-top:1px solid #f6c4532e;justify-content:space-between;margin-top:38px;padding:18px 2px 0;font-size:9px;display:flex}.mobile-nav{display:none}.create-table-backdrop{z-index:40;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#040110d6;place-items:center;padding:18px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.create-table-dialog{width:min(480px,100%);max-height:min(720px, calc(var(--app-viewport-height) - 36px));background:linear-gradient(155deg,#211040,#0b071f);border:1px solid #f6c45370;border-radius:20px;padding:22px;overflow-y:auto;box-shadow:0 24px 70px #000000a6}.create-table-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.create-table-heading span{color:var(--yellow);letter-spacing:.12em;font-size:9px;font-weight:800}.create-table-heading h2{margin:6px 0 0;font-size:24px}.create-table-heading>button{color:#d6cae5;cursor:pointer;background:#21133d;border:1px solid #f6c45342;border-radius:11px;width:40px;height:40px;font-size:23px}.create-fieldset{margin-top:24px}.create-fieldset>strong,.create-number-field strong{font-size:12px;display:block}.choice-row{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.choice-row button{color:#e0d3ec;cursor:pointer;background:#21133d;border:1px solid #f6c4533d;border-radius:12px;min-height:48px;font-weight:850}.choice-row button.selected{color:#2b1200;background:linear-gradient(135deg,#ffe99b,#d99727);border-color:#ffe28a}.create-number-field{background:#0d0822;border:1px solid #f6c45333;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:15px;display:flex}.create-number-field small{color:var(--muted);margin-top:5px;font-size:9px;display:block}.create-number-choices{display:block}.create-number-choices .choice-row{grid-template-columns:repeat(4,1fr)}.number-input{align-items:center;gap:7px;display:flex}.number-input input{color:#fff6dc;text-align:right;width:92px;min-height:44px;font:inherit;background:#130b2b;border:1px solid #725f8b;border-radius:10px;font-weight:850}.number-input b{min-width:24px;color:var(--yellow);font-size:11px}.create-table-note{color:var(--muted);margin:16px 2px 0;font-size:10px;line-height:1.6}.create-table-actions{grid-template-columns:1fr 1.25fr;gap:9px;margin-top:18px;display:grid}.create-table-actions button{min-height:48px}.game-shell{width:min(1180px,100%);min-height:100vh;min-height:var(--app-viewport-height);padding:max(12px, env(safe-area-inset-top), var(--app-safe-top)) max(14px, env(safe-area-inset-right), var(--app-safe-right)) max(14px, env(safe-area-inset-bottom), var(--app-safe-bottom)) max(14px, env(safe-area-inset-left), var(--app-safe-left));margin:0 auto}.game-shell.has-rematch-dock{padding-bottom:calc(88px + max(env(safe-area-inset-bottom), var(--app-safe-bottom)))}.game-header{z-index:20;border-bottom:1px solid var(--line);background:#09100e;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:12px;min-height:58px;padding-bottom:10px;display:grid;position:sticky;top:0}.back-to-lobby{color:#e5ece8;cursor:pointer;background:#16221e;border:0;border-radius:11px;align-items:center;gap:5px;min-height:40px;padding:0 12px 0 8px;display:flex}.back-to-lobby span{font-size:27px;line-height:1}.back-to-lobby b{font-size:12px}.game-title span,.game-title strong{display:block}.game-title span{color:var(--muted);font-size:9px}.game-title strong{margin-top:3px;font-size:14px}.room-code{border:1px solid var(--line);min-height:39px;color:var(--ink);cursor:pointer;background:#111b18;border-radius:11px;align-items:baseline;gap:7px;padding:7px 10px;display:flex}.room-code span,.room-code small{color:var(--muted);font-size:8px}.room-code b{color:var(--yellow);letter-spacing:.12em}.network{color:var(--muted);justify-self:end;align-items:center;gap:7px;font-size:9px;display:flex}.network span{background:var(--green);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #20d67a1a}.network.offline span{box-shadow:none;background:#ef806f}.network.connecting span{background:var(--yellow);box-shadow:none}.table-layout{grid-template-columns:minmax(170px,220px) minmax(520px,1fr);justify-content:stretch;align-items:center;gap:clamp(15px,3vw,40px);margin:clamp(18px,4vh,42px) auto 0;display:grid}.player-rail{max-height:calc(var(--app-viewport-height) - 220px);align-content:center;gap:10px;display:grid;overflow-y:auto}.player-panel{border:1px solid var(--line);background:#101916;border-radius:15px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:15px;transition:border-color .16s,background-color .16s;display:grid}.player-panel.active{background:#13241d;border-color:#20d67a85}.avatar{color:#101512;background:var(--yellow);border-radius:12px;grid-row:span 2;place-items:center;width:43px;height:43px;font-weight:900;display:grid}.player-copy{min-width:0}.player-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.player-copy span{color:var(--muted);margin-top:4px;font-size:9px;display:block}.player-panel time{color:#cfd8d3;font-variant-numeric:tabular-nums;letter-spacing:.03em;grid-column:1/-1;margin-top:8px;font-size:28px;font-weight:650}.player-panel.active time{color:var(--green)}.board-column{width:min(100%,620px);min-width:250px;margin:0 auto}.package-board-host{width:100%}.package-board-error{color:#8d3327;text-align:center;background:#fff1ec;border:1px solid #cc635173;border-radius:11px;padding:24px 16px}.status-banner{min-height:35px;color:var(--muted);background:#111a17;border-radius:10px;place-items:center;margin-bottom:8px;font-size:10px;display:grid}.status-banner.your-turn{color:#06130d;background:var(--green);font-weight:850}.status-banner.finished{color:var(--yellow);border:1px solid #ffd15c40}.status-banner.finished.won{color:#07140f;background:var(--yellow)}.darkchess-board{--board-line:#dbbe7b61;contain:layout paint;background:linear-gradient(145deg,#284638 0%,#19382c 54%,#122b22 100%);border:1px solid #cda65a6b;border-radius:11px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:clamp(8px,1.8vw,12px);display:grid;box-shadow:inset 0 0 0 2px #00000052,inset 0 3px 18px #00000052,0 18px 45px #0000004d}.darkchess-board.pending{pointer-events:none}.board-cell{aspect-ratio:1;border:0;border-right:1px solid var(--board-line);border-bottom:1px solid var(--board-line);color:inherit;cursor:default;contain:layout paint;-webkit-user-select:none;user-select:none;background:0 0;border-radius:0;place-items:center;padding:0;display:grid;position:relative}.board-cell:nth-child(4n){border-right:0}.board-cell:nth-last-child(-n+4){border-bottom:0}.board-cell.actionable,.board-cell.hidden{cursor:pointer}.tile-back,.piece{aspect-ratio:1;border-radius:50%;place-items:center;display:grid;position:absolute;top:7%;bottom:7%;left:7%;right:7%}.tile-back{background:radial-gradient(circle at 36% 28%,#98784a 0%,#745a32 43%,#4d3a20 79%,#2f240f 100%);box-shadow:inset 0 0 0 1px #0000008c,inset 0 -4px 7px #0000008c,inset 0 3px 5px #ffffff21,0 4px 7px #0000007a}.tile-back:after{content:"";border:1px solid #130c058c;border-radius:50%;position:absolute;top:17%;bottom:17%;left:17%;right:17%;box-shadow:inset 0 1px #ffffff14}.piece{text-shadow:0 1px #ffffff52;background:radial-gradient(circle at 38% 26%,#fffaf0 0%,#f0e3c5 47%,#d7c39a 81%,#bba576 100%);font-family:Noto Serif TC,PMingLiU,serif;font-size:clamp(22px,5vw,38px);font-weight:900;line-height:1;box-shadow:inset 0 0 0 1px #ffffff8c,0 4px 7px #00000075}.piece:before{content:"";border:1px solid #271d1033;border-radius:50%;position:absolute;top:4%;bottom:4%;left:4%;right:4%}.piece:after{content:"";opacity:.72;border:2px solid;border-radius:50%;position:absolute;top:12%;bottom:12%;left:12%;right:12%}.board-cell.red{color:#b52f2b}.board-cell.black{color:#211f1b}.board-cell.selected .piece,.board-cell.selected .tile-back,.board-cell.destination .piece,.board-cell.destination .tile-back{outline:3px solid var(--green);outline-offset:0}.destination-dot{background:var(--green);border:2px solid #06120e;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;bottom:auto;left:50%;right:auto;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #20d67a40}.board-meta{color:#65756e;justify-content:space-between;padding:8px 3px 0;font-size:9px;display:flex}.waiting-dock{border-radius:14px;justify-content:space-between;align-items:center;gap:18px;width:min(700px,100%);margin:17px auto 0;padding:15px 17px;display:flex}.waiting-dock strong{font-size:12px}.waiting-dock p{color:var(--muted);margin:4px 0 0;font-size:10px}.waiting-dock .primary{white-space:nowrap;min-height:41px}.rematch-dock{z-index:4;left:50%;bottom:max(12px, env(safe-area-inset-bottom), var(--app-safe-bottom));background:#0b1612f5;border:1px solid #ffd15c59;border-radius:13px;align-items:center;gap:8px;width:min(460px,100vw - 24px);padding:8px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 32px #0000006b}.rematch-dock span{color:var(--muted);text-align:center;flex:1;font-size:10px}.rematch-dock button{white-space:nowrap;min-height:44px;padding:0 13px}.rematch-dock .primary{color:#07140f;background:var(--yellow);font-weight:850}.toast{z-index:5;left:50%;bottom:max(30px, env(safe-area-inset-bottom), var(--app-safe-bottom));text-align:center;background:#351c1a;border:1px solid #ff988f66;border-radius:12px;width:min(440px,100vw - 32px);padding:12px 16px;position:fixed;transform:translate(-50%)}.game-footer{color:#53635c;justify-content:space-between;gap:15px;margin-top:14px;font-size:8px;display:flex}@media (max-width:900px){.casual-game-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.casual-game-card{height:180px}.hall-hero{grid-template-columns:1fr}.hero-fun-bits{display:none}.hero-live-card{min-height:240px}.game-grid{grid-template-columns:1fr}.coming-tile{grid-template-columns:190px 1fr}.mahjong-art{min-height:100%}.game-holdem .table-layout{flex-direction:column;align-items:stretch;gap:5px;margin-top:7px;display:flex}.game-holdem .player-rail{order:1;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;width:100%;max-height:none;display:grid;overflow:visible}.game-holdem .player-panel{text-align:center;border-radius:8px;min-width:0;padding:4px 2px;display:block}.game-holdem .player-panel .avatar,.game-holdem .player-panel .player-copy{display:none}.game-holdem .player-panel time{color:var(--muted);letter-spacing:0;margin:0;font-size:10px;display:block}.game-holdem .player-panel.active time{color:var(--green);font-weight:850}.game-holdem .board-column{order:2;width:min(100%,620px)}}@media (max-width:780px){.brand-mark{border-radius:11px;width:38px;height:38px}.brand strong{font-size:18px}.table-layout{flex-direction:column;gap:8px;margin-top:10px;display:flex}.player-rail{order:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:min(100%,500px);max-height:none;display:grid;overflow:visible}.player-panel{width:min(100%,500px);padding:9px 11px}.board-column{order:2;width:min(100%,500px);min-width:240px}.avatar{width:36px;height:36px}.player-panel time{grid-column:2;margin:-3px 0 0;font-size:19px}.darkchess-board{padding:9px}.piece{font-size:clamp(24px,8vw,36px)}.waiting-dock{margin-top:10px}.game-holdem .player-rail{order:1;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;width:100%}.game-holdem .player-panel{width:auto;padding:4px 2px}.game-holdem .player-panel time{margin:0;font-size:10px}.game-holdem .board-column{order:2;width:min(100%,620px)}}@media (max-width:600px){.guest-link-banner{text-align:center;flex-direction:column;align-items:stretch;gap:8px}.guest-link-banner>div{justify-content:center}.lobby-app{padding-left:max(14px, var(--app-safe-left));padding-right:max(14px, var(--app-safe-right));padding-bottom:calc(86px + max(env(safe-area-inset-bottom), var(--app-safe-bottom)))}.app-topbar .brand small,.desktop-hall-nav{display:none}.login-entry{min-height:36px;padding:0 12px;font-size:10px}.game-catalog{margin-top:8px}.casual-banner{min-height:32px;margin-bottom:6px;padding:4px 8px;font-size:12px}.category-pills{gap:5px;margin-bottom:6px}.category-pills button{min-height:31px;padding:0 13px;font-size:10px}.casual-game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.casual-game-card{border-radius:16px;gap:2px;height:154px;padding:5px 4px 6px}.casual-game-card strong{min-height:27px;font-size:13px}.casual-game-icon{border-radius:17px;width:min(108px,100% - 2px)}.casual-game-icon i{border-width:2px;font-size:clamp(9px,3.3vw,14px)}.profile-chip{background:0 0;border:0;padding-right:0}.profile-chip small{display:none}.profile-chip b{max-width:88px}.hall-hero{border-radius:20px;margin-top:22px;padding:25px 20px}.hero-copy h1{margin-top:18px;font-size:43px}.hero-copy p{font-size:13px}.hero-actions{grid-template-columns:1fr 1fr;display:grid}.quick-play{min-width:0}.hero-live-card{min-height:208px;padding:14px}.mini-board{padding:5px;top:14px;bottom:84px;left:24px;right:24px}.mini-board .mini-piece{border-width:1px;font-size:clamp(9px,3vw,12px)}.hall-tabs{scrollbar-width:none;margin-top:24px;overflow-x:auto}.hall-tabs::-webkit-scrollbar{display:none}.hall-tabs button{flex:none;padding:0 13px}.section-heading h2{font-size:21px}.game-tile{grid-template-columns:1fr}.game-art{min-height:190px}.game-info{padding:20px}.coming-tile{grid-template-columns:1fr}.mahjong-art{min-height:120px}.table-row{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}.seat-count,.phase-chip{grid-column:2;justify-self:start}.table-row>button,.table-actions{grid-area:1/3/span 2}.table-actions{flex-direction:column;gap:5px}.table-actions button{width:100%;min-height:34px;padding:0 10px}.friend-actions{grid-template-columns:1fr}.lobby-footer{display:none}.mobile-nav{z-index:9;padding:7px max(12px, var(--app-safe-right)) calc(7px + max(env(safe-area-inset-bottom), var(--app-safe-bottom))) max(12px, var(--app-safe-left));background:#0a051bf7;border-top:1px solid #f6c45361;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #0000006b,inset 0 1px #ffebae0f}.mobile-nav button{color:#d7cce6;background:#0a051b;border:0;min-height:49px;font-size:10px;font-weight:750}.mobile-nav button span{margin-bottom:3px;font-size:17px;display:block}.mobile-nav button.active{color:#ffe08a;text-shadow:0 0 10px #ffcf5757}.create-table-backdrop{align-items:end;padding:0}.create-table-dialog{width:100%;max-height:calc(var(--app-viewport-height) - 24px);padding:20px 16px calc(18px + max(env(safe-area-inset-bottom), var(--app-safe-bottom)));border-bottom:0;border-left:0;border-right:0;border-radius:22px 22px 0 0}.create-table-actions{grid-template-columns:1fr}.game-shell{padding:max(8px, env(safe-area-inset-top), var(--app-safe-top)) max(8px, var(--app-safe-right)) max(8px, env(safe-area-inset-bottom), var(--app-safe-bottom)) max(8px, var(--app-safe-left))}.game-header{grid-template-columns:auto 1fr auto auto;gap:7px;min-height:49px}.back-to-lobby{min-height:36px;padding:0 9px 0 6px}.game-title{min-width:0}.game-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-code{min-height:35px;padding:5px 8px}.room-code span,.room-code small{display:none}.network{grid-area:2/2/auto/-1;margin-top:-7px}.game-header .logout-button{grid-area:1/4}.status-banner{margin-bottom:5px}.waiting-dock{align-items:flex-start}.waiting-actions{flex-wrap:wrap;justify-content:flex-end}.table-layout{gap:5px}.player-panel{border-radius:11px;gap:7px;padding:7px 9px}.avatar{border-radius:9px;width:31px;height:31px;font-size:12px}.player-copy strong{font-size:11px}.player-panel time{font-size:17px}.darkchess-board{border-radius:11px}.waiting-dock{padding:11px}.waiting-dock p{display:none}.game-footer{padding:0 3px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.game-tile:hover,.casual-game-card:hover{transform:none}}.tg-darkchess{--tgdc-red:#f25f5c;--tgdc-gold:#f4c86a;--tgdc-card:#141d2c;width:min(760px,100%);min-height:var(--app-viewport-height);padding:max(14px, var(--app-safe-top), env(safe-area-inset-top)) max(16px, var(--app-safe-right), env(safe-area-inset-right)) calc(92px + max(var(--app-safe-bottom), env(safe-area-inset-bottom))) max(16px, var(--app-safe-left), env(safe-area-inset-left));color:#f5f7fb;background:radial-gradient(circle at 90% 2%,#f25f5c24,#0000 19rem),radial-gradient(circle at 0 30%,#2b76a624,#0000 24rem),#09111e;margin:0 auto;position:relative}.tg-darkchess:before{content:"";z-index:-1;background:#09111e;position:fixed;top:0;bottom:0;left:0;right:0}.tgdc-header{justify-content:space-between;align-items:center;min-height:50px;display:flex}.tgdc-brand{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.tgdc-brand-mark{color:#532213;background:radial-gradient(circle at 36% 30%,#fff6c9,#e0ad50 70%);border:2px solid #e3b557;border-radius:50%;place-items:center;width:40px;height:40px;font-family:Noto Serif TC,serif;font-size:19px;font-weight:900;display:grid;box-shadow:0 6px 20px #e8b14b30,inset 0 0 0 3px #6c37133b}.tgdc-brand b,.tgdc-brand small{display:block}.tgdc-brand b{color:#fff8de;letter-spacing:.08em;font-size:16px}.tgdc-brand small{color:#77859b;letter-spacing:.17em;margin-top:2px;font-size:7px}.tgdc-profile-button{color:#ffeab2;cursor:pointer;background:#1b2738;border:1px solid #f4c86a4d;border-radius:50%;place-items:center;width:42px;height:42px;padding:0;font-weight:900;display:grid;position:relative}.tgdc-profile-button>span{background:linear-gradient(145deg,#334861,#172333);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.tgdc-profile-button i{background:#748196;border:2px solid #09111e;border-radius:50%;width:10px;height:10px;position:absolute;bottom:2px;right:1px}.tgdc-profile-button i.online{background:#39d98a}.tgdc-error{color:#ffd7d6;background:#75212773;border:1px solid #f25f5c7a;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin:10px 0;padding:10px 12px;font-size:12px;display:flex}.tgdc-error button{color:inherit;background:0 0;border:0;font-size:20px}.tgdc-welcome{background:radial-gradient(circle at 79% 43%,#f25f5c38,#0000 32%),linear-gradient(145deg,#1b2638,#0e1726);border:1px solid #f4c86a2b;border-radius:25px;min-height:232px;margin-top:17px;padding:26px 46% 24px 22px;position:relative;overflow:hidden;box-shadow:0 18px 50px #00000047}.tgdc-welcome:after{content:"";opacity:.18;pointer-events:none;background-image:linear-gradient(30deg,#0000 47%,#ffffff24 48% 49%,#0000 50%);background-size:28px 28px;position:absolute;top:0;bottom:0;left:0;right:0}.tgdc-welcome>div:first-child{z-index:2;position:relative}.tgdc-welcome small{color:#a8b3c3;font-size:12px}.tgdc-welcome h1{color:#fff9e5;letter-spacing:-.04em;margin:13px 0 10px;font-family:Noto Serif TC,serif;font-size:clamp(31px,8vw,42px);line-height:1.14}.tgdc-welcome p{color:#e6bd68;white-space:nowrap;margin:0;font-size:11px}.tgdc-hero-piece{z-index:1;filter:drop-shadow(0 18px 17px #00000070);width:55%;max-width:230px;position:absolute;top:9px;right:-12px;transform:rotate(4deg)}.tgdc-hero-piece img{width:100%;height:auto;display:block}.tgdc-live{z-index:3;color:#bfc9d7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#070d17bd;border:1px solid #ffffff1c;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:9px;display:flex;position:absolute;bottom:15px;right:16px}.tgdc-live i{background:#39d98a;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #39d98a}.tgdc-resume{color:#eefbf6;cursor:pointer;background:linear-gradient(100deg,#236c4e94,#15262fe6);border:1px solid #39d98a47;border-radius:16px;justify-content:space-between;align-items:center;width:100%;min-height:62px;margin-top:12px;padding:10px 14px;display:flex}.tgdc-resume span{text-align:left}.tgdc-resume small,.tgdc-resume b{display:block}.tgdc-resume small{color:#79dea9;font-size:9px}.tgdc-resume b{margin-top:3px;font-size:12px}.tgdc-resume strong{color:#92e7b8;font-size:12px}.tgdc-actions{gap:9px;margin-top:13px;display:grid}.tgdc-actions>button{color:#f6f8fb;background:var(--tgdc-card);text-align:left;cursor:pointer;border:1px solid #ffffff17;border-radius:17px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;width:100%;min-height:73px;padding:11px 15px;display:grid}.tgdc-actions>button:disabled{opacity:.55}.tgdc-actions>button.tgdc-quick{background:linear-gradient(110deg,#8530329e,#182334 72%);border-color:#f25f5c59}.tgdc-action-icon{color:#fff1d1;background:linear-gradient(145deg,#dd564f,#8d2d35);border-radius:13px;place-items:center;width:45px;height:45px;font-size:22px;display:grid;box-shadow:0 7px 20px #cc484640}.tgdc-action-icon.friend{color:#f9dda1;box-shadow:none;background:linear-gradient(145deg,#715b31,#3f321c)}.tgdc-actions b,.tgdc-actions small{display:block}.tgdc-actions b{font-size:14px}.tgdc-actions small{color:#8e9aac;margin-top:5px;font-size:10px}.tgdc-actions strong{color:#69778c;font-size:23px;font-weight:400}.tgdc-join-card{background:#141d2cb8;border:1px solid #ffffff14;border-radius:17px;margin-top:13px;padding:15px}.tgdc-join-card>div:first-child{margin-bottom:11px}.tgdc-join-card small,.tgdc-join-card b{display:block}.tgdc-join-card small{color:#7f8da2;font-size:9px}.tgdc-join-card b{margin-top:3px;font-size:12px}.tgdc-join-card>div:last-child{grid-template-columns:1fr auto;gap:8px;display:grid}.tgdc-join-card input{color:#fff1c9;letter-spacing:.22em;text-transform:uppercase;background:#0b1422;border-color:#f4c86a38;min-height:43px;font-size:15px;font-weight:900}.tgdc-join-card button,.tgdc-empty button{color:#311b03;cursor:pointer;background:linear-gradient(145deg,#ffe49c,#dca544);border:1px solid #e2b354;border-radius:11px;min-width:72px;font-weight:900}.tgdc-join-card button:disabled{opacity:.4}.tgdc-dashboard{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px;display:grid}.tgdc-dashboard button{color:#dfe5ee;cursor:pointer;background:#111b2a;border:1px solid #ffffff14;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:90px;padding:8px 5px;display:flex}.tgdc-dashboard span{color:#d9aa51;font-size:16px}.tgdc-dashboard b{color:#fff4d7;margin-top:6px;font-size:13px}.tgdc-dashboard small{color:#738197;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:8px;overflow:hidden}.tgdc-page{margin-top:22px}.tgdc-page-heading{justify-content:space-between;align-items:end;gap:12px;margin-bottom:23px;display:flex}.tgdc-page-heading small{color:#c99f4e;letter-spacing:.18em;font-size:8px;font-weight:850}.tgdc-page-heading h1{color:#fff7df;margin:4px 0 0;font-size:27px}.tgdc-page-heading>button{color:#ffe6a8;cursor:pointer;background:#202b3c;border:1px solid #f4c86a6b;border-radius:999px;min-height:36px;padding:0 13px;font-size:10px;font-weight:850}.tgdc-page>h2{color:#9eabbc;letter-spacing:.08em;margin:20px 0 9px;font-size:10px}.tgdc-table-list,.tgdc-record-list{gap:8px;display:grid}.tgdc-table-list article{background:#131d2c;border:1px solid #ffffff14;border-radius:15px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:67px;padding:9px 10px;display:grid}.tgdc-table-piece{color:#34200c;background:#eacb83;border:2px solid #c9a75c;border-radius:50%;place-items:center;width:39px;height:39px;font-family:Noto Serif TC,serif;font-weight:900;display:grid}.tgdc-table-piece.red{color:#862f2d}.tgdc-table-list b,.tgdc-table-list small{display:block}.tgdc-table-list b{font-size:11px}.tgdc-table-list small{color:#7c899b;margin-top:4px;font-size:9px}.tgdc-table-list em{color:#a9dcbc;background:#39d98a1a;border-radius:999px;padding:4px 7px;font-size:8px;font-style:normal}.tgdc-table-list em.waiting{color:#e5bd68;background:#e5bd681a}.tgdc-table-list article>button{color:#ffe9b2;cursor:pointer;background:#283447;border:1px solid #f4c86a66;border-radius:10px;min-height:34px;padding:0 10px;font-size:9px;font-weight:800}.tgdc-empty{color:#718096;text-align:center;border:1px dashed #ffffff21;border-radius:17px;flex-direction:column;justify-content:center;align-items:center;min-height:145px;padding:20px;font-size:10px;display:flex}.tgdc-empty b,.tgdc-empty span{display:block}.tgdc-empty b{color:#dfe5ee;margin-bottom:7px;font-size:12px}.tgdc-empty button{min-height:36px;margin-top:13px;padding:0 13px}.tgdc-record-summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tgdc-record-summary div{background:#131d2c;border:1px solid #ffffff14;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;min-height:82px;display:flex}.tgdc-record-summary b{color:#f7ce75;font-size:23px}.tgdc-record-summary small{color:#78869a;margin-top:5px;font-size:8px}.tgdc-local-note{color:#708095;margin:13px 2px;font-size:9px;line-height:1.6}.tgdc-record-list article{background:#131d2c;border:1px solid #ffffff12;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:62px;padding:9px 12px;display:grid}.tgdc-record-list article>strong{color:#d2d9e3;background:#344154;border-radius:50%;place-items:center;width:37px;height:37px;display:grid}.tgdc-record-list article.win>strong{color:#c9f4d8;background:#245d42}.tgdc-record-list article.loss>strong{color:#ffd6d5;background:#68343a}.tgdc-record-list article b,.tgdc-record-list article small{display:block}.tgdc-record-list article b{font-size:11px}.tgdc-record-list article small{color:#77859a;margin-top:4px;font-size:8px}.tgdc-record-list article>span{color:#a7b1c0;font-size:9px}.tgdc-profile-card{background:linear-gradient(135deg,#1c293b,#111b29);border:1px solid #f4c86a2e;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:17px;display:grid}.tgdc-profile-card>span{color:#3f260b;background:#f1d187;border:2px solid #d6ad59;border-radius:50%;place-items:center;width:54px;height:54px;font-size:20px;font-weight:900;display:grid}.tgdc-profile-card b,.tgdc-profile-card small{display:block}.tgdc-profile-card b{font-size:15px}.tgdc-profile-card small{color:#8d9aab;margin-top:5px;font-size:9px}.tgdc-profile-card i{color:#8ce4b1;background:#39d98a1a;border-radius:999px;padding:4px 7px;font-size:8px;font-style:normal}.tgdc-settings{background:#131d2c;border:1px solid #ffffff14;border-radius:17px;margin-top:14px;display:grid;overflow:hidden}.tgdc-settings label,.tgdc-settings>button{color:#eef2f7;text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:11px 15px;display:flex}.tgdc-settings>:last-child{border-bottom:0}.tgdc-settings b,.tgdc-settings small{display:block}.tgdc-settings b{font-size:11px}.tgdc-settings small{color:#79879a;margin-top:4px;font-size:8px}.tgdc-settings input{-webkit-appearance:none;appearance:none;background:#354154;border:0;border-radius:999px;width:42px;min-height:24px;padding:3px;transition:background .15s}.tgdc-settings input:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;display:block}.tgdc-settings input:checked{background:#d59f3c}.tgdc-settings input:checked:before{transform:translate(18px)}.tgdc-settings>button{cursor:pointer}.tgdc-settings>button strong{color:#76849a;font-size:20px;font-weight:400}.tgdc-security{background:#111b2a9e;border:1px solid #ffffff0f;border-radius:15px;margin-top:14px;padding:14px}.tgdc-security b{color:#b5bfcd;font-size:10px}.tgdc-security p{color:#6f7d91;margin:7px 0 0;font-size:8px;line-height:1.65}.tgdc-rules article{background:#131d2c;border:1px solid #ffffff14;border-radius:15px;grid-template-columns:auto 1fr;gap:13px;margin-bottom:9px;padding:14px;display:grid}.tgdc-rules article>span{color:#f3cb78;background:#263143;border:1px solid #f4c86a66;border-radius:50%;place-items:center;width:31px;height:31px;font-size:11px;font-weight:900;display:grid}.tgdc-rules article b{color:#f3f5f8;font-size:12px}.tgdc-rules article p{color:#8996a8;margin:6px 0 0;font-size:9px;line-height:1.65}.tgdc-rank{background:#1a2535;border:1px solid #f4c86a30;border-radius:17px;margin-top:15px;padding:15px}.tgdc-rank>small{color:#d3b36d;font-size:9px}.tgdc-rank>div{justify-content:space-between;gap:5px;margin-top:13px;display:flex}.tgdc-rank span{color:#34200c;background:#e7c77e;border:2px solid #bc9b57;border-radius:50%;place-items:center;width:36px;height:36px;font-family:Noto Serif TC,serif;font-size:12px;font-weight:900;display:grid}.tgdc-rank span.red{color:#922e2c}.tgdc-rank p{color:#758397;text-align:center;margin:12px 0 0;font-size:8px}.tgdc-bottom-nav{z-index:20;padding:6px max(8px, var(--app-safe-right)) calc(6px + max(var(--app-safe-bottom), env(safe-area-inset-bottom))) max(8px, var(--app-safe-left));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#08101cf5;border-top:1px solid #f4c86a26;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 30px #0000004d}.tgdc-bottom-nav button{color:#647389;cursor:pointer;background:0 0;border:0;border-radius:11px;min-height:53px;position:relative}.tgdc-bottom-nav button>span,.tgdc-bottom-nav button>b{display:block}.tgdc-bottom-nav button>span{margin-bottom:3px;font-size:18px}.tgdc-bottom-nav button>b{font-size:9px}.tgdc-bottom-nav button.active{color:#f1c96f;background:#f4c86a12}.tgdc-bottom-nav i{color:#fff;background:#e65454;border:2px solid #09111e;border-radius:999px;min-width:15px;padding:1px 4px;font-size:7px;font-style:normal;position:absolute;top:3px;left:calc(50% + 7px)}.tgdc-game{background:radial-gradient(circle at 50% 0,#385b7e2e,#0000 30rem),#09111e}.tgdc-game .game-header{border-bottom-color:#f4c86a2e}@media (min-width:620px){.tgdc-bottom-nav{width:760px;max-width:100%;left:auto;right:50%;transform:translate(50%)}}@media (max-width:380px){.tg-darkchess{padding-right:max(12px, var(--app-safe-right));padding-left:max(12px, var(--app-safe-left))}.tgdc-welcome{min-height:218px;padding-left:18px}.tgdc-welcome h1{font-size:29px}.tgdc-hero-piece{right:-20px}.tgdc-dashboard small{font-size:7px}.tgdc-table-list article{grid-template-columns:auto minmax(0,1fr) auto}.tgdc-table-list article>button{grid-column:3}.tgdc-table-list em{display:none}}
