:root{color-scheme:dark;--ink: #f4efe4;--muted: #b7aa96;--night: #090d0c;--panel: rgba(18, 24, 22, .78);--line: rgba(228, 194, 122, .28);--gold: #e4c27a;--gold-deep: #8d6730;--felt: #0f6b45;--felt-deep: #084a30;--ivory: #f7f1e4;--red: #c4453c;--ok: #8ed39a;--danger: #d15b52;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(900px 420px at 8% -10%,rgba(228,194,122,.16),transparent 55%),radial-gradient(700px 380px at 100% 0%,rgba(15,107,69,.28),transparent 50%),linear-gradient(180deg,#121816,var(--night) 28%)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--gold);text-decoration:none}h1,h2,h3,.brand{font-family:Palatino,Iowan Old Style,Songti SC,serif;font-weight:600}p{color:var(--muted)}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;background:#090d0cc7;border-bottom:1px solid rgba(228,194,122,.16);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.site-announcement{margin:0 22px 16px;padding:10px 14px;border:1px solid rgba(228,194,122,.45);border-radius:12px;background:#4e371273;color:var(--gold);white-space:pre-wrap}.brand{font-size:30px;letter-spacing:.16em;color:var(--gold);white-space:nowrap}.self-seat{justify-self:center}.self-seat .seat{background:#08120e73}.top-actions,.row,.action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.who{display:flex;align-items:center;gap:8px}.avatar,.seat-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#f0d7a2,#8d6730);color:#24180a;font-weight:700}.points-chip,.link{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:13px}.link.online{color:var(--ok)}.link.reconnecting{color:var(--gold)}.link.offline{color:var(--danger)}.btn,.ghost,.danger{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid transparent}.btn{background:linear-gradient(180deg,#f0d7a2,var(--gold));color:#24180a;font-weight:700}.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.danger{background:transparent;color:#ffd0cb;border-color:#d15b52b3}.btn:disabled,.ghost:disabled,.danger:disabled{opacity:.45;cursor:not-allowed}label{display:grid;gap:6px;margin:12px 0;font-size:13px;color:var(--muted)}input,select,textarea{min-height:44px;border-radius:14px;border:1px solid rgba(244,239,228,.14);background:#00000047;padding:0 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold)}.check{display:flex;align-items:center;gap:8px}.check input{min-height:0;width:16px;height:16px}.banner{margin:12px 0;padding:10px 12px;border-radius:14px;background:#d15b5229;color:#ffd7d3}.auth-stage{width:min(1040px,calc(100% - 32px));margin:28px auto 40px;display:grid;grid-template-columns:1.1fr .9fr;min-height:620px;border-radius:32px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px #00000059}.auth-story{padding:48px;background:radial-gradient(300px 180px at 20% 20%,rgba(228,194,122,.2),transparent 70%),linear-gradient(160deg,#145c3d,#0b2a1d 70%);display:flex;flex-direction:column;justify-content:flex-end}.auth-story h1{font-size:64px;line-height:1;margin:8px 0}.auth-card{background:#121816;padding:40px 36px}.eyebrow{letter-spacing:.22em;font-size:12px;color:var(--gold)}.lobby{width:min(1120px,calc(100% - 32px));margin:22px auto 48px;display:grid;gap:18px}.hero,.panel,.poster,.room-card,.seat,.plaque{background:var(--panel);border:1px solid rgba(228,194,122,.16);border-radius:24px}.hero{display:flex;justify-content:space-between;gap:16px;align-items:end;padding:28px}.hero h1{font-size:52px;margin:0}.balance{text-align:right}.balance strong{display:block;font-size:36px;color:var(--gold)}.posters{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.poster{min-height:180px;text-align:left;padding:22px;color:var(--ink);position:relative;overflow:hidden}.poster.zjh{background:linear-gradient(145deg,#145c3df2,#0c1612eb)}.poster.ddz{background:linear-gradient(145deg,#5c2a24eb,#0c1612eb)}.poster.dn{background:linear-gradient(145deg,#203a70f0,#0c1612eb)}.poster.active{outline:2px solid var(--gold)}.poster strong{display:block;font-family:Palatino,Songti SC,serif;font-size:36px}.poster em{position:absolute;right:18px;bottom:8px;font-style:normal;font-size:72px;opacity:.16}.lobby-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.panel{padding:20px}.room-list{display:grid;gap:8px}.room-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;color:inherit}.room-card:hover{border-color:var(--gold)}.table-page{width:min(1240px,calc(100% - 20px));margin:12px auto 24px}.table-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px;padding:0 6px}.table-title{margin:4px 0;letter-spacing:.02em}.table-title span{color:var(--muted);font:500 14px/1.2 Segoe UI,sans-serif;letter-spacing:.12em}.table-head-actions{justify-content:flex-end}.table-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.table-arena{min-width:0;display:grid;gap:14px}.felt{min-height:640px;border-radius:180px;padding:28px 28px 18px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.08),transparent 26%),radial-gradient(circle at 50% 60%,var(--felt),var(--felt-deep) 72%);box-shadow:inset 0 0 0 14px #5c3a188c,inset 0 0 0 16px #e4c27a59,0 24px 50px #00000059;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto auto;gap:12px}.felt:before{content:"";position:absolute;inset:16px;border:1px solid rgba(244,239,228,.16);border-radius:inherit;pointer-events:none;z-index:-1}.felt:after{content:"娱乐积分 · 妖火牌室";position:absolute;right:48px;bottom:24px;color:#f4efe42e;font:600 10px/1 Segoe UI,sans-serif;letter-spacing:.18em;text-transform:uppercase;transform:rotate(-8deg);pointer-events:none}.felt-lights{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 16% 20%,rgba(228,194,122,.13),transparent 22%),radial-gradient(circle at 82% 78%,rgba(24,146,99,.16),transparent 24%);pointer-events:none}.opponents{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.seat{width:min(250px,100%);padding:12px;background:#06100c8c;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.seat:hover{transform:translateY(-2px)}.seat.turn{border-color:var(--gold);box-shadow:0 0 0 4px #e4c27a29,0 12px 26px #0000002e}.seat.turn .seat-avatar{box-shadow:0 0 0 3px #e4c27a47,0 0 22px #e4c27a61}.seat-top{display:flex;gap:8px;align-items:center}.seat-top strong{display:block;overflow-wrap:anywhere}.seat-top span,.meta{color:var(--muted);font-size:12px}.plaque{justify-self:center;align-self:center;width:min(420px,100%);text-align:center;padding:18px 20px;background:linear-gradient(180deg,#08120ed1,#070e0c9e);box-shadow:0 18px 44px #00000029,inset 0 1px #ffffff0f}.plaque b{color:var(--gold);font-size:28px}.plaque-topline,.table-metrics,.dock-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.phase-chip,.turn-callout{border-radius:999px;padding:5px 9px;font-size:11px;letter-spacing:.08em}.phase-chip{color:var(--gold);background:#e4c27a1f}.turn-callout{color:var(--muted);background:#ffffff0f}.turn-callout.is-yours{color:#172016;background:var(--gold);font-weight:800;box-shadow:0 0 0 4px #e4c27a24}.table-pot{margin:16px 0 10px}.table-pot b{display:block;font-size:34px;line-height:1}.table-pot span{display:block;margin-top:6px;color:var(--muted);font-size:12px}.table-metrics{justify-content:center;flex-wrap:wrap;color:var(--muted);font-size:12px}.last-play{margin-top:12px;color:var(--muted);font-size:12px}.last-play strong{color:var(--ink)}.bottom-cards{margin-top:12px}.bottom-cards>span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px}.bottom-cards .hand{min-height:0}.result-callout{margin-top:12px;padding:8px 10px;border:1px solid rgba(142,211,154,.3);border-radius:10px;color:var(--ok);background:#8ed39a14;font-size:12px}.hand{display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;gap:8px;min-height:120px;padding-bottom:8px}.hand.compact-hand{min-height:0;gap:4px;padding-bottom:0;justify-content:flex-start;flex-wrap:wrap}.hand.compact-hand .card.compact{width:36px;height:52px}.hand.compact-hand .card.compact .pip{font-size:14px}.tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.tag{font-size:11px;border-radius:999px;padding:2px 6px;background:#e4c27a24;color:var(--gold)}.card{width:74px;height:106px;border:0;border-radius:10px;position:relative;background:linear-gradient(180deg,#fffaf1,var(--ivory));color:#1d1a17;box-shadow:0 8px 16px #00000040;transition:transform .18s ease,box-shadow .18s ease;transform-origin:center bottom;padding:0}.card.selectable:not(.selected):hover{transform:translateY(-7px);box-shadow:0 15px 24px #00000047}.card.red{color:var(--red)}.card.compact{width:42px;height:60px}.card .corner{position:absolute;top:6px;left:7px;display:grid;line-height:1;font-size:14px}.card.compact .corner{font-size:10px;top:3px;left:4px}.card .corner i,.card .pip{font-style:normal}.card .pip{position:absolute;inset:0;display:grid;place-items:center;font-size:30px}.card.compact .pip{font-size:16px}.card .foot{inset:auto 7px 6px auto;transform:rotate(180deg)}.card.compact .foot{bottom:3px;right:4px}.card.joker{display:grid;place-items:center;writing-mode:vertical-rl;letter-spacing:.2em;background:linear-gradient(180deg,#fff8e8,#e7c98a);color:#6a3b12}.card.back{background:radial-gradient(circle at 50% 50%,rgba(228,194,122,.9) 0 6px,transparent 7px),repeating-linear-gradient(45deg,#7d1f2b 0 8px,#f3e2b8 8px 10px,#7d1f2b 10px 18px)}.card.selected{transform:translateY(-18px);box-shadow:0 16px #e4c27a40,0 12px 20px #0000004d}.fan{display:flex;align-items:center}.fan .card{margin-right:-18px}.fan em{margin-left:22px;font-style:normal;color:var(--gold)}.chat-panel{position:sticky;top:78px;background:#0c100fe6;border:1px solid rgba(228,194,122,.16);border-radius:24px;padding:14px;box-shadow:0 18px 42px #0000002e}.action-dock{padding:16px 20px;border:1px solid var(--line);border-radius:20px;background:#141f1b;box-shadow:0 12px 35px #0003}.dock-title{margin-bottom:10px;font-size:13px;color:var(--gold)}.action-row{gap:7px}.action-button{flex:1 1 112px;min-height:42px}.action-row select{flex:1 1 130px;min-width:0}.countdown{color:var(--gold);font-variant-numeric:tabular-nums}.countdown.urgent{color:#ff9c8e;font-weight:800;animation:pulse-alert 1s ease-in-out infinite}@keyframes pulse-alert{50%{opacity:.52}}.chat-log{height:280px;overflow:auto;display:grid;align-content:start;gap:8px}.bubble{background:#ffffff0a;border-radius:14px;padding:8px 10px}.bubble strong{display:block;font-size:12px;color:var(--gold)}.phrase{border-radius:999px}.modal{position:fixed;inset:0;background:#00000094;display:grid;place-items:center;padding:16px;z-index:8}.modal .panel{width:min(680px,100%);max-height:82vh;overflow:auto}.rules{display:grid;gap:8px}.rules>div{display:grid;grid-template-columns:148px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.profile{width:min(1080px,calc(100% - 28px));margin:22px auto 40px;display:grid;grid-template-columns:340px 1fr;gap:14px}.record{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.registration-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.signup-bonus{color:var(--gold);font-size:13px;padding:12px;background:#e4c27a0c;border-radius:12px}.copy-notice{font-size:13px;color:var(--gold)}.table-monogram{font-size:50px;color:#e4c27a55}.waiting-plaque h3{margin:8px 0;font-size:23px}.waiting-plaque p{font-variant-numeric:tabular-nums}.waiting-plaque>span:last-child{font-size:12px;color:var(--muted)}.played-cards{display:flex;justify-content:center;margin-top:10px;padding-right:15px}.played-cards .card{flex-shrink:0;margin-right:-15px}.player-hand{--card-width: 70px;padding-top:22px;padding-bottom:4px;margin:0 auto}.player-hand.long-hand{display:grid;grid-template-columns:repeat(var(--card-count),minmax(0,1fr));width:min(100%,calc(var(--card-count) * var(--card-width)));gap:0;padding-right:var(--card-width);min-height:140px}.player-hand.long-hand .card{width:var(--card-width)}.player-hand .card:focus-visible{outline:3px solid #ffdc87;outline-offset:3px;transform:translateY(-12px);z-index:1}.selection-hint{display:flex;align-items:center;justify-content:center;gap:16px;color:#dce9df;font-size:12px}.text-button{color:var(--gold);border:0;background:transparent;padding:8px;font-size:12px}.text-button:disabled{opacity:.4;cursor:default}.result-callout{display:grid;gap:5px}.result-callout>span{display:flex;justify-content:space-between;gap:12px}.result-callout b{font-size:16px;font-variant-numeric:tabular-nums}.result-callout .positive{color:var(--ok)}.result-callout .negative{color:#ffa49b}.chat-compose{margin:12px 0;flex-wrap:nowrap}.chat-compose input{min-width:0;width:100%;font-size:12px}.bubble{overflow-wrap:anywhere}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.btn,.ghost,.danger,.poster,.room-card{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.btn:not(:disabled):hover{background:#ffdda1;box-shadow:0 4px 18px #e4c27a22}.ghost:not(:disabled):hover{background:#ffffff09;border-color:var(--gold)}.poster{padding-bottom:38px}.poster p{max-width:85%;line-height:1.7}.poster.active:after{content:"当前玩法";position:absolute;bottom:15px;font-size:11px;letter-spacing:.1em;color:var(--gold)}@media(max-width:900px){.auth-stage,.posters,.lobby-grid,.table-layout,.profile{grid-template-columns:1fr}.auth-story{min-height:220px;padding:28px}.auth-story h1,.hero h1{font-size:40px}.felt{border-radius:36px;min-height:0;padding:16px}.card{width:62px;height:90px}.hand:not(.compact-hand) .card{width:52px;height:76px}.chat-log{height:160px}.chat-panel{position:static}.table-head{align-items:flex-start;flex-wrap:wrap}.table-head-actions{width:100%;justify-content:flex-start}.topbar{padding:12px;flex-wrap:wrap}.top-actions{width:100%;justify-content:flex-start}.who span:last-child{display:none}}@media(max-width:600px){.table-page{width:calc(100% - 16px)}.brand{font-size:24px}.felt{padding:20px 14px;border-radius:30px;box-shadow:inset 0 0 0 5px #493e27,inset 0 0 0 6px #e4c27a66,0 16px 36px #0004;gap:14px}.felt:before{inset:9px}.opponents{gap:8px}.opponents .seat{flex:1 1 120px;max-width:48%;padding:8px;border-radius:14px}.opponents .seat-top strong{font-size:12px}.seat-avatar{width:30px;height:30px;flex-shrink:0}.seat-top>div{min-width:0}.plaque{padding:14px;border-radius:16px}.player-hand{--card-width: 48px}.player-hand.long-hand .card{width:var(--card-width)}.player-hand.long-hand{min-height:110px}.action-dock{position:sticky;bottom:8px;z-index:3;padding:12px;border-radius:16px}.action-button{flex-basis:90px;padding:0 10px;font-size:13px}.hero{padding:22px}.hero h1{font-size:30px}.balance strong{font-size:26px}.auth-card{padding:24px}.rules>div{grid-template-columns:110px minmax(0,1fr)}.played-cards{max-width:100%;overflow:auto;justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.seat,.card,.btn,.ghost,.danger,.poster,.room-card{transition:none}.countdown.urgent{animation:none}}@keyframes deal-in{0%{opacity:.2;translate:0 -20px;rotate:-5deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes table-drop{0%{opacity:0;translate:0 12px;scale:.96}to{opacity:1;translate:0 0;scale:1}}@keyframes result-in{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}.dealt-card{animation:deal-in .26s cubic-bezier(.2,.8,.2,1) var(--deal-delay) backwards}.last-play{animation:table-drop .22s ease-out}.result-callout{animation:result-in .32s ease-out}.phase-chip,.turn-callout{transition:color .18s ease,background-color .18s ease}.seat{transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.poster{transition:translate .18s ease,border-color .18s ease}@media(hover:hover){.poster:hover{translate:0 -3px}}.btn:active:not(:disabled),.action-button:active:not(:disabled){transform:scale(.97)}@media(prefers-reduced-motion:reduce){.dealt-card,.last-play,.result-callout{animation:none}.phase-chip,.turn-callout,.poster{transition:none}.poster:hover,.btn:active:not(:disabled),.action-button:active:not(:disabled){translate:none;transform:none}}@media(min-width:901px){.card{width:92px;height:132px;border-radius:12px}.card .corner{font-size:19px;top:8px;left:9px}.card .pip{font-size:40px}.card .foot{inset:auto 9px 8px auto}.player-hand{--card-width: 92px}.player-hand.long-hand{min-height:162px}.hand.compact-hand .card.compact,.card.compact{width:46px;height:66px}.card.compact .corner{font-size:12px;top:4px;left:5px}.card.compact .foot{inset:auto 5px 4px auto}.hand.compact-hand .card.compact .pip,.card.compact .pip{font-size:20px}}
