:root{--rpx:calc(min(100vw,600px) / 750)}*{box-sizing:border-box}body{margin:0;background:#f5efdb;color:#302d25;font-family:system-ui,-apple-system,'PingFang SC',sans-serif}#app{max-width:600px;margin:auto;min-height:100dvh}button,input{font:inherit}button{cursor:pointer;border:0;padding:0 14px;line-height:1.4}button:disabled{cursor:default}img{max-width:100%;object-fit:cover}input{min-width:0}button::after{display:none}span{white-space:pre-wrap}.web-scroll-x{overflow-x:auto;overflow-y:hidden}.web-scroll-y{overflow-y:auto}.web-toast{position:fixed;bottom:22%;left:50%;transform:translateX(-50%);background:#403429;color:#fff;padding:14px 20px;border-radius:12px;z-index:5000;max-width:85%;pointer-events:none}.web-profile-shortcut{position:fixed;right:12px;top:12px;z-index:50;background:#ece1c9;color:#704329;border:1px solid #c6ad87;border-radius:20px;padding:8px 14px}.web-profile-sheet{position:fixed;inset:0;background:#211a1680;z-index:4000;display:grid;place-items:center}.web-profile-card{background:#faf4e5;border:1px solid #c8ad80;border-radius:18px;width:min(90vw,400px);padding:22px}.web-profile-card input{width:100%;padding:12px;margin:14px 0;border:1px solid #c8ad80;background:#fff9ee;border-radius:8px}.web-avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.web-avatar-grid img{width:60px;height:60px;border-radius:50%;border:3px solid transparent;cursor:pointer}.web-avatar-grid img.selected{border-color:#a86542}.web-profile-actions{display:flex;gap:12px;margin-top:18px}.web-profile-actions button{padding:12px;background:#a86542;color:white;border-radius:8px;flex:1}


body {
  min-height: 100vh;
  background: #f5f4ed;
  color: #141413;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;
}

.page {
  min-height: 100vh;
  box-sizing: border-box;
  padding: calc(var(--rpx) * 34) calc(var(--rpx) * 30) calc(var(--rpx) * 48);
  background:
    radial-gradient(circle at 88% 6%, rgba(201, 100, 66, 0.12), transparent calc(var(--rpx) * 190)),
    linear-gradient(180deg, rgba(232, 230, 220, 0.68), rgba(245, 244, 237, 0) calc(var(--rpx) * 280)),
    repeating-linear-gradient(90deg, rgba(232, 230, 220, 0.58) 0, rgba(232, 230, 220, 0.58) calc(var(--rpx) * 1), transparent calc(var(--rpx) * 1), transparent calc(var(--rpx) * 36)),
    #f5f4ed;
}

.title {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 48);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.08;
  margin: calc(var(--rpx) * 8) 0 calc(var(--rpx) * 10);
}

.subtitle {
  color: #5e5d59;
  font-size: calc(var(--rpx) * 26);
  line-height: 1.5;
}

.panel {
  background: rgba(250, 249, 245, 0.94);
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 16);
  box-shadow: 0 0 0 calc(var(--rpx) * 2) rgba(240, 238, 230, 0.7);
  box-sizing: border-box;
  margin-bottom: calc(var(--rpx) * 24);
  padding: calc(var(--rpx) * 26);
}

.row {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: calc(var(--rpx) * 20);
}

.label {
  color: #5e5d59;
  font-size: calc(var(--rpx) * 23);
  font-weight: 700;
}

.value {
  color: #141413;
  font-size: calc(var(--rpx) * 34);
  font-weight: 900;
}

.input {
  background: linear-gradient(180deg, #faf9f5, rgba(232, 230, 220, 0.52));
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 14);
  box-sizing: border-box;
  color: #141413;
  height: calc(var(--rpx) * 86);
  margin-top: calc(var(--rpx) * 12);
  padding: 0 calc(var(--rpx) * 22);
}

.button {
  border: calc(var(--rpx) * 2) solid rgba(61, 61, 58, 0.2);
  border-radius: calc(var(--rpx) * 16);
  box-shadow: inset 0 0 0 calc(var(--rpx) * 2) rgba(250, 249, 245, 0.36);
  font-weight: 800;
  margin: 0;
}

.button.primary {
  background: #c96442;
  color: #faf9f5;
}

.button.secondary {
  background: #e8e6dc;
  color: #3d3d3a;
}

.button.danger {
  background: #b53333;
  color: #faf9f5;
}

.button.ghost {
  background: rgba(232, 230, 220, 0.72);
  color: #3d3d3a;
}

.stack {
  display: flex;
  flex-direction: column;
  gap: calc(var(--rpx) * 16);
}

.card {
  background: linear-gradient(135deg, #faf9f5 0%, #e8e6dc 100%);
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 16);
  box-shadow: 0 calc(var(--rpx) * 18) calc(var(--rpx) * 42) rgba(46, 25, 14, 0.12);
  padding: calc(var(--rpx) * 26);
}

.card-title {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 42);
  font-weight: 500;
}

.card-note {
  color: #5e5d59;
  font-size: calc(var(--rpx) * 24);
  margin-top: calc(var(--rpx) * 8);
}

.list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--rpx) * 12);
}

.list-item {
  align-items: center;
  background: #faf9f5;
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 16);
  display: flex;
  justify-content: space-between;
  padding: calc(var(--rpx) * 18);
}

.muted {
  color: #87867f;
}

.td-mask{position:fixed;inset:0;z-index:1000;background:#211a1499;display:flex;align-items:center;justify-content:center;padding:calc(var(--rpx) * 32);box-sizing:border-box}.td-dialog{width:100%;max-width:calc(var(--rpx) * 650);max-height:80vh;padding:calc(var(--rpx) * 28);background:#f4e8cf;color:#4e3a27;border:calc(var(--rpx) * 2) solid #c9ad7c;border-radius:calc(var(--rpx) * 18);box-sizing:border-box;box-shadow:0 calc(var(--rpx) * 20) calc(var(--rpx) * 80) #21150855}.td-header{position:relative;padding-right:calc(var(--rpx) * 60);min-height:calc(var(--rpx) * 56);font-size:calc(var(--rpx) * 32);font-weight:800;line-height:1.4;word-break:break-all}.td-mask .td-dialog button{width:auto;margin:0;padding:calc(var(--rpx) * 16) calc(var(--rpx) * 12);min-height:calc(var(--rpx) * 76);line-height:1.4;font-size:calc(var(--rpx) * 28);border-radius:calc(var(--rpx) * 10);box-sizing:border-box}.td-mask .td-dialog button::after{border:0}.td-mask .td-header button.td-close{position:absolute;right:calc(var(--rpx) * -8);top:calc(var(--rpx) * -12);width:calc(var(--rpx) * 60);height:calc(var(--rpx) * 60);min-height:calc(var(--rpx) * 60);padding:0;line-height:calc(var(--rpx) * 60);font-size:calc(var(--rpx) * 38);background:transparent;color:#846547}.td-content{max-height:48vh;margin:calc(var(--rpx) * 16) 0 calc(var(--rpx) * 28);font-size:calc(var(--rpx) * 27);line-height:1.65;white-space:pre-wrap;word-break:break-word}.td-input{width:100%;height:calc(var(--rpx) * 84);padding:calc(var(--rpx) * 12) calc(var(--rpx) * 16);box-sizing:border-box;background:#fff9ed;border:calc(var(--rpx) * 1) solid #c8ad80;border-radius:calc(var(--rpx) * 8);color:#4e3a27}.td-actions{display:flex;gap:calc(var(--rpx) * 16)}.td-mask .td-actions button{flex:1;min-width:0}.td-mask .td-actions .td-confirm{background:#995b35;color:#fff7e7;font-weight:700}.td-mask .td-actions .td-cancel{background:#e1d3b8;color:#6d5036}



.home-page{position:relative;box-sizing:border-box;min-height:100vh;padding:100px calc(var(--rpx) * 30) max(calc(var(--rpx) * 36),env(safe-area-inset-bottom));overflow:hidden;background:#f4efdf;color:#493a2b}
.paper-art{position:absolute;inset:0;width:100%;height:100%;opacity:.34;z-index:0;pointer-events:none}
.home-page::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(90deg,#cbbd9b0c 0,#cbbd9b0c calc(var(--rpx) * 1),transparent calc(var(--rpx) * 1),transparent calc(var(--rpx) * 40))}
.home-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:calc(var(--rpx) * 22);max-width:calc(var(--rpx) * 900);margin:0 auto}
.panel{position:relative;box-sizing:border-box;padding:calc(var(--rpx) * 28) calc(var(--rpx) * 30) calc(var(--rpx) * 30);background:linear-gradient(145deg,#fffdf6ed,#f8f1e1ed);border:calc(var(--rpx) * 1) solid #d7c6a7;border-radius:calc(var(--rpx) * 20);box-shadow:0 calc(var(--rpx) * 7) calc(var(--rpx) * 24) #76522c10,0 calc(var(--rpx) * 1) calc(var(--rpx) * 2) #ffffff}
.section-title{margin-bottom:calc(var(--rpx) * 24);padding:calc(var(--rpx) * 4) 0 0;text-align:center;font-size:calc(var(--rpx) * 32);font-weight:700;line-height:1.4;color:#5b432f}
.game-type-grid,.tool-grid{display:grid;gap:calc(var(--rpx) * 12)}
.game-type-grid{margin-bottom:calc(var(--rpx) * 24)}
.game-type-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--rpx) * 12)}
.game-type-card{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:0;min-height:calc(var(--rpx) * 92);position:relative;margin:0;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 14);border:calc(var(--rpx) * 1) solid #ded0b6;border-radius:calc(var(--rpx) * 10);background:linear-gradient(145deg,#fffaf0,#eee2cc);color:#624b36;box-shadow:inset 0 0 0 calc(var(--rpx) * 4) #fff9ef80,0 calc(var(--rpx) * 2) calc(var(--rpx) * 3) #72533408;text-align:center;line-height:1.4;overflow:hidden}
.game-type-card.selected{background:linear-gradient(135deg,#79563c,#4d3527);border-color:#694d36;color:#fff4df;box-shadow:inset 0 0 0 calc(var(--rpx) * 4) #d2b18330,0 calc(var(--rpx) * 4) calc(var(--rpx) * 10) #5c3e2428}
.game-type-card.disabled{opacity:.46}
.game-type-name{max-width:100%;font-size:calc(var(--rpx) * 27);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.game-type-variant{margin-top:calc(var(--rpx) * 3);font-size:calc(var(--rpx) * 21);line-height:1.3;opacity:.85}
.home-page .home-button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;height:calc(var(--rpx) * 86);padding:0 calc(var(--rpx) * 20);border-radius:calc(var(--rpx) * 13);font-size:calc(var(--rpx) * 28);font-weight:800;line-height:1.4;text-align:center}
.home-page .create-button{width:100%;margin:0;border:calc(var(--rpx) * 1) solid #ad6040;background:linear-gradient(145deg,#cd8058,#ad5739);color:#fff8e8;box-shadow:inset 0 0 0 calc(var(--rpx) * 4) #f7caa844,0 calc(var(--rpx) * 4) calc(var(--rpx) * 8) #9b54332a}
.home-page .join-button{width:calc(var(--rpx) * 340);max-width:100%;margin:calc(var(--rpx) * 8) auto 0;border:calc(var(--rpx) * 1) solid #c6b491;background:linear-gradient(145deg,#fbf3e3,#e5d7be);color:#674b33;box-shadow:inset 0 0 0 calc(var(--rpx) * 4) #fff9ed80,0 calc(var(--rpx) * 3) calc(var(--rpx) * 8) #76523112}
.home-button::after,.tool-card::after{border:none}
.home-button[disabled]{opacity:.55}
.button-main{text-align:center}
.tool-card[disabled]{background:#f3ecdc;color:#624b36;opacity:.46}
.home-emblem{height:calc(var(--rpx) * 70);display:flex;align-items:center;justify-content:center;gap:calc(var(--rpx) * 30);pointer-events:none;margin-bottom:calc(var(--rpx) * 2)}
.emblem-rule{height:calc(var(--rpx) * 1);width:calc(var(--rpx) * 110);background:linear-gradient(90deg,transparent,#b97755aa);position:relative}.emblem-rule:last-child{transform:rotate(180deg)}.emblem-rule::after{content:'';position:absolute;right:calc(var(--rpx) * -5);top:calc(var(--rpx) * -4);width:calc(var(--rpx) * 8);height:calc(var(--rpx) * 8);border:calc(var(--rpx) * 1) solid #b97755;transform:rotate(45deg);background:#f3e8d0}
.emblem-fan{position:relative;width:calc(var(--rpx) * 110);height:calc(var(--rpx) * 70)}.emblem-card{position:absolute;bottom:0;left:calc(var(--rpx) * 29);width:calc(var(--rpx) * 46);height:calc(var(--rpx) * 62);display:flex;align-items:center;justify-content:center;border:calc(var(--rpx) * 1) solid #b99d6e;border-radius:calc(var(--rpx) * 5);background:linear-gradient(150deg,#fff8e7,#ecdfbd);box-shadow:inset 0 0 0 calc(var(--rpx) * 3) #fffaf066,0 calc(var(--rpx) * 3) calc(var(--rpx) * 5) #73543718;font-size:calc(var(--rpx) * 29);color:#624e36}.card-left{transform:translateX(calc(var(--rpx) * -24)) rotate(-20deg);color:#927748}.card-right{transform:translateX(calc(var(--rpx) * 24)) rotate(20deg);color:#b46b4c}.card-front{transform:translateY(calc(var(--rpx) * -5));color:#624e36}
.panel::after{content:'';position:absolute;inset:calc(var(--rpx) * 9);border:calc(var(--rpx) * 1) solid #d7c5a24d;border-radius:calc(var(--rpx) * 13);pointer-events:none}
.panel-ribbon{height:calc(var(--rpx) * 8);margin:0 0 calc(var(--rpx) * 17);background:repeating-linear-gradient(90deg,#bd775880 0,#bd775880 calc(var(--rpx) * 13),transparent calc(var(--rpx) * 13),transparent calc(var(--rpx) * 23));border-top:calc(var(--rpx) * 1) solid #cf94724d;border-bottom:calc(var(--rpx) * 1) solid #cf94724d;opacity:.85}
.section-title{display:flex;align-items:center;justify-content:center;gap:calc(var(--rpx) * 22);font-family:Georgia,'Times New Roman',serif;letter-spacing:calc(var(--rpx) * 2)}
.section-title::before,.section-title::after{content:'';height:calc(var(--rpx) * 1);width:calc(var(--rpx) * 45);background:#bd9d724d}
.game-type-card::before{content:'';position:absolute;top:calc(var(--rpx) * 7);left:calc(var(--rpx) * 7);width:calc(var(--rpx) * 7);height:calc(var(--rpx) * 7);border-top:calc(var(--rpx) * 1) solid #b9966260;border-left:calc(var(--rpx) * 1) solid #b9966260;pointer-events:none}
.game-type-card.selected::before{border-color:#e7c790aa}.game-type-card.selected::after{content:'';position:absolute;right:calc(var(--rpx) * 9);bottom:calc(var(--rpx) * 9);width:calc(var(--rpx) * 7);height:calc(var(--rpx) * 7);background:#dec491;transform:rotate(45deg);border:0;pointer-events:none}
.home-page .create-button{position:relative}.home-page .create-button::before{content:'◆';position:absolute;left:calc(var(--rpx) * 24);font-size:calc(var(--rpx) * 12);color:#ffe5c866}.home-page .create-button::after{content:'◆';position:absolute;right:calc(var(--rpx) * 24);left:auto;top:auto;bottom:auto;width:auto;height:auto;transform:none;font-size:calc(var(--rpx) * 12);color:#ffe5c866;border:0}
.tools-panel{background:linear-gradient(135deg,#fbf9f0ed,#f0e9d8ed)}.tools-panel .panel-ribbon{height:calc(var(--rpx) * 4);background:repeating-linear-gradient(90deg,#ae875455 0,#ae875455 calc(var(--rpx) * 5),transparent calc(var(--rpx) * 5),transparent calc(var(--rpx) * 15));border:0}

body{background:#f1e8d2}.profile-page{min-height:100vh;padding:calc(var(--rpx) * 80) calc(var(--rpx) * 32) calc(var(--rpx) * 48);box-sizing:border-box;background:linear-gradient(120deg,#eee4cd,#faf5e7)}.profile-card{max-width:calc(var(--rpx) * 620);margin:auto;background:#f7edd6;border:calc(var(--rpx) * 2) solid #d3bc92;border-radius:calc(var(--rpx) * 22);padding:calc(var(--rpx) * 38) calc(var(--rpx) * 30);box-shadow:0 calc(var(--rpx) * 10) calc(var(--rpx) * 35) #6c503417}.profile-title{font-size:calc(var(--rpx) * 42);font-weight:800;color:#51402d}.profile-page button{margin:0;line-height:1.5;font-size:calc(var(--rpx) * 29);border-radius:calc(var(--rpx) * 10)}.profile-page button::after{border:0}.profile-page .profile-avatar{display:flex;align-items:center;justify-content:center;width:calc(var(--rpx) * 160);height:calc(var(--rpx) * 160);margin:calc(var(--rpx) * 32) auto;background:#e8d7b7;color:#876642;border:calc(var(--rpx) * 2) solid #cbb18a;border-radius:50%;padding:0;font-size:calc(var(--rpx) * 23);overflow:hidden}.profile-avatar img{width:100%;height:100%}.profile-label{font-size:calc(var(--rpx) * 26);color:#796346;margin-bottom:calc(var(--rpx) * 12)}.profile-name{height:calc(var(--rpx) * 84);padding:calc(var(--rpx) * 14) calc(var(--rpx) * 18);background:#fffaf0;border:calc(var(--rpx) * 1) solid #cdb68c;border-radius:calc(var(--rpx) * 8);box-sizing:border-box;color:#51402d;font-size:calc(var(--rpx) * 30)}.profile-page .profile-confirm{width:100%;padding:calc(var(--rpx) * 20) calc(var(--rpx) * 12);margin-top:calc(var(--rpx) * 30);background:#995c35;color:#fff8e7;font-weight:700}.profile-page .profile-skip{margin-top:calc(var(--rpx) * 14);padding:calc(var(--rpx) * 18);background:#e6d8bd;color:#745638}.profile-page .profile-cancel{margin-top:calc(var(--rpx) * 18);background:transparent;color:#90734f;font-size:calc(var(--rpx) * 25)}.profile-page button[disabled]{opacity:.45}.profile-error{font-size:calc(var(--rpx) * 24);color:#a14f3d;line-height:1.5;margin-top:calc(var(--rpx) * 18)}
.profile-name{width:100%}.profile-page .profile-skip,.profile-page .profile-cancel{display:block;width:100%;box-sizing:border-box}

.rb-room { padding-top: calc(var(--rpx) * 150); color: #343b35; }
.rb-room .room-content { max-width: calc(var(--rpx) * 860); margin: 0 auto; }
.rb-room .room-hero { flex-direction: row; align-items: center; gap: calc(var(--rpx) * 12); }
.rb-room .room-hero .title { font-size: calc(var(--rpx) * 36); }
.rb-room .room-hero .subtitle { font-size: calc(var(--rpx) * 21); }
.rb-room .room-hero-actions { display: flex; flex-direction: column; gap: calc(var(--rpx) * 8); }
.rb-room .settings-button { min-width: calc(var(--rpx) * 86); padding: 0 calc(var(--rpx) * 14); }
.rb-eyebrow { font-size: calc(var(--rpx) * 21); letter-spacing: calc(var(--rpx) * 3); color: #88785b; }
.rb-order { margin-bottom: calc(var(--rpx) * 24); }
.rb-order-scroll { width: 100%; margin-top: calc(var(--rpx) * 14); }
.rb-seats { display: flex; gap: calc(var(--rpx) * 12); padding-bottom: calc(var(--rpx) * 8); }
.rb-seat { flex: 0 0 auto; display: flex; align-items: center; gap: calc(var(--rpx) * 9); border: calc(var(--rpx) * 1) solid #d9cfb9; padding: calc(var(--rpx) * 12) calc(var(--rpx) * 14); font-size: calc(var(--rpx) * 22); }
.rb-seat.current { border-color: #973d31; background: #eee1cc; }
.rb-seat-number { color: #973d31; font-family: Georgia, serif; }
.rb-seat-name { max-width: calc(var(--rpx) * 150); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-seat-status { color: #8b7e68; font-size: calc(var(--rpx) * 19); }
.rb-table { position: relative; text-align: center; border: calc(var(--rpx) * 1) solid #cbbd9f; padding: calc(var(--rpx) * 25) calc(var(--rpx) * 24) calc(var(--rpx) * 30); background: rgba(241, 231, 209, .65); box-shadow: inset 0 0 calc(var(--rpx) * 50) rgba(139, 111, 59, .06); }
.rb-stage-head, .rb-hand-heading { display: flex; align-items: center; justify-content: space-between; gap: calc(var(--rpx) * 12); }
.rb-phase { font-size: calc(var(--rpx) * 21); color: #8b3c31; }
.rb-questioner { font-size: calc(var(--rpx) * 36); font-weight: 600; margin: calc(var(--rpx) * 28) 0 calc(var(--rpx) * 16); overflow-wrap: anywhere; }
.rb-questioner span { font-size: calc(var(--rpx) * 22); color: #88785b; font-weight: 400; }
.rb-question { font-size: calc(var(--rpx) * 31); line-height: 1.5; margin: calc(var(--rpx) * 18) 0 calc(var(--rpx) * 28); overflow-wrap: anywhere; }
.rb-question-input { display: flex; align-items: center; border-bottom: calc(var(--rpx) * 1) solid #b4a78d; padding: calc(var(--rpx) * 20) 0; margin-top: calc(var(--rpx) * 14); text-align: left; }
.rb-question-input input { flex: 1; min-width: 0; font-size: calc(var(--rpx) * 26); }
.rb-question-input span { flex-shrink: 0; font-size: calc(var(--rpx) * 26); color: #973d31; padding-left: calc(var(--rpx) * 12); }
.rb-caption { font-size: calc(var(--rpx) * 23); line-height: 1.6; color: #85775e; }
.rb-heading { font-size: calc(var(--rpx) * 36); font-weight: 600; margin: calc(var(--rpx) * 26) 0 calc(var(--rpx) * 14); }
.rb-main { margin-top: calc(var(--rpx) * 26); width: 100%; }
.rb-room button[disabled] { opacity: .42; }
.rb-table-cards { display: flex; justify-content: center; flex-wrap: wrap; gap: calc(var(--rpx) * 10); padding: calc(var(--rpx) * 22) 0; perspective: calc(var(--rpx) * 900); }
.rb-table-card { width: calc(var(--rpx) * 80); height: calc(var(--rpx) * 114); }
.rb-table-card .tt-corner { font-size: calc(var(--rpx) * 12); }
.rb-table-card .tt-corner.top { top: calc(var(--rpx) * 5); left: calc(var(--rpx) * 5); }
.rb-table-card .tt-corner.bottom { bottom: calc(var(--rpx) * 5); right: calc(var(--rpx) * 5); }
.rb-table-card .tt-center-rank { font-size: calc(var(--rpx) * 31); }
.rb-table-card .tt-center-suit { font-size: calc(var(--rpx) * 26); }
.rb-empty-table { margin: calc(var(--rpx) * 35) auto; padding: calc(var(--rpx) * 35) calc(var(--rpx) * 10); width: calc(var(--rpx) * 200); border: calc(var(--rpx) * 1) dashed #c3b494; font-size: calc(var(--rpx) * 23); color: #9a8d71; }
.rb-progress { font-size: calc(var(--rpx) * 23); color: #85775e; margin: calc(var(--rpx) * 12) 0; }
.rb-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--rpx) * 12); margin-top: calc(var(--rpx) * 24); }
.rb-number { box-sizing: border-box; width: calc(var(--rpx) * 80); height: calc(var(--rpx) * 80); line-height: calc(var(--rpx) * 76); padding: 0; margin: 0; font-family: Georgia, serif; font-size: calc(var(--rpx) * 32); background: #f8f0df; color: #34433b; border: calc(var(--rpx) * 1) solid #c8b99b; border-radius: calc(var(--rpx) * 4); }
.rb-number.selected { background: #8b3c31; border-color: #8b3c31; color: #fff4df; }
.rb-count { font-size: calc(var(--rpx) * 27); color: #973d31; margin: calc(var(--rpx) * 10) 0; }
.rb-count span { font-family: Georgia, serif; font-size: calc(var(--rpx) * 90); padding-right: calc(var(--rpx) * 8); }
.rb-penalty { font-size: calc(var(--rpx) * 31); line-height: 1.5; margin-bottom: calc(var(--rpx) * 22); overflow-wrap: anywhere; }
.rb-result { display: flex; gap: calc(var(--rpx) * 15); align-items: center; padding: calc(var(--rpx) * 17) 0; border-top: calc(var(--rpx) * 1) solid #d8cbb2; font-size: calc(var(--rpx) * 24); }
.rb-result-name { flex: 1; text-align: left; min-width: 0; overflow-wrap: anywhere; }
.rb-result > span:not(:first-child) { flex-shrink: 0; }
.rb-loser { color: #973d31; font-weight: 600; }
.rb-hand-panel { padding: calc(var(--rpx) * 30) calc(var(--rpx) * 20); margin-top: calc(var(--rpx) * 20); border-top: calc(var(--rpx) * 1) solid #cbbd9f; }
.rb-hand { display: flex; justify-content: center; align-items: center; gap: calc(var(--rpx) * 26); min-height: calc(var(--rpx) * 280); padding-top: calc(var(--rpx) * 28); }
.rb-hand-card { width: calc(var(--rpx) * 168); height: calc(var(--rpx) * 236); transform: rotate(-6deg); transition: transform 220ms ease, box-shadow 220ms ease; }
.rb-hand-card:nth-child(2) { transform: rotate(6deg); }
.rb-hand-card.selected { transform: translateY(calc(var(--rpx) * -20)) rotate(0); box-shadow: 0 0 0 calc(var(--rpx) * 4) #9a4937; border-radius: calc(var(--rpx) * 10); }
.rb-idle-cards { display: flex; justify-content: center; margin-top: calc(var(--rpx) * 32); }
.rb-idle-card { width: calc(var(--rpx) * 140); height: calc(var(--rpx) * 200); line-height: calc(var(--rpx) * 200); background: #f8f0dc; color: #30443d; font-size: calc(var(--rpx) * 85); border: calc(var(--rpx) * 1) solid #baaa87; box-shadow: 0 calc(var(--rpx) * 8) calc(var(--rpx) * 18) #0001; transform: rotate(9deg); }
.rb-idle-card.red { color: #963d32; transform: rotate(-9deg); margin-right: calc(var(--rpx) * -20); }
.rb-profile { display: flex; align-items: center; gap: calc(var(--rpx) * 20); border-top: calc(var(--rpx) * 1) solid #d8cbb2; padding: calc(var(--rpx) * 20); font-size: calc(var(--rpx) * 23); color: #88785b; }
.rb-profile input { min-width: 0; flex: 1; color: #343b35; }
.rb-effect-deal .rb-hand-card { animation: rb-deal 650ms ease-out both; }
.rb-effect-deal .rb-hand-card:nth-child(2) { animation-delay: 140ms; }
.rb-effect-play .rb-table-card:last-child { animation: rb-play 550ms ease-out both; }
.rb-effect-reveal .rb-table-card { animation: rb-reveal 700ms ease-in-out both; }
.rb-effect-reveal .rb-count, .rb-effect-reveal .rb-result, .rb-effect-reveal .rb-penalty { animation: rb-result 950ms ease-out both; }
@keyframes rb-deal { from { opacity: 0; transform: translateY(calc(var(--rpx) * -180)) scale(.55) rotate(-18deg); } to { opacity: 1; } }
@keyframes rb-play { from { opacity: 0; transform: translateY(calc(var(--rpx) * 100)) scale(1.5) rotate(-12deg); } to { opacity: 1; transform: none; } }
@keyframes rb-reveal { 0% { transform: rotateY(90deg); opacity: .2; } 35% { transform: rotateY(90deg); opacity: .2; } 100% { transform: rotateY(0); opacity: 1; } }
@keyframes rb-result { 0%, 65% { opacity: 0; transform: translateY(calc(var(--rpx) * 12)); } 100% { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rb-hand-card, .rb-table-card, .rb-count, .rb-result, .rb-penalty { animation: none !important; transition: none !important; } }

.hd-table { position: relative; padding-bottom: calc(var(--rpx) * 30); color: #453d2e; }
.hd-table.hd-playing { padding-bottom: calc(calc(var(--rpx) * 360) + env(safe-area-inset-bottom)); }
.hd-heading { display: flex; justify-content: space-between; align-items: center; gap: calc(var(--rpx) * 16); margin-bottom: calc(var(--rpx) * 24); }
.hd-heading > div:first-child { flex: 1; min-width: 0; }
.hd-kicker { font-size: calc(var(--rpx) * 25); font-weight: 700; letter-spacing: calc(var(--rpx) * 2); }
.hd-muted { font-size: calc(var(--rpx) * 22); color: #887c66; line-height: 1.65; }
.hd-title { font-size: calc(var(--rpx) * 31); font-weight: 700; line-height: 1.5; }
.hd-rule-button { margin: 0; padding: 0 calc(var(--rpx) * 14); font-size: calc(var(--rpx) * 23); line-height: calc(var(--rpx) * 60); background: transparent; color: #906044; flex-shrink: 0; }
.hd-rule-button::after { border: none; }
.hd-table-header { position: relative; min-height: calc(var(--rpx) * 64); padding-right: calc(var(--rpx) * 150); }
.hd-table-header .hd-open-rules { position: absolute; top: 0; right: 0; width: calc(var(--rpx) * 144); height: calc(var(--rpx) * 60); padding: 0; margin: 0; line-height: calc(var(--rpx) * 60); text-align: right; }
.hd-modal-header { position: relative; min-height: calc(var(--rpx) * 60); padding-right: calc(var(--rpx) * 110); }
.hd-modal-header .hd-close-rules { position: absolute; top: 0; right: 0; width: calc(var(--rpx) * 100); height: calc(var(--rpx) * 60); padding: 0; margin: 0; line-height: calc(var(--rpx) * 60); text-align: right; }
.hd-modal-header .hd-title { white-space: normal; line-height: 1.45; }
.hd-modal-backdrop { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.hd-modal-mask .hd-modal { position: relative; z-index: 1; }
.hd-win-badge { position: relative; display: inline-flex; align-items: center; justify-content: center; width: calc(var(--rpx) * 130); height: calc(var(--rpx) * 58); margin-top: calc(var(--rpx) * 6); flex-shrink: 0; overflow: hidden; border: calc(var(--rpx) * 2) double #d6ac42; border-radius: calc(var(--rpx) * 29); background: radial-gradient(circle at 35% 20%, #fffde1, #ffe078 65%, #e6b333); color: #87580b; animation: hd-win-glow 2600ms ease-in-out infinite; }
.hd-win-badge > span { font-family: Georgia, serif; font-size: calc(var(--rpx) * 32); line-height: 1; font-weight: 800; text-shadow: 0 calc(var(--rpx) * 1) #fffce5; }
.hd-win-badge::after { content: ''; position: absolute; top: -25%; bottom: -25%; left: -70%; width: 240%; background: linear-gradient(110deg, transparent 36%, rgba(255,255,242,.95) 48%, transparent 60%); animation: tt-gold-sweep 3200ms ease-in-out infinite; pointer-events: none; }
.hd-win-laurel { position: absolute; top: calc(var(--rpx) * 10); font-size: calc(var(--rpx) * 30); color: #b38419; }
.hd-win-laurel.left { left: calc(var(--rpx) * 7); transform: rotate(-70deg); }
.hd-win-laurel.right { right: calc(var(--rpx) * 7); transform: rotate(70deg) scaleX(-1); }
.hd-win-spark { position: absolute; right: calc(var(--rpx) * 21); top: calc(var(--rpx) * 3); color: #fff9cf; font-size: calc(var(--rpx) * 18); animation: tt-gold-particle 2300ms ease-out infinite; }
@keyframes hd-win-glow { 0%, 100% { box-shadow: 0 0 calc(var(--rpx) * 6) rgba(230,180,45,.3); } 50% { box-shadow: 0 0 calc(var(--rpx) * 20) calc(var(--rpx) * 3) rgba(230,180,45,.65); } }
@media (prefers-reduced-motion: reduce) { .hd-win-badge, .hd-win-badge::after, .hd-win-spark { animation: none !important; } .hd-win-badge::after, .hd-win-spark { display: none; } }
.hd-waiting, .hd-settings { box-sizing: border-box; padding: calc(var(--rpx) * 28); background: rgba(255,253,245,.8); border: calc(var(--rpx) * 1) solid #d7c9ac; border-radius: calc(var(--rpx) * 16); margin-bottom: calc(var(--rpx) * 24); }
.holdem-room .hd-waiting .button, .holdem-room .hd-results .button { width: 100%; box-sizing: border-box; min-height: calc(var(--rpx) * 80); font-size: calc(var(--rpx) * 27); }
.hd-waiting .button { margin-top: calc(var(--rpx) * 22); }
.hd-board { position: relative; margin: calc(var(--rpx) * 20) calc(var(--rpx) * -12) calc(var(--rpx) * 24); padding: calc(var(--rpx) * 26) calc(var(--rpx) * 18) calc(var(--rpx) * 20); background: #e6dfc9; border: calc(var(--rpx) * 3) double #b7a781; box-shadow: inset 0 0 0 calc(var(--rpx) * 7) #f3eddc; border-radius: calc(var(--rpx) * 28); }
.hd-board-heading { display: flex; justify-content: space-between; font-size: calc(var(--rpx) * 20); letter-spacing: calc(var(--rpx) * 1); color: #74674d; margin-bottom: calc(var(--rpx) * 20); }
.hd-board-cards { display: flex; gap: calc(var(--rpx) * 9); justify-content: center; }
.hd-board-slot { flex: 1; min-width: 0; height: calc(var(--rpx) * 184); }
.hd-board-slot .tt-corner { font-size: calc(var(--rpx) * 19); }
.hd-board-slot .tt-corner.top { top: calc(var(--rpx) * 8); left: calc(var(--rpx) * 7); }
.hd-board-slot .tt-corner.bottom { bottom: calc(var(--rpx) * 8); right: calc(var(--rpx) * 7); }
.hd-board-slot .tt-center-rank { font-size: calc(var(--rpx) * 47); top: 30%; }
.hd-board-slot .tt-center-suit { font-size: calc(var(--rpx) * 36); top: 58%; }
.hd-empty-card { box-sizing: border-box; border: calc(var(--rpx) * 2) dashed #b9ab8f; border-radius: calc(var(--rpx) * 10); height: 100%; display: flex; align-items: center; justify-content: center; color: #b4a68c; font-family: Georgia,serif; font-size: calc(var(--rpx) * 38); }
.hd-board-status { text-align: center; margin-top: calc(var(--rpx) * 20); font-size: calc(var(--rpx) * 24); color: #675538; font-weight: 700; }
.hd-my-hand { padding: calc(var(--rpx) * 24); border: calc(var(--rpx) * 1) solid #d8c8a8; background: rgba(255,252,239,.8); border-radius: calc(var(--rpx) * 12); }
.hd-state { color: #a65e3f; font-size: calc(var(--rpx) * 24); }
.hd-position { font-size: calc(var(--rpx) * 19); color: #96783d; font-weight: normal; }
.hd-hole-cards { display: flex; justify-content: center; gap: calc(var(--rpx) * 16); }
.hd-hole-card { width: calc(var(--rpx) * 150); height: calc(var(--rpx) * 210); }
.hd-hole-card:first-child { transform: rotate(-4deg); }
.hd-hole-card:last-child { transform: rotate(4deg); }
.hd-hand-label { text-align: center; color: #957128; font-weight: 700; font-size: calc(var(--rpx) * 25); margin-top: calc(var(--rpx) * 14); }
.hd-seats { margin-top: calc(var(--rpx) * 20); }
.hd-seat { display: flex; justify-content: space-between; align-items: center; gap: calc(var(--rpx) * 12); padding: calc(var(--rpx) * 17) calc(var(--rpx) * 14); border-bottom: calc(var(--rpx) * 1) solid #d8cdb6; border-left: calc(var(--rpx) * 5) solid transparent; }
.hd-seat.acting { border-left-color: #c26b45; background: #f8ead4; }
.hd-seat-info { min-width: 0; flex: 1; }
.hd-seat-name { font-size: calc(var(--rpx) * 27); overflow-wrap: anywhere; line-height: 1.5; }
.hd-mini-cards { display: flex; gap: calc(var(--rpx) * 6); flex-shrink: 0; }
.hd-mini-cards > div { width: calc(var(--rpx) * 52); height: calc(var(--rpx) * 75); }
.hd-mini-cards .tt-corner { display: none; }
.hd-mini-cards .tt-center-rank { font-size: calc(var(--rpx) * 27); top: 10%; }
.hd-mini-cards .tt-center-suit { font-size: calc(var(--rpx) * 24); top: 48%; }
.hd-seat.folded, .hd-hole-cards.folded, .hd-state.folded { opacity: .66; }
.hd-actions { position: fixed; bottom: 0; left: calc(var(--rpx) * 16); right: calc(var(--rpx) * 16); z-index: 8; padding: calc(var(--rpx) * 16) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 16) + env(safe-area-inset-bottom)); background: #f7f0df; border: calc(var(--rpx) * 1) solid #c8b896; box-shadow: 0 calc(var(--rpx) * -8) calc(var(--rpx) * 22) rgba(68,48,21,.08); border-radius: calc(var(--rpx) * 16) calc(var(--rpx) * 16) 0 0; }
.hd-turn { text-align: center; font-size: calc(var(--rpx) * 26); font-weight: 700; margin-bottom: calc(var(--rpx) * 12); color: #a05938; }
.hd-turn-row { display: flex; align-items: center; gap: calc(var(--rpx) * 16); margin-bottom: calc(var(--rpx) * 12); }
.hd-turn-row .hd-turn { flex: 1; min-width: 0; margin: 0; text-align: left; }
.hd-action-grid { display: flex; flex-wrap: wrap; gap: calc(var(--rpx) * 8); }
.hd-action-grid button { box-sizing: border-box; width: calc(33.333% - calc(var(--rpx) * 6)); min-height: calc(var(--rpx) * 100); margin: 0; padding: calc(var(--rpx) * 14) calc(var(--rpx) * 8); background: #e8dec7; color: #564831; font-size: calc(var(--rpx) * 28); line-height: 1.3; border-radius: calc(var(--rpx) * 10); }
.hd-action-grid button span { display: block; font-size: calc(var(--rpx) * 20); margin-top: calc(var(--rpx) * 8); line-height: 1.4; }
.hd-action-grid .hd-all-in { background: #ac613f; color: #fff5de; }
.hd-action-grid .hd-fold { background: #dedbd1; color: #6f6b60; }
.hd-action-grid button[disabled] { opacity: .45; }
.hd-results { margin-top: calc(var(--rpx) * 24); padding: calc(var(--rpx) * 24); border: calc(var(--rpx) * 2) solid #b89b60; background: #fcf4df; border-radius: calc(var(--rpx) * 12); }
.hd-result { display: flex; justify-content: space-between; gap: calc(var(--rpx) * 12); align-items: center; padding: calc(var(--rpx) * 16) 0; border-bottom: calc(var(--rpx) * 1) solid #e0d2b6; font-size: calc(var(--rpx) * 25); }
.hd-result > div { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.hd-result > span { flex-shrink: 0; white-space: nowrap; font-weight: 700; }
.hd-result .hd-muted { display: block; }
.hd-result.winner { color: #9a752e; font-weight: 700; }
.hd-results .button { margin-top: calc(var(--rpx) * 22); }
.hd-mode-options, .hd-cap { display: flex; gap: calc(var(--rpx) * 12); margin: calc(var(--rpx) * 20) 0; }
.hd-mode-options button { flex: 1; width: 0; min-width: 0; margin: 0; padding: 0 calc(var(--rpx) * 12); height: calc(var(--rpx) * 76); line-height: calc(var(--rpx) * 76); font-size: calc(var(--rpx) * 26); background: #eee7d8; border-radius: calc(var(--rpx) * 10); }
.hd-mode-options .selected { background: #a96846; color: #fff7e5; }
.hd-cap { align-items: center; }
.hd-cap input { box-sizing: border-box; width: 0; min-width: 0; flex: 1; background: #fffdf8; padding: 0 calc(var(--rpx) * 20); height: calc(var(--rpx) * 80); border: calc(var(--rpx) * 1) solid #cebea0; border-radius: calc(var(--rpx) * 10); font-size: calc(var(--rpx) * 30); }
.hd-cap button { box-sizing: border-box; flex: 0 0 calc(var(--rpx) * 190); width: calc(var(--rpx) * 190); margin: 0; padding: 0 calc(var(--rpx) * 16); height: calc(var(--rpx) * 80); font-size: calc(var(--rpx) * 24); line-height: calc(var(--rpx) * 80); color: #fff9ed; background: #a96846; border-radius: calc(var(--rpx) * 10); }
.hd-settings .hd-rule-button { width: 100%; margin-top: calc(var(--rpx) * 16); border-top: calc(var(--rpx) * 1) solid #e1d6c0; border-radius: 0; }
.hd-settings button[disabled] { opacity: .5; }
.hd-modal-mask { position: fixed; inset: 0; z-index: 100; background: rgba(42,34,23,.5); display: flex; align-items: center; justify-content: center; padding: calc(var(--rpx) * 32); }
.hd-modal { box-sizing: border-box; width: 100%; max-width: calc(var(--rpx) * 650); padding: calc(var(--rpx) * 24); border-radius: calc(var(--rpx) * 20); background: #fcf6e8; box-shadow: 0 calc(var(--rpx) * 14) calc(var(--rpx) * 70) rgba(0,0,0,.2); }
.hd-modal .hd-title { font-size: calc(var(--rpx) * 29); }
.hd-rules-scroll { max-height: 65vh; height: calc(var(--rpx) * 850); }
.hd-rule-row { display: flex; gap: calc(var(--rpx) * 20); align-items: center; padding: calc(var(--rpx) * 13) calc(var(--rpx) * 10); border-bottom: calc(var(--rpx) * 1) solid #e4d9c1; font-size: calc(var(--rpx) * 25); }
.hd-rule-rank { width: calc(var(--rpx) * 30); flex-shrink: 0; color: #a57e3f; font-family: Georgia,serif; }
.hd-rule-content { flex: 1; min-width: 0; }
.hd-rule-cards { display: flex; gap: calc(var(--rpx) * 10); margin-top: calc(var(--rpx) * 12); }
.hd-rule-card { flex: 1; min-width: 0; max-width: calc(var(--rpx) * 76); height: calc(var(--rpx) * 108); }
.hd-rule-card .tt-corner { font-size: calc(var(--rpx) * 13); }
.hd-rule-card .tt-corner.top { top: calc(var(--rpx) * 5); left: calc(var(--rpx) * 5); }
.hd-rule-card .tt-corner.bottom { bottom: calc(var(--rpx) * 5); right: calc(var(--rpx) * 5); }
.hd-rule-card .tt-center-rank { font-size: calc(var(--rpx) * 28); top: 29%; }
.hd-rule-card .tt-center-suit { font-size: calc(var(--rpx) * 24); top: 58%; }
.hd-rule-note { margin-top: calc(var(--rpx) * 20); color: #7c6d55; font-size: calc(var(--rpx) * 22); line-height: 1.7; }
.hd-rule-note div { margin-top: calc(var(--rpx) * 12); }
.hd-effect { position: fixed; top: 30%; left: 15%; width: 70%; z-index: 20; pointer-events: none; text-align: center; padding: calc(var(--rpx) * 30) 0; color: #99702b; border: calc(var(--rpx) * 4) double #c3a567; background: radial-gradient(ellipse,#fff9de 30%,rgba(250,238,198,.94) 100%); box-shadow: 0 0 calc(var(--rpx) * 70) rgba(196,157,63,.5); font-size: calc(var(--rpx) * 42); font-weight: 800; border-radius: calc(var(--rpx) * 30); animation: hd-badge 450ms ease-out both; }
.hd-effect span { display: block; font-size: calc(var(--rpx) * 26); margin-top: calc(var(--rpx) * 10); }
.hd-effect-symbol { font-size: calc(var(--rpx) * 65); }
.hd-effect.fold { color: #797265; border-color: #9d9585; background: #eee9df; box-shadow: none; }
.hd-effect.all-in { color: #a95032; border-color: #c88453; }
.motion-deal .hd-hole-card { animation: hd-deal 650ms ease-out both; }
.motion-deal .hd-hole-card:last-child { animation-delay: 120ms; }
.motion-reveal .hd-board-slot .tt-poker { animation: hd-reveal 550ms ease-out both; }
.hd-effect.winner { border-color: #b18a32; box-shadow: 0 0 calc(var(--rpx) * 80) rgba(214,170,53,.7); animation: hd-winner 650ms ease-out both; }
.hd-effect.all-in { animation: hd-all-in 650ms ease-out both; }
@keyframes hd-winner { from { opacity: 0; transform: scale(.75) rotate(-7deg); } 60% { opacity: 1; transform: scale(1.05) rotate(2deg); } to { transform: scale(1); } }
@keyframes hd-all-in { from { opacity: 0; transform: translateY(calc(var(--rpx) * 25)) scale(.9); } 45% { opacity: 1; transform: translateX(calc(var(--rpx) * -6)); } 65% { transform: translateX(calc(var(--rpx) * 6)); } to { transform: none; } }
.effect-fold .hd-hole-cards.folded { animation: hd-fold 550ms ease-out; }
@keyframes hd-deal { from { opacity: 0; transform: translateY(calc(var(--rpx) * -180)) scale(.55) rotate(-12deg); } to { opacity: 1; } }
@keyframes hd-reveal { from { transform: rotateY(90deg); opacity: .4; } to { transform: rotateY(0); opacity: 1; } }
@keyframes hd-fold { 50% { transform: translateY(calc(var(--rpx) * 20)) rotate(-5deg); } }
@keyframes hd-badge { from { transform: scale(.7); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hd-effect, .hd-effect.winner, .hd-effect.all-in, .motion-deal .hd-hole-card, .motion-reveal .hd-board-slot .tt-poker, .effect-fold .hd-hole-cards.folded { animation: none; } }
.hd-draft-total { position: relative; display: flex; align-items: center; justify-content: space-between; gap: calc(var(--rpx) * 12); padding: calc(var(--rpx) * 6) 0 calc(var(--rpx) * 14); font-size: calc(var(--rpx) * 23); }
.hd-draft-total span { display: inline-block; font-weight: 900; color: #ab682e; }
.hd-draft-total button { flex: 0 0 calc(var(--rpx) * 76); width: calc(var(--rpx) * 76); min-width: 0; margin: 0; padding: 0; line-height: calc(var(--rpx) * 48); font-size: calc(var(--rpx) * 22); }
.hd-draft-spark { position: absolute; right: calc(var(--rpx) * 90); top: calc(var(--rpx) * -16); animation: hd-chip-rise .5s ease-out both; pointer-events: none; }
.hd-draft-pop { animation: hd-number-pop .5s ease-out; }
.hd-action-grid .hd-confirm { color: #fff; background: #a96842; }
@keyframes hd-chip-rise { from { opacity: 1; transform: translateY(calc(var(--rpx) * 10)) scale(.8); } to { opacity: 0; transform: translateY(calc(var(--rpx) * -38)) scale(1.15); } }
@keyframes hd-number-pop { 40% { transform: scale(1.22); color: #e0aa31; } }

.seat-panel { background: #fbf7ec; border: calc(var(--rpx) * 1) solid #d8cab0; border-radius: calc(var(--rpx) * 16); padding: calc(var(--rpx) * 26); margin-bottom: calc(var(--rpx) * 24); }
.seat-title { font-size: calc(var(--rpx) * 30); font-weight: 700; color: #423b2f; }
.seat-caption { font-size: calc(var(--rpx) * 23); color: #89785e; line-height: 1.6; margin-top: calc(var(--rpx) * 8); }
.seat-list { position: relative; margin-top: calc(var(--rpx) * 18); }
.room-seat-row { position: absolute; top: 0; left: 0; right: 0; box-sizing: border-box; display: flex; align-items: center; gap: calc(var(--rpx) * 8); background: #f8f1e2; border: calc(var(--rpx) * 1) solid #ded1b9; border-radius: calc(var(--rpx) * 10); padding: calc(var(--rpx) * 10); transition: transform 150ms ease; }
.room-seat-row.dragging { z-index: 5; border-color: #b87944; box-shadow: 0 calc(var(--rpx) * 8) calc(var(--rpx) * 20) #70532633; transition: none; background: #fff5da; }
.seat-drag-handle { display: flex; align-items: center; gap: calc(var(--rpx) * 12); flex: 1; min-width: 0; height: 100%; }
.seat-number { font-size: calc(var(--rpx) * 22); color: #9c7843; width: calc(var(--rpx) * 26); flex-shrink: 0; }
.seat-avatar { width: calc(var(--rpx) * 56); height: calc(var(--rpx) * 56); border-radius: 50%; flex-shrink: 0; }
.seat-initial { display: flex; align-items: center; justify-content: center; font-size: calc(var(--rpx) * 27); color: #855f31; background: #ebdfc8; }
.seat-name { font-size: calc(var(--rpx) * 25); flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.seat-grip { font-size: calc(var(--rpx) * 30); color: #ad9b7f; }
.seat-arrow { width: calc(var(--rpx) * 44); flex: 0 0 calc(var(--rpx) * 44); height: calc(var(--rpx) * 60); line-height: calc(var(--rpx) * 60); padding: 0; margin: 0; background: transparent; font-size: calc(var(--rpx) * 28); color: #896339; }
.seat-arrow::after { border: none; }
.seat-arrow[disabled] { opacity: .25; }
.seat-save-row { display: flex; gap: calc(var(--rpx) * 16); margin-top: calc(var(--rpx) * 20); }
.seat-save-row button { flex: 1; width: 0; height: calc(var(--rpx) * 74); line-height: calc(var(--rpx) * 74); font-size: calc(var(--rpx) * 26); padding: 0; margin: 0; }
.seat-save { background: #a96846; color: #fff8e6; }
.seat-reset { background: #ece4d3; color: #826744; }

.room-page .seat-panel .room-seat-row{flex-wrap:nowrap!important}.room-page .seat-panel .seat-drag-handle{min-width:0;overflow:hidden;flex:1 1 0}.room-page .seat-panel .seat-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-page .seat-panel .room-seat-row button.seat-arrow{flex:0 0 calc(var(--rpx) * 56)!important;width:calc(var(--rpx) * 56)!important;min-width:calc(var(--rpx) * 56)!important;max-width:calc(var(--rpx) * 56)!important;height:calc(var(--rpx) * 60)!important;min-height:calc(var(--rpx) * 60)!important;margin:0!important;padding:0!important;line-height:calc(var(--rpx) * 60)!important;font-size:calc(var(--rpx) * 28)!important;white-space:nowrap;border-radius:calc(var(--rpx) * 8);background:#e5d7ba;color:#755438}.room-page .seat-panel .room-seat-row button.seat-arrow::after{border:0}

.dr-table{position:relative;color:#453d2e;padding-bottom:calc(var(--rpx) * 24)}.dr-header{position:relative;padding-right:calc(var(--rpx) * 160);min-height:calc(var(--rpx) * 68);margin-bottom:calc(var(--rpx) * 20)}.dr-title{font-size:calc(var(--rpx) * 28);font-weight:700;line-height:1.5;overflow-wrap:anywhere}.dr-muted{color:#887c66;font-size:calc(var(--rpx) * 22);line-height:1.6}.dr-rules-button{position:absolute;right:0;top:0;width:calc(var(--rpx) * 150)!important;padding:0!important;margin:0!important;line-height:calc(var(--rpx) * 58);font-size:calc(var(--rpx) * 23);background:transparent;color:#906044}.dr-rules-button::after{border:0}.dr-panel{padding:calc(var(--rpx) * 24);margin:calc(var(--rpx) * 20) 0;background:rgba(255,253,245,.85);border:calc(var(--rpx) * 1) solid #d7c9ac;border-radius:calc(var(--rpx) * 16)}.dr-table button,.dr-panel button{box-sizing:border-box;width:100%;min-width:0;margin:calc(var(--rpx) * 12) 0 0;padding:calc(var(--rpx) * 12);font-size:calc(var(--rpx) * 24);line-height:1.5;background:#e8dfc6;color:#50432e}.dr-table .dr-primary,.dr-panel .dr-primary{background:#a96842;color:white}.dr-row{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 16);font-size:calc(var(--rpx) * 23)}.dr-row>button{flex:1;width:0}.dr-board{padding:calc(var(--rpx) * 24);background:#e6dfc9;border:calc(var(--rpx) * 3) double #b7a781;border-radius:calc(var(--rpx) * 24);box-shadow:inset 0 0 0 calc(var(--rpx) * 6) #f3eddc;text-align:center}.dr-board-card{width:calc(var(--rpx) * 140);height:calc(var(--rpx) * 196);margin:calc(var(--rpx) * 20) auto}.dr-hand{display:flex;justify-content:center;gap:calc(var(--rpx) * 18);margin:calc(var(--rpx) * 24) 0 calc(var(--rpx) * 48)}.dr-card{position:relative;width:calc(var(--rpx) * 140);height:calc(var(--rpx) * 196);flex:0 1 calc(var(--rpx) * 140)}.dr-card>span{position:absolute;top:100%;left:calc(var(--rpx) * -8);right:calc(var(--rpx) * -8);text-align:center;font-size:calc(var(--rpx) * 20);line-height:calc(var(--rpx) * 36);color:#887c66;white-space:nowrap}.dr-imagined{box-shadow:0 0 calc(var(--rpx) * 12) #d8b765}.dr-best{text-align:center;font-size:calc(var(--rpx) * 28);font-weight:800;color:#986b20}.dr-exchange{border-top:calc(var(--rpx) * 1) solid #e2d8c2;margin-top:calc(var(--rpx) * 20);padding-top:calc(var(--rpx) * 16)}.dr-seat{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--rpx) * 20) calc(var(--rpx) * 12);border-bottom:calc(var(--rpx) * 1) solid #dbcfb2;gap:calc(var(--rpx) * 20)}.dr-seat-info{flex:1;min-width:0}.dr-small-card{width:calc(var(--rpx) * 82);height:calc(var(--rpx) * 115);flex-shrink:0}.dr-small-card .tt-corner{font-size:calc(var(--rpx) * 10)}.dr-small-card .tt-center-rank{font-size:calc(var(--rpx) * 28)}.dr-small-card .tt-center-suit{font-size:calc(var(--rpx) * 16)}.dr-seat .dr-open{width:calc(var(--rpx) * 130)}.dr-draft{position:relative;font-size:calc(var(--rpx) * 24);margin-bottom:calc(var(--rpx) * 16)}.dr-draft>span{font-size:calc(var(--rpx) * 36);font-weight:800;color:#a96842}.dr-additions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(var(--rpx) * 10)}.dr-additions button{font-size:calc(var(--rpx) * 25);margin:0}.dr-spark{position:absolute;right:0;top:0;animation:dr-spark-rise .5s both}.dr-controls button+button{margin-top:calc(var(--rpx) * 16)}.dr-win{position:relative;display:inline-block;overflow:hidden;padding:calc(var(--rpx) * 6) calc(var(--rpx) * 20);margin:calc(var(--rpx) * 8) 0;border:calc(var(--rpx) * 2) solid #d8b34c;border-radius:calc(var(--rpx) * 30);background:linear-gradient(120deg,#fff4b4,#efc95a,#ffec9f);color:#865911;font-size:calc(var(--rpx) * 30);font-weight:800;box-shadow:0 0 calc(var(--rpx) * 14) #e3c565}.dr-win::after{content:'';position:absolute;inset:-30%;background:linear-gradient(110deg,transparent 40%,#fffbdc 50%,transparent 60%);animation:dr-gold 2.8s infinite}.dr-points{font-size:calc(var(--rpx) * 28);font-weight:800;color:#a4573d;text-align:center;margin-top:calc(var(--rpx) * 12)}.dr-effect{position:fixed;top:40%;left:20%;right:20%;text-align:center;z-index:12;color:#916214;background:#fff0b8;padding:calc(var(--rpx) * 20);border-radius:calc(var(--rpx) * 20);pointer-events:none}.dr-deal .dr-card,.dr-deal .dr-board-card{animation:dr-card-in .7s ease-out}.dr-setting{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 18);margin:calc(var(--rpx) * 20) 0;font-size:calc(var(--rpx) * 24)}.dr-setting input{flex:1;min-width:0;max-width:calc(var(--rpx) * 300);height:calc(var(--rpx) * 72);padding:0 calc(var(--rpx) * 16);background:white;border:calc(var(--rpx) * 1) solid #d7c9ac;box-sizing:border-box}.dr-rotation{display:flex;gap:calc(var(--rpx) * 8);margin-bottom:calc(var(--rpx) * 20)}.dr-rotation button{flex:1;width:0;font-size:calc(var(--rpx) * 21)}.dr-panel .dr-selected{background:#a96842;color:white}.dr-mask{position:fixed;inset:0;z-index:100;background:rgba(39,33,23,.5);display:flex;align-items:center;justify-content:center;padding:calc(var(--rpx) * 32);box-sizing:border-box}.dr-modal{width:100%;max-height:86vh;background:#fbf5e7;border-radius:calc(var(--rpx) * 20);padding:calc(var(--rpx) * 24);box-sizing:border-box}.dr-rules-scroll{height:66vh}.dr-rule{padding:calc(var(--rpx) * 16) 0;border-bottom:calc(var(--rpx) * 1) solid #e4d7b8;font-size:calc(var(--rpx) * 24)}.dr-example{display:flex;gap:calc(var(--rpx) * 12);margin-top:calc(var(--rpx) * 10)}.dr-example>div{width:calc(var(--rpx) * 86);height:calc(var(--rpx) * 120)}.dr-example .tt-center-rank{font-size:calc(var(--rpx) * 30)}.dr-example .tt-center-suit{font-size:calc(var(--rpx) * 18)}.dr-example .tt-corner{font-size:calc(var(--rpx) * 10)}@keyframes dr-gold{0%,45%{transform:translateX(-100%)}80%,100%{transform:translateX(100%)}}@keyframes dr-spark-rise{to{opacity:0;transform:translateY(calc(var(--rpx) * -35))}}@keyframes dr-card-in{from{opacity:.3;transform:translateY(calc(var(--rpx) * -24)) rotate(-6deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.dr-win::after,.dr-spark,.dr-deal .dr-card,.dr-deal .dr-board-card{animation:none}}
.dr-tie { margin: calc(var(--rpx) * 10) 0; font-size: calc(var(--rpx) * 24); font-weight: 700; color: #a27a2e; }
.dr-table .dr-rules-button, .dr-modal .dr-rules-button { box-sizing: border-box; height: calc(var(--rpx) * 60); line-height: calc(var(--rpx) * 60); background: transparent; text-align: right; }
.dr-table button, .dr-panel button { border-radius: calc(var(--rpx) * 10); }
.dr-board .dr-board-card { width: calc(var(--rpx) * 180); height: calc(var(--rpx) * 252); }
.dr-own-hand { margin: calc(var(--rpx) * 26) 0; }
.dr-own-hand .dr-card { width: calc(var(--rpx) * 180); height: calc(var(--rpx) * 252); flex: 0 0 calc(var(--rpx) * 180); }
.dr-best-hint { display: flex; align-items: center; justify-content: center; gap: calc(var(--rpx) * 24); padding: calc(var(--rpx) * 16) 0 calc(var(--rpx) * 4); border-top: calc(var(--rpx) * 1) solid #e8ddc8; }
.dr-best-copy { min-width: 0; }
.dr-best-copy .dr-muted { font-size: calc(var(--rpx) * 20); }
.dr-best-label { font-size: calc(var(--rpx) * 24); color: #99752e; font-weight: 700; margin-top: calc(var(--rpx) * 4); }
.dr-best-cards { display: flex; align-items: center; gap: calc(var(--rpx) * 8); }
.dr-best-card { position: relative; width: calc(var(--rpx) * 48); height: calc(var(--rpx) * 68); }
.dr-best-card .tt-corner { display: none; }
.dr-best-card .tt-center-rank { font-size: calc(var(--rpx) * 24); top: 12%; }
.dr-best-card .tt-center-suit { font-size: calc(var(--rpx) * 20); top: 50%; }
.dr-best-card.imagined { border: calc(var(--rpx) * 1) dashed #b69550; border-radius: calc(var(--rpx) * 6); }
.dr-imagined-label { position: absolute; right: calc(var(--rpx) * -7); bottom: calc(var(--rpx) * -7); font-size: calc(var(--rpx) * 15); line-height: calc(var(--rpx) * 22); width: calc(var(--rpx) * 22); height: calc(var(--rpx) * 22); text-align: center; color: #8a6c31; background: #fff1c9; border-radius: 50%; }

.at-panel{margin:calc(var(--rpx) * 20) 0;padding:calc(var(--rpx) * 28);background:#fcf6e6;border:calc(var(--rpx) * 2) solid #c9ac70;border-radius:calc(var(--rpx) * 20);text-align:center;box-shadow:0 calc(var(--rpx) * 6) calc(var(--rpx) * 18) #715d2020}.at-caption{font-size:calc(var(--rpx) * 23);color:#8a795b;line-height:1.6}.at-highest{display:flex;align-items:center;justify-content:center;gap:calc(var(--rpx) * 18);margin:calc(var(--rpx) * 16) 0}.at-name{min-width:0;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(var(--rpx) * 28)}.at-amount{font-size:calc(var(--rpx) * 44);font-weight:800;color:#a85f36}.at-unit{font-size:calc(var(--rpx) * 24);margin-left:calc(var(--rpx) * 6)}.at-choice{background:#ead9ae;border-radius:calc(var(--rpx) * 10);padding:calc(var(--rpx) * 8) calc(var(--rpx) * 16);font-size:calc(var(--rpx) * 28);font-weight:700}.at-empty{padding:calc(var(--rpx) * 24) 0;color:#8a795b}.at-countdown{font-size:100px;line-height:1.1;font-weight:800;color:#ac8030;font-variant-numeric:tabular-nums;text-shadow:0 calc(var(--rpx) * 3) calc(var(--rpx) * 12) #d6ac5140}.at-countdown span{font-size:calc(var(--rpx) * 25);margin-left:calc(var(--rpx) * 8)}.at-track{height:calc(var(--rpx) * 8);background:#e8dfcc;border-radius:calc(var(--rpx) * 8);overflow:hidden;margin:calc(var(--rpx) * 18) 0 calc(var(--rpx) * 10)}.at-progress{height:100%;background:#c5993d;transition:width .2s linear}.at-urgent{color:#b7372e;animation:at-pulse .8s ease-in-out infinite}.at-drink{margin-top:calc(var(--rpx) * 20);line-height:1.8;font-weight:700;color:#a7653b}.at-draft{border-top:calc(var(--rpx) * 1) solid #deceb0;margin-top:calc(var(--rpx) * 24);padding-top:calc(var(--rpx) * 22)}.at-draft-total{position:relative;font-size:calc(var(--rpx) * 26)}.at-draft-total>span{font-size:calc(var(--rpx) * 36);font-weight:800;margin-left:calc(var(--rpx) * 12)}.at-additions,.at-more,.at-operations{display:flex;gap:calc(var(--rpx) * 12);margin-top:calc(var(--rpx) * 14)}.at-panel button,.at-setting button{width:auto;min-width:0;flex:1;margin:0;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 8);font-size:calc(var(--rpx) * 27);line-height:1.5;border-radius:calc(var(--rpx) * 10);background:#e9dfc6;color:#423c2b}.at-panel button::after,.at-setting button::after{border:0}.at-panel button[disabled]{opacity:.4}.at-panel .at-selected{background:#a86843;color:white;box-shadow:0 0 0 calc(var(--rpx) * 3) #d1aa6f}.at-panel .at-submit{width:100%;margin-top:calc(var(--rpx) * 20);background:#a86843;color:white;padding:calc(var(--rpx) * 18) calc(var(--rpx) * 8)}.at-draft-total .at-pop{position:absolute;right:0;top:calc(var(--rpx) * -18);color:#b0801f;font-size:calc(var(--rpx) * 28);animation:at-rise .5s ease-out forwards}.at-setting{margin-top:calc(var(--rpx) * 20)}.at-cap-row{display:flex;gap:calc(var(--rpx) * 16);align-items:center;margin-top:calc(var(--rpx) * 10)}.at-cap-row input{width:45%;min-width:0;border:calc(var(--rpx) * 1) solid #d7c4a3;padding:calc(var(--rpx) * 16);box-sizing:border-box;background:white}@keyframes at-rise{to{transform:translateY(calc(var(--rpx) * -20));opacity:0}}@keyframes at-pulse{50%{opacity:.65}}@media(prefers-reduced-motion:reduce){.at-urgent,.at-pop{animation:none}.at-progress{transition:none}}

.room-feedback { pointer-events: none; position: fixed; top: calc(env(safe-area-inset-top) + calc(var(--rpx) * 112)); left: calc(var(--rpx) * 32); right: calc(var(--rpx) * 32); z-index: 75; padding: calc(var(--rpx) * 14) calc(var(--rpx) * 22); box-sizing: border-box; border: calc(var(--rpx) * 1) solid #c7bda6; border-radius: calc(var(--rpx) * 16); background: rgba(253,249,238,.96); box-shadow: 0 calc(var(--rpx) * 5) calc(var(--rpx) * 20) #4c402320; color: #68543c; animation: feedback-enter 200ms ease-out both; }
.room-feedback-title { display: block; font-size: calc(var(--rpx) * 27); font-weight: 800; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.room-feedback-detail { display: block; font-size: calc(var(--rpx) * 22); line-height: 1.4; margin-top: calc(var(--rpx) * 3); }
.room-feedback-win { overflow: hidden; color: #8a6016; border-color: #dbb751; background: #fff5d2; box-shadow: 0 0 calc(var(--rpx) * 24) #e6be5355; }
.room-feedback-win::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg,transparent 30%,#fffdf3bb 50%,transparent 70%); animation: feedback-gold 900ms ease-out both; pointer-events: none; }
.room-feedback-lose { color: #a34c3c; border-color: #d9a295; background: #fff0e9; }
@keyframes feedback-enter { from { opacity: 0; transform: translateY(calc(var(--rpx) * -6)); } to { opacity: 1; transform: translateY(0); } }
@keyframes feedback-gold { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .room-feedback,.room-feedback-win::after { animation: none; } }

.point-feedback-layer{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1100}.point-pulse{position:absolute;left:50%;top:31%;width:calc(var(--rpx) * 480);margin-left:0;text-align:center;pointer-events:none;animation:point-rise 1.2s ease-out both}.point-pulse-label{color:#6b4128;font-size:calc(var(--rpx) * 24);font-weight:700;text-shadow:0 calc(var(--rpx) * 1) calc(var(--rpx) * 6) #fff9e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.point-pulse-value{font-size:calc(var(--rpx) * 90);font-weight:900;line-height:1.1;color:#dcae51;text-shadow:0 calc(var(--rpx) * 3) #724725,0 0 calc(var(--rpx) * 20) #fff1b6}.point-draft{top:62%}.point-drink{top:33%;z-index:2}.point-drink .point-pulse-value{color:#ad4c32;text-shadow:0 calc(var(--rpx) * 2) #f6ddaa,0 0 calc(var(--rpx) * 20) #e8bca080}@keyframes point-rise{0%{opacity:1;transform:translate(-50%,calc(var(--rpx) * 30)) scale(.9)}18%{transform:translate(-50%,0) scale(1.12)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,calc(var(--rpx) * -90)) scale(.95)}}@media(prefers-reduced-motion:reduce){.point-pulse{animation:none;transform:translateX(-50%)}}

.dv-vessel{position:relative;width:calc(var(--rpx) * 190);height:calc(var(--rpx) * 200);box-sizing:border-box;border:calc(var(--rpx) * 5) solid #b8a984;border-top:calc(var(--rpx) * 9) solid #d8cba8;border-radius:calc(var(--rpx) * 20) calc(var(--rpx) * 20) calc(var(--rpx) * 55) calc(var(--rpx) * 55);overflow:hidden;box-shadow:inset calc(var(--rpx) * 8) 0 calc(var(--rpx) * 12) #fff9,calc(var(--rpx) * 4) calc(var(--rpx) * 5) calc(var(--rpx) * 12) #684b2420;background:#fafff84d}.dv-liquid{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(#e3b83fdd,#ad702bcc);transition:height .35s ease}.dv-wave{position:absolute;left:-25%;width:150%;height:calc(var(--rpx) * 24);top:calc(var(--rpx) * -12);border-radius:50%;background:#efd05abb;animation:dv-wave 1.8s ease-in-out infinite}.dv-wave-two{opacity:.6;animation-direction:reverse;top:calc(var(--rpx) * -10)}.dv-glass-shine{position:absolute;left:calc(var(--rpx) * 12);top:calc(var(--rpx) * 15);width:calc(var(--rpx) * 12);bottom:calc(var(--rpx) * 22);background:#fff8;border-radius:50%;pointer-events:none}.dv-number{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#79562c;text-shadow:0 calc(var(--rpx) * 1) #fff9;transition:color .2s ease}.dv-number>span{font-size:calc(var(--rpx) * 49);line-height:1.15;font-weight:900;font-variant-numeric:tabular-nums}.dv-number>div{font-size:calc(var(--rpx) * 22)}.dv-bubble{position:absolute;width:calc(var(--rpx) * 10);height:calc(var(--rpx) * 10);border:calc(var(--rpx) * 2) solid #fff8;border-radius:50%;bottom:0;animation:dv-bubble 2s linear infinite}.dv-bubble-one{left:30%}.dv-bubble-two{left:70%;animation-delay:.8s}.dv-stream{position:absolute;width:calc(var(--rpx) * 12);height:70%;left:56%;top:0;background:linear-gradient(90deg,#f8e49c88,#ecbe41dd,#fff2bf88);border-radius:0 0 50% 50%;animation:dv-stream .85s ease-out both;pointer-events:none}.dv-pouring{animation:dv-pulse .55s ease-out}@keyframes dv-wave{0%,100%{transform:translateX(-6%) rotate(-3deg)}50%{transform:translateX(6%) rotate(3deg)}}@keyframes dv-bubble{to{transform:translateY(calc(var(--rpx) * -150));opacity:0}}@keyframes dv-stream{0%{opacity:0;transform:translateY(-100%)}20%{opacity:1;transform:none}80%{opacity:1}100%{opacity:0;transform:translateY(60%)}}@keyframes dv-pulse{35%{box-shadow:inset calc(var(--rpx) * 8) 0 calc(var(--rpx) * 12) #fff9,0 0 calc(var(--rpx) * 20) #ddad5570}}@media(prefers-reduced-motion:reduce){.dv-wave,.dv-bubble,.dv-stream,.dv-pouring{animation:none}.dv-stream{display:none}.dv-liquid,.dv-number{transition:none}}


.ms-table{padding-bottom:calc(var(--rpx) * 420)}.ms-heading{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 16);min-width:0;font-size:calc(var(--rpx) * 25)}.ms-title{font-size:calc(var(--rpx) * 31);font-weight:800}.ms-muted{color:#887959;font-size:calc(var(--rpx) * 22);line-height:1.5}.ms-panel,.ms-board{margin:calc(var(--rpx) * 18) 0;padding:calc(var(--rpx) * 24);background:#fcf6e6;border:calc(var(--rpx) * 1) solid #d9c69e;border-radius:calc(var(--rpx) * 18)}.ms-board{text-align:center;background:radial-gradient(ellipse at center,#fff9e6,#e9debe);border:calc(var(--rpx) * 3) double #bda369}.ms-number{font-size:calc(var(--rpx) * 150);line-height:1.25;color:#917333;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:0 calc(var(--rpx) * 3) calc(var(--rpx) * 18) #b8995128;animation:ms-count .32s ease-out}.ms-warm{color:#b27a36}.ms-hot{color:#b63a2b;text-shadow:0 0 calc(var(--rpx) * 22) #bc3e2933}.ms-pot{font-size:calc(var(--rpx) * 25)}.ms-pot>span:first-child{font-size:calc(var(--rpx) * 36);font-weight:800;color:#a6673f;margin-left:calc(var(--rpx) * 12)}.ms-status{margin-top:calc(var(--rpx) * 12);font-size:calc(var(--rpx) * 25);font-weight:700;color:#886f3d}.ms-hit{border-color:#b26856;background:#f5e9dd}.ms-hit .ms-number{color:#a6372b}.ms-secret{padding:calc(var(--rpx) * 18) calc(var(--rpx) * 24)}.ms-cards{display:flex;justify-content:center;gap:calc(var(--rpx) * 18);margin-top:calc(var(--rpx) * 14)}.ms-card{width:calc(var(--rpx) * 92);height:calc(var(--rpx) * 130)}.ms-card .tt-corner{font-size:calc(var(--rpx) * 16)}.ms-card .tt-center-rank{font-size:calc(var(--rpx) * 36)}.ms-card .tt-center-suit{font-size:calc(var(--rpx) * 27)}.ms-seats{margin-top:calc(var(--rpx) * 20)}.ms-seat{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 18);min-height:calc(var(--rpx) * 76);padding:calc(var(--rpx) * 14) calc(var(--rpx) * 18);border-bottom:calc(var(--rpx) * 1) solid #dfd2b6;font-size:calc(var(--rpx) * 24)}.ms-seat-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ms-acting{background:#efe0ba;border-left:calc(var(--rpx) * 4) solid #b17b40}.ms-history{font-size:calc(var(--rpx) * 21);line-height:1.8;color:#8b7857;margin-top:calc(var(--rpx) * 20)}.ms-actions{position:fixed;bottom:0;left:calc(var(--rpx) * 24);right:calc(var(--rpx) * 24);z-index:12;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 14) + env(safe-area-inset-bottom));background:#faf2df;border:calc(var(--rpx) * 1) solid #c9ad76;border-radius:calc(var(--rpx) * 16) calc(var(--rpx) * 16) 0 0;max-height:36vh;overflow-y:auto;box-shadow:0 calc(var(--rpx) * -4) calc(var(--rpx) * 16) #5d46231c}.ms-options{display:flex;gap:calc(var(--rpx) * 10);margin-top:calc(var(--rpx) * 12)}.ms-table button,.ms-panel button{width:auto;min-width:0;flex:1;margin:0;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 8);font-size:calc(var(--rpx) * 25);line-height:1.4;color:#554a31;background:#e8ddc1;border-radius:calc(var(--rpx) * 9)}.ms-table button::after,.ms-panel button::after{border:0}.ms-table button.ms-primary,.ms-panel button.ms-primary,.ms-table button.ms-selected{color:#fff;background:#98572f;font-weight:700}.ms-table button[disabled],.ms-panel button[disabled]{opacity:.4}.ms-table .ms-confirm{width:100%;margin-top:calc(var(--rpx) * 12)}.ms-panel>.ms-primary{width:100%;margin-top:calc(var(--rpx) * 18)}.ms-options input{width:45%;min-width:0;border:calc(var(--rpx) * 1) solid #dac6a1;background:#fff;padding:calc(var(--rpx) * 12);box-sizing:border-box;font-size:calc(var(--rpx) * 28)}.ms-pour{margin-top:calc(var(--rpx) * 12);font-size:calc(var(--rpx) * 23)}.ms-pour span{font-weight:800;color:#a66f27}.ms-spark{display:inline-block;margin-left:calc(var(--rpx) * 10);animation:ms-spark .5s ease-out both}.ms-actions .ms-heading>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes ms-count{from{opacity:.5;transform:translateY(calc(var(--rpx) * 6)) scale(.92)}to{opacity:1;transform:none}}@keyframes ms-spark{to{opacity:0;transform:translateY(calc(var(--rpx) * -16)) scale(1.3)}}@media(prefers-reduced-motion:reduce){.ms-number,.ms-spark{animation:none}}
.ms-number{transition:color .25s ease}.ms-gold{color:#a68a30}.ms-warm{color:#b68230}.ms-orange{color:#bc592d}.ms-hot{color:#b63a2b}
.ms-recent{margin-top:calc(var(--rpx) * 12);font-size:calc(var(--rpx) * 23);color:#835c31;font-weight:700}

.ms-vessel-row{display:flex;align-items:center;justify-content:center;gap:calc(var(--rpx) * 24);margin:calc(var(--rpx) * 12) 0}.ms-vessel-row .dv-vessel{width:calc(var(--rpx) * 154);height:calc(var(--rpx) * 156)}.ms-vessel-row .dv-number>span{font-size:calc(var(--rpx) * 39)}

.mb-table{padding-bottom:0}.mb-heading{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 12);font-weight:800;font-size:calc(var(--rpx) * 27);color:#655030}.mb-muted{font-size:calc(var(--rpx) * 21);line-height:1.5;color:#917c58;font-weight:400}.mb-vessel-panel{display:flex;align-items:center;gap:calc(var(--rpx) * 28);margin:calc(var(--rpx) * 20) 0;padding:calc(var(--rpx) * 22);background:#f8efd9;border:calc(var(--rpx) * 1) solid #d1bd95;border-radius:calc(var(--rpx) * 18)}.mb-vessel{position:relative;flex:0 0 calc(var(--rpx) * 190);height:calc(var(--rpx) * 200);border:calc(var(--rpx) * 5) solid #b8a984;border-top:calc(var(--rpx) * 9) solid #d8cba8;border-radius:calc(var(--rpx) * 20) calc(var(--rpx) * 20) calc(var(--rpx) * 55) calc(var(--rpx) * 55);overflow:hidden;box-shadow:inset calc(var(--rpx) * 8) 0 calc(var(--rpx) * 12) #fff9,calc(var(--rpx) * 4) calc(var(--rpx) * 5) calc(var(--rpx) * 12) #684b2420;background:#fafff84d}.mb-water{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(#e3b83fdd,#ad702bcc);transition:height .25s ease}.mb-wave{position:absolute;left:-25%;width:150%;height:calc(var(--rpx) * 24);top:calc(var(--rpx) * -12);border-radius:50%;background:#efd05abb;animation:mb-wave 1.8s ease-in-out infinite}.mb-wave.two{opacity:.6;animation-direction:reverse;top:calc(var(--rpx) * -10)}.mb-glass-shine{position:absolute;left:calc(var(--rpx) * 12);top:calc(var(--rpx) * 15);width:calc(var(--rpx) * 12);bottom:calc(var(--rpx) * 22);background:#fff8;border-radius:50%;pointer-events:none}.mb-pot{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#624626;text-shadow:0 calc(var(--rpx) * 1) #fff9}.mb-pot>span{font-size:calc(var(--rpx) * 49);line-height:1.15;font-weight:900;font-variant-numeric:tabular-nums}.mb-pot>div{font-size:calc(var(--rpx) * 22)}.mb-vessel-copy{flex:1;min-width:0}.mb-status{font-size:calc(var(--rpx) * 28);font-weight:800;word-break:break-all}.mb-recent{font-size:calc(var(--rpx) * 23);color:#aa6d32;margin-top:calc(var(--rpx) * 16);min-height:calc(var(--rpx) * 34)}.mb-bubble{position:absolute;width:calc(var(--rpx) * 10);height:calc(var(--rpx) * 10);border:calc(var(--rpx) * 2) solid #fff8;border-radius:50%;bottom:0;animation:mb-bubble 2s linear infinite}.mb-bubble.b1{left:30%}.mb-bubble.b2{left:70%;animation-delay:.8s}.mb-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:calc(var(--rpx) * 10);padding:calc(var(--rpx) * 16) calc(var(--rpx) * 8);background:#eddfc17a;border:calc(var(--rpx) * 1) solid #d1bc90;border-radius:calc(var(--rpx) * 20)}.room-page .mb-grid button.mb-ball{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-width:0;aspect-ratio:1;margin:0;padding:0;line-height:1;border:calc(var(--rpx) * 1) solid #503321;border-radius:50%;background:radial-gradient(circle at 32% 23%,#a18468 0%,#76513a 32%,#513423 72%,#392316 100%);box-shadow:inset calc(var(--rpx) * -3) calc(var(--rpx) * -5) calc(var(--rpx) * 7) #25150e66,inset calc(var(--rpx) * 2) calc(var(--rpx) * 2) calc(var(--rpx) * 5) #d0b59044,0 calc(var(--rpx) * 4) calc(var(--rpx) * 5) #442d2428;color:#fff1d9;font-size:calc(var(--rpx) * 27);font-weight:900;overflow:visible}.room-page .mb-grid button.mb-ball::after{border:0}.room-page .mb-grid button.mb-ball[disabled]{opacity:1}.room-page .mb-grid.inactive button.mb-ball:not(.removed){opacity:.7}.room-page .mb-grid button.mb-ball.removed{opacity:0;pointer-events:none;box-shadow:none}.room-page .mb-grid button.mb-ball.mine{opacity:1;background:radial-gradient(circle at 30% 23%,#ffd0a1,#b74e32 60%,#663126);color:white;animation:mb-hit .5s ease-out}.mb-seats{margin-top:calc(var(--rpx) * 18)}.mb-seat{position:relative;display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 12);margin:calc(var(--rpx) * 8) 0;padding:calc(var(--rpx) * 14);border:calc(var(--rpx) * 1) solid #d4bf98;border-radius:calc(var(--rpx) * 10);overflow:hidden;font-size:calc(var(--rpx) * 24)}.mb-seat.acting{background:#ead9ae;border-color:#b88d4c}.mb-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mb-actions{position:fixed;bottom:0;left:calc(var(--rpx) * 24);right:calc(var(--rpx) * 24);z-index:12;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 14) + env(safe-area-inset-bottom));background:#faf0d9;border:calc(var(--rpx) * 1) solid #c6a974;border-radius:calc(var(--rpx) * 16) calc(var(--rpx) * 16) 0 0;box-shadow:0 calc(var(--rpx) * -4) calc(var(--rpx) * 18) #624b2522}.mb-action-row{display:flex;align-items:center;gap:calc(var(--rpx) * 16);margin-top:calc(var(--rpx) * 12);font-size:calc(var(--rpx) * 22);color:#8a7350}.mb-action-row>span{flex:1;min-width:0}.room-page button.mb-primary{width:auto;min-width:calc(var(--rpx) * 100);margin:0;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 22);background:#975930;color:#fff8e6;font-size:calc(var(--rpx) * 26);line-height:1.4;border-radius:calc(var(--rpx) * 9)}.room-page button.mb-primary::after{border:0}.room-page button.mb-primary[disabled]{opacity:1}.room-page button.mb-primary.mb-unavailable{opacity:.42}.mb-result{padding:calc(var(--rpx) * 22);margin:calc(var(--rpx) * 18) 0;border-radius:calc(var(--rpx) * 16);font-size:calc(var(--rpx) * 32);font-weight:800}.mb-result .mb-primary{margin-top:calc(var(--rpx) * 14)}.mb-settings{padding:calc(var(--rpx) * 26);background:#f7edd7;border:calc(var(--rpx) * 1) solid #d0b891;border-radius:calc(var(--rpx) * 16)}.mb-field{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 16);margin:calc(var(--rpx) * 20) 0;font-size:calc(var(--rpx) * 25)}.mb-field input{width:calc(var(--rpx) * 140);padding:calc(var(--rpx) * 14);background:#fff8e8;border:calc(var(--rpx) * 1) solid #c3a779;color:#624b2d}.mb-settings button.mb-primary{width:100%}.mb-fx-layer{position:fixed;inset:0;pointer-events:none;z-index:35}.mb-fx{position:absolute;pointer-events:none;animation:mb-float 1.6s ease-out both;text-align:center}.mb-fx-amount{font-size:calc(var(--rpx) * 76);font-weight:900;color:#f9d45c;text-shadow:0 calc(var(--rpx) * 3) #955921,0 0 calc(var(--rpx) * 18) #ffc933,0 0 calc(var(--rpx) * 32) #c99537;line-height:1}.mb-fx-rays{position:absolute;inset:calc(var(--rpx) * -25);font-size:calc(var(--rpx) * 110);color:#ffdb7280;animation:mb-burst .7s ease-out both}.mb-hit-label{display:block;font-size:calc(var(--rpx) * 42);font-weight:900;color:#a93624;text-shadow:0 calc(var(--rpx) * 2) #ffe3ac}.mb-fx.hit .mb-fx-amount{color:#ffb15b}@keyframes mb-float{0%{opacity:1;transform:translateY(calc(var(--rpx) * 36)) scale(.85)}15%{opacity:1;transform:translateY(calc(var(--rpx) * 10)) scale(1.16)}65%{opacity:1}100%{opacity:0;transform:translateY(calc(var(--rpx) * -170)) scale(.9)}}@keyframes mb-burst{to{opacity:0;transform:scale(1.8) rotate(55deg)}}@keyframes mb-wave{0%,100%{transform:translateX(-6%) rotate(-3deg)}50%{transform:translateX(6%) rotate(3deg)}}@keyframes mb-bubble{to{transform:translateY(calc(var(--rpx) * -150));opacity:0}}@keyframes mb-hit{50%{transform:scale(1.16);box-shadow:0 0 calc(var(--rpx) * 28) #c24c25}}@media(prefers-reduced-motion:reduce){.mb-fx,.mb-fx-rays,.mb-wave,.mb-bubble,.mb-ball.mine{animation:none}.mb-water{transition:none}}

.mb-dock-pot{font-size:calc(var(--rpx) * 22);color:#8a704c;margin-top:calc(var(--rpx) * 7)}.mb-dock-pot span{font-size:calc(var(--rpx) * 31);color:#ac762d;font-weight:900;margin:0 calc(var(--rpx) * 6)}.room-page .mb-grid button.mb-ball.burst{opacity:1;animation:mb-ball-pop .65s ease-out both;pointer-events:none}.room-page .mb-grid button.mb-ball.burst::before{content:'✦';position:absolute;inset:calc(var(--rpx) * -18);display:flex;align-items:center;justify-content:center;color:#ffe276;font-size:calc(var(--rpx) * 90);text-shadow:0 0 calc(var(--rpx) * 15) #e6ab26;animation:mb-shards .65s ease-out both;pointer-events:none}@keyframes mb-ball-pop{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.28)}65%{opacity:.8;transform:scale(.7) rotate(22deg)}100%{opacity:0;transform:scale(.05) rotate(50deg)}}@keyframes mb-shards{0%{opacity:0;transform:scale(.5)}35%{opacity:1}100%{opacity:0;transform:scale(1.75) rotate(60deg)}}@media(prefers-reduced-motion:reduce){.room-page .mb-grid button.mb-ball.burst{animation:none;opacity:0}.room-page .mb-grid button.mb-ball.burst::before{display:none;animation:none}}

.mb-vessel.mb-filling::after{content:'';position:absolute;left:47%;top:0;width:calc(var(--rpx) * 9);height:100%;background:linear-gradient(90deg,#ffecad44,#e7ac31cc,#fff4c466);transform-origin:top;animation:mb-pour .6s ease-out infinite;pointer-events:none}.mb-vessel.mb-filling{box-shadow:inset calc(var(--rpx) * 8) 0 calc(var(--rpx) * 12) #fff9,0 0 calc(var(--rpx) * 20) #dcad5270}@keyframes mb-pour{0%{transform:scaleY(.1);opacity:0}30%{opacity:.9}100%{transform:scaleY(1);opacity:0}}@media(prefers-reduced-motion:reduce){.mb-vessel.mb-filling::after{display:none}}

.mine-battle-room .room-exit-control[disabled]{opacity:1}
.mb-vessel-slot{flex:0 0 calc(var(--rpx) * 190)}
.mb-pot>span,.mb-dock-pot span{transition:color .22s ease}
.mb-settlement{position:relative;overflow:hidden;box-sizing:border-box;margin:calc(var(--rpx) * 22) 0;padding:calc(var(--rpx) * 38) calc(var(--rpx) * 28) calc(var(--rpx) * 28);border:calc(var(--rpx) * 2) solid #8e4237;border-radius:calc(var(--rpx) * 22);text-align:center;background:radial-gradient(ellipse at 50% 15%,#8a4638 0%,#542d28 50%,#362320 100%);color:#fff0d6;box-shadow:0 calc(var(--rpx) * 8) calc(var(--rpx) * 26) #49261f40;animation:mb-result-enter .55s ease-out both}
.mb-explosion-mark{position:relative;display:flex;align-items:center;justify-content:center;width:calc(var(--rpx) * 116);height:calc(var(--rpx) * 116);margin:calc(var(--rpx) * 8) auto calc(var(--rpx) * 20);background:radial-gradient(circle at 33% 22%,#e99462,#9b3429 60%,#66251f);border:calc(var(--rpx) * 2) solid #d59366;border-radius:50%;font-size:calc(var(--rpx) * 56);font-weight:900;box-shadow:0 0 calc(var(--rpx) * 35) #d1724740}
.mb-explosion-ring{position:absolute;inset:calc(var(--rpx) * -12);border:calc(var(--rpx) * 3) solid #e5ac70;border-radius:50%;pointer-events:none;animation:mb-result-ring .7s ease-out both}
.mb-settlement-title{font-size:calc(var(--rpx) * 72);line-height:1.15;font-weight:900;letter-spacing:calc(var(--rpx) * 8);color:#ffd59b;text-shadow:0 calc(var(--rpx) * 3) 0 #3c201b}
.mb-settlement-name{font-size:calc(var(--rpx) * 29);margin-top:calc(var(--rpx) * 18);word-break:break-all}
.mb-settlement-drink{margin:calc(var(--rpx) * 22) 0 calc(var(--rpx) * 26)}.mb-settlement-drink>span{font-size:calc(var(--rpx) * 25);color:#e9c5a4}.mb-settlement-drink>div{font-size:calc(var(--rpx) * 108);font-weight:900;line-height:1.1;color:#fff0d6;font-variant-numeric:tabular-nums}
.room-page .mb-settlement button.mb-next{display:block;width:100%;background:#eed5aa;color:#5a3027;font-weight:800;padding:calc(var(--rpx) * 20);box-sizing:border-box}
.mb-settlement-wait{margin-top:calc(var(--rpx) * 24);font-size:calc(var(--rpx) * 23);color:#dfb999}
@keyframes mb-result-enter{0%{transform:scale(.95) translateY(calc(var(--rpx) * 10))}55%{transform:scale(1.015)}100%{transform:none}}
@keyframes mb-result-ring{0%{opacity:1;transform:scale(.7)}100%{opacity:0;transform:scale(1.65)}}
@media(prefers-reduced-motion:reduce){.mb-settlement,.mb-explosion-ring{animation:none}.mb-pot>span,.mb-dock-pot span{transition:none}.mb-explosion-ring{display:none}}

.jy-table{padding-bottom:0}.jy-header{position:relative;padding:calc(var(--rpx) * 6) calc(var(--rpx) * 150) calc(var(--rpx) * 16) 0;min-height:calc(var(--rpx) * 65)}.jy-title{font-size:calc(var(--rpx) * 32);font-weight:800;color:#564125}.jy-muted{font-size:calc(var(--rpx) * 22);line-height:1.5;color:#8a7859}.jy-rule-button{position:absolute;right:0;top:0;width:auto!important;margin:0!important;padding:calc(var(--rpx) * 12)!important;font-size:calc(var(--rpx) * 23)!important;color:#8e613b!important;background:transparent!important}.jy-panel,.jy-board{margin:calc(var(--rpx) * 16) 0;padding:calc(var(--rpx) * 22);background:#fbf4e2;border:calc(var(--rpx) * 1) solid #d4bf95;border-radius:calc(var(--rpx) * 18)}.jy-board{background:radial-gradient(ellipse,#fff8e5,#eadbb8);border:calc(var(--rpx) * 3) double #bca06c;text-align:center}.jy-row{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 14);min-width:0}.jy-public-group{display:flex;justify-content:center;gap:calc(var(--rpx) * 10);margin:calc(var(--rpx) * 18) 0}.jy-public-card{width:calc(var(--rpx) * 116);height:calc(var(--rpx) * 166);min-width:0;flex:0 1 calc(var(--rpx) * 116)}.jy-card{position:relative;width:100%;height:100%;border:calc(var(--rpx) * 2) solid #a7874f;border-radius:calc(var(--rpx) * 10);background:#eadbc0;overflow:hidden;box-shadow:0 calc(var(--rpx) * 3) calc(var(--rpx) * 9) #694b2830}.jy-card-image{position:absolute;width:100%;height:100%;inset:0}.jy-card-name{position:absolute;left:0;right:0;bottom:0;padding:calc(var(--rpx) * 6) 0;background:linear-gradient(transparent,#352617dd);color:#fff3ce;font-size:calc(var(--rpx) * 24);font-weight:800;text-align:center;text-shadow:0 calc(var(--rpx) * 1) calc(var(--rpx) * 3) #2e2117}.jy-card.hidden{background:repeating-linear-gradient(45deg,#6e6044,#6e6044 calc(var(--rpx) * 4),#c9b587 calc(var(--rpx) * 5),#c9b587 calc(var(--rpx) * 6))}.jy-card.hidden::after{content:'西 游';position:absolute;inset:20%;border:calc(var(--rpx) * 2) solid #dccaa1;display:flex;align-items:center;justify-content:center;color:#efe0bc;font-size:calc(var(--rpx) * 22);font-weight:800}.jy-placeholder{padding:calc(var(--rpx) * 45) 0;color:#9d8358;font-size:calc(var(--rpx) * 26)}.jy-hand-grid{display:flex;gap:calc(var(--rpx) * 12);flex-wrap:wrap;margin-top:calc(var(--rpx) * 16)}.jy-hand-stack{position:relative;width:calc((100% - calc(var(--rpx) * 36))/4);height:calc(var(--rpx) * 172);margin-bottom:calc(var(--rpx) * 20)}.jy-hand-stack .jy-card{height:calc(var(--rpx) * 148)}.jy-hand-count{text-align:center;font-size:calc(var(--rpx) * 22);color:#8e6a36;line-height:1.4}.jy-hand-stack.selected .jy-card{border:calc(var(--rpx) * 4) solid #ad7235;box-shadow:0 0 0 calc(var(--rpx) * 3) #e8c87b;transform:translateY(calc(var(--rpx) * -5))}.jy-hand-stack.disabled{opacity:.52}.jy-hand-stack .jy-card-name{font-size:calc(var(--rpx) * 22)}.jy-seat{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 16);padding:calc(var(--rpx) * 16);min-height:calc(var(--rpx) * 74);border-bottom:calc(var(--rpx) * 1) solid #dfcfaf;font-size:calc(var(--rpx) * 25)}.jy-seat-name{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jy-seat.acting{background:#eddfbd;border-left:calc(var(--rpx) * 4) solid #b87c3b}.jy-seat-count{font-size:calc(var(--rpx) * 24);font-variant-numeric:tabular-nums;color:#826c47}.jy-actions{position:fixed;left:calc(var(--rpx) * 24);right:calc(var(--rpx) * 24);bottom:0;z-index:12;background:#faf1dc;border:calc(var(--rpx) * 1) solid #c5aa75;border-radius:calc(var(--rpx) * 16) calc(var(--rpx) * 16) 0 0;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 14) + env(safe-area-inset-bottom));box-shadow:0 calc(var(--rpx) * -4) calc(var(--rpx) * 16) #63502a24;max-height:34vh;overflow-y:auto}.jy-table button,.jy-modal button{width:auto;min-width:0;margin:0;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 10);line-height:1.4;font-size:calc(var(--rpx) * 25);border-radius:calc(var(--rpx) * 9);background:#e6d9b9;color:#51422b}.jy-table button::after,.jy-modal button::after{border:0}.jy-table button.jy-primary,.jy-table button.selected{background:#975930;color:#fff9e9;font-weight:700}.jy-table button[disabled]{opacity:.45}.jy-options{display:flex;gap:calc(var(--rpx) * 10);margin-top:calc(var(--rpx) * 12)}.jy-options button{flex:1}.jy-panel>.jy-primary{width:100%;margin-top:calc(var(--rpx) * 14)}.jy-confirm{width:100%!important;margin-top:calc(var(--rpx) * 14)!important}.jy-notice{position:fixed;left:10%;right:10%;top:30%;z-index:45;padding:calc(var(--rpx) * 28) calc(var(--rpx) * 24);background:#faefd5;border:calc(var(--rpx) * 3) double #bb9552;border-radius:calc(var(--rpx) * 22);text-align:center;box-shadow:0 calc(var(--rpx) * 10) calc(var(--rpx) * 50) #58412340;pointer-events:none;animation:jy-notice .3s ease-out}.jy-notice.lose{color:#9b4938;background:#f5e4d7;border-color:#b46e58}.jy-notice.win{color:#97721f;box-shadow:0 0 calc(var(--rpx) * 40) #e0bb5a70}.jy-notice-title{font-size:calc(var(--rpx) * 35);font-weight:900}.jy-notice-detail{font-size:calc(var(--rpx) * 24);margin-top:calc(var(--rpx) * 8)}.jy-mask{position:fixed;inset:0;z-index:100;background:#0008;display:flex;align-items:center;justify-content:center;padding:calc(var(--rpx) * 28)}.jy-modal{width:100%;max-height:82vh;border-radius:calc(var(--rpx) * 18);background:#fbf2dc;padding:calc(var(--rpx) * 22);box-sizing:border-box}.jy-modal-head{position:relative;padding-right:calc(var(--rpx) * 120);min-height:calc(var(--rpx) * 58)}.jy-modal-head button{position:absolute;right:0;top:0;background:transparent;padding:calc(var(--rpx) * 8);font-size:calc(var(--rpx) * 24)}.jy-rules-scroll{max-height:65vh}.jy-rule-row{padding:calc(var(--rpx) * 18) 0;border-bottom:calc(var(--rpx) * 1) solid #e1cfab}.jy-rule-pair{display:flex;align-items:center;gap:calc(var(--rpx) * 12);margin-top:calc(var(--rpx) * 8);flex-wrap:wrap}.jy-rule-card{width:calc(var(--rpx) * 72);height:calc(var(--rpx) * 104)}.jy-rule-card .jy-card-name{font-size:calc(var(--rpx) * 18);padding:calc(var(--rpx) * 4) 0}.jy-arrow{font-size:calc(var(--rpx) * 26);color:#a27b40}.jy-history{font-size:calc(var(--rpx) * 22);color:#8b7551;line-height:1.8;margin-top:calc(var(--rpx) * 18)}@keyframes jy-notice{from{transform:scale(.9);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.jy-notice{animation:none}.jy-hand-stack.selected .jy-card{transform:none}}
.jy-role-options{flex-wrap:wrap}.jy-role-options button{flex:1 0 20%;min-width:calc(var(--rpx) * 80)}.jy-row>.room-hand-toggle{flex:0 0 auto;width:auto;margin:0}.jy-actions .jy-muted{padding:calc(var(--rpx) * 14) 0 0}
.jy-public-card{animation:jy-card-play .28s ease-out}.jy-hand-stack{animation:jy-card-play .3s ease-out}@keyframes jy-card-play{from{opacity:.35;transform:translateY(calc(var(--rpx) * 12)) rotate(-3deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.jy-public-card,.jy-hand-stack{animation:none}}
.jy-public-card{width:calc(var(--rpx) * 112);height:calc(var(--rpx) * 168);flex:0 0 calc(var(--rpx) * 112)}.jy-rule-card{width:calc(var(--rpx) * 72);height:calc(var(--rpx) * 108);flex-shrink:0}.jy-card-image{object-fit:contain}.jy-physical-scroll{width:100%;height:calc(var(--rpx) * 244);white-space:nowrap}.jy-physical-row{display:inline-flex;align-items:flex-end;padding:calc(var(--rpx) * 30) calc(var(--rpx) * 10) calc(var(--rpx) * 12);min-width:100%;box-sizing:border-box}.jy-physical-card{position:relative;flex:0 0 calc(var(--rpx) * 132);width:calc(var(--rpx) * 132);height:calc(var(--rpx) * 198);margin-right:calc(var(--rpx) * -44);transition:transform .16s ease}.jy-physical-card:last-child{margin-right:calc(var(--rpx) * 8)}.jy-physical-card.selected{transform:translateY(calc(var(--rpx) * -22))}.jy-physical-card.selected .jy-card{border-color:#b97829;box-shadow:0 0 0 calc(var(--rpx) * 3) #e4bd58}.jy-physical-card.disabled{filter:brightness(.78)}.jy-hand-dock{max-height:42vh}.jy-table{padding-bottom:0}.jy-throw{animation:jy-throw .6s cubic-bezier(.2,.7,.3,1) both}@keyframes jy-throw{from{transform:translateY(calc(var(--rpx) * 220)) scale(.7) rotate(-9deg);opacity:.3}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.jy-throw{animation:none}.jy-physical-card{transition:none}}
.jy-card-edge-name{position:absolute;left:calc(var(--rpx) * 5);top:calc(var(--rpx) * 8);z-index:1;width:calc(var(--rpx) * 24);padding:calc(var(--rpx) * 4) calc(var(--rpx) * 2);border-radius:calc(var(--rpx) * 5);color:#fff6df;background:#5b3d29d9;font-size:calc(var(--rpx) * 20);line-height:1.1;text-align:center;white-space:normal;word-break:break-all;pointer-events:none}.jy-seat-back{width:calc(var(--rpx) * 28);height:calc(var(--rpx) * 42);flex:0 0 calc(var(--rpx) * 28)}.jy-seat-back .jy-card{border-radius:calc(var(--rpx) * 3)}.jy-seat-back .jy-card::after{content:"";border-width:calc(var(--rpx) * 1)}


.jy-card{box-sizing:border-box}

.jy-seat{position:relative;box-sizing:border-box;border:calc(var(--rpx) * 1) solid #ddcaa5;border-radius:calc(var(--rpx) * 12);overflow:hidden;margin:calc(var(--rpx) * 10) 0}.jy-seat.acting{border:calc(var(--rpx) * 2) solid #b87c3b}.jy-physical-row{padding-left:0;padding-right:0}.jy-seat.room-win-surface::after{border-radius:inherit}

.gr-mask { position: fixed; z-index: 160; inset: 0; display: flex; align-items: center; justify-content: center; padding: calc(var(--rpx) * 32) calc(var(--rpx) * 24); box-sizing: border-box; background: rgba(30, 27, 22, .55); }
.gr-modal { width: 100%; max-width: calc(var(--rpx) * 700); max-height: 86vh; background: #f5f0e3; border: calc(var(--rpx) * 2) solid #b5a98e; border-radius: calc(var(--rpx) * 20); box-shadow: 0 calc(var(--rpx) * 20) calc(var(--rpx) * 70) rgba(38, 30, 16, .25); overflow: hidden; color: #302e25; }
.gr-heading { position: relative; padding: calc(var(--rpx) * 30) calc(var(--rpx) * 92) calc(var(--rpx) * 24) calc(var(--rpx) * 30); border-bottom: calc(var(--rpx) * 1) solid #d4c9b2; min-height: calc(var(--rpx) * 44); }
.gr-title { font-size: calc(var(--rpx) * 32); line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.gr-close { position: absolute; right: calc(var(--rpx) * 16); top: calc(var(--rpx) * 17); margin: 0; padding: 0; width: calc(var(--rpx) * 64); height: calc(var(--rpx) * 64); line-height: calc(var(--rpx) * 60); border-radius: 50%; color: #574d39; background: #e9dfca; font-size: calc(var(--rpx) * 42); }
.gr-close::after { border: 0; }
.gr-scroll { max-height: 68vh; height: 68vh; }
.gr-content { padding: calc(var(--rpx) * 4) calc(var(--rpx) * 30) calc(var(--rpx) * 40); }
.gr-section { padding-top: calc(var(--rpx) * 26); }
.gr-section-title { font-size: calc(var(--rpx) * 28); line-height: 1.5; font-weight: 700; color: #74603a; margin-bottom: calc(var(--rpx) * 12); }
.gr-line { font-size: calc(var(--rpx) * 25); line-height: 1.85; margin: 0 0 calc(var(--rpx) * 14); overflow-wrap: anywhere; }
.gr-relations { padding-top: calc(var(--rpx) * 28); }
.gr-cycle-caption { text-align: center; font-size: calc(var(--rpx) * 27); line-height: 1.6; font-weight: 700; }
.gr-relation-note { font-size: calc(var(--rpx) * 23); line-height: 1.7; color: #776f5e; margin: calc(var(--rpx) * 12) 0 calc(var(--rpx) * 22); }
.gr-cycle { display: flex; gap: calc(var(--rpx) * 10); align-items: stretch; margin: calc(var(--rpx) * 16) 0 calc(var(--rpx) * 28); }
.gr-family { flex: 1; min-width: 0; padding: calc(var(--rpx) * 14) calc(var(--rpx) * 6); border: calc(var(--rpx) * 1) solid #d4c9b2; border-radius: calc(var(--rpx) * 10); background: #ede5d4; text-align: center; }
.gr-family-title { font-size: calc(var(--rpx) * 25); font-weight: 700; margin-bottom: calc(var(--rpx) * 14); }
.gr-family-cards { display: flex; justify-content: center; flex-wrap: wrap; gap: calc(var(--rpx) * 7); }
.gr-role { width: calc(var(--rpx) * 70); flex: 0 0 calc(var(--rpx) * 70); text-align: center; }
.gr-role-image { display: block; width: calc(var(--rpx) * 70); height: calc(var(--rpx) * 105); border-radius: calc(var(--rpx) * 4); }
.gr-role-name { display: block; font-size: calc(var(--rpx) * 21); line-height: 1.6; white-space: nowrap; }
.gr-beats { margin-top: calc(var(--rpx) * 12); font-size: calc(var(--rpx) * 22); color: #78603a; }
.gr-order { margin-bottom: calc(var(--rpx) * 22); display: flex; align-items: center; gap: calc(var(--rpx) * 20); }
.gr-order-label { flex: 0 0 calc(var(--rpx) * 112); font-size: calc(var(--rpx) * 24); color: #75674d; }
.gr-order-cards { display: flex; align-items: center; justify-content: center; gap: calc(var(--rpx) * 10); }
.gr-order-arrow { font-size: calc(var(--rpx) * 34); color: #9a7b44; }

/* Shared room rhythm and result surfaces. */
.room-page .room-hero{display:flex;align-items:center;gap:calc(var(--rpx) * 20);margin-bottom:calc(var(--rpx) * 20);padding-bottom:calc(var(--rpx) * 18)}.room-page .room-hero>div:first-child{flex:1;min-width:0}.room-page .room-hero .title{font-size:calc(var(--rpx) * 34);line-height:1.35}.room-page .room-hero .subtitle{font-size:calc(var(--rpx) * 21);line-height:1.5}.room-page .room-hero-actions{display:flex;flex:0 0 auto;gap:calc(var(--rpx) * 10);width:auto}.room-page .settings-button{flex:0 0 auto;width:auto;min-width:calc(var(--rpx) * 84);margin:0;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 16);line-height:1.5;font-size:calc(var(--rpx) * 24)}.room-page .room-kicker{font-size:calc(var(--rpx) * 20);line-height:1.5;word-break:normal}.room-page .room-content{position:relative}.room-hand-toggle{display:block;width:100%;margin:calc(var(--rpx) * 8) 0;padding:calc(var(--rpx) * 8) 0;background:transparent!important;border:0;font-size:calc(var(--rpx) * 22);line-height:1.6;color:#97774c;text-align:right}.room-hand-toggle::after{border:0}.room-seat-expand{flex-shrink:0;font-size:calc(var(--rpx) * 18);color:#9b8b6e;padding:calc(var(--rpx) * 8)}.room-reset-panel{margin:calc(var(--rpx) * 20) 0;padding:calc(var(--rpx) * 20);background:#fbf7ed;border:calc(var(--rpx) * 1) solid #ddd0b7;border-radius:calc(var(--rpx) * 14)}.room-reset-panel .muted{font-size:calc(var(--rpx) * 21);margin-top:calc(var(--rpx) * 8)}.room-reset-button{width:100%;margin:0;background:#eadfce;color:#965735;font-size:calc(var(--rpx) * 27)}.room-win-surface{position:relative;overflow:hidden;background:linear-gradient(105deg,#fff8df,#f0dfad,#fff8e5)!important;border-color:#c7a44d!important;box-shadow:inset 0 0 0 calc(var(--rpx) * 1) #e9c86a,0 calc(var(--rpx) * 2) calc(var(--rpx) * 14) #e3bd4930}.room-win-surface::after{content:'';position:absolute;pointer-events:none;inset:0;background:linear-gradient(110deg,transparent 25%,#fff8c680 45%,transparent 65%);transform:translateX(-120%);animation:room-win-glint 3.4s ease-in-out infinite}.room-loss-surface{border-left:calc(var(--rpx) * 4) solid #b57565!important;background:#f5ede5!important;animation:room-loss-enter .4s ease-out}.room-loss-surface .hd-title,.room-loss-surface .dr-points{color:#9c5548}.hd-result:not(.winner){border-left:calc(var(--rpx) * 3) solid #b57565;padding-left:calc(var(--rpx) * 12)}.rb-result .rb-loser{color:#a64e3d;font-weight:800}.hd-seat,.dr-seat{min-width:0}.hd-seat-info,.dr-seat-info{min-width:0;flex:1}.hd-seat-name,.dr-seat-info>.dr-title{font-size:calc(var(--rpx) * 25);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hd-seat.room-seat-expanded,.dr-seat.room-seat-expanded{flex-wrap:wrap}.room-seat-expanded .hd-mini-cards{flex-basis:100%;justify-content:center;margin-top:calc(var(--rpx) * 12)}.room-seat-expanded .hd-mini-cards>div{width:calc(var(--rpx) * 100);height:calc(var(--rpx) * 142)}.room-seat-expanded .dr-small-card{width:calc(var(--rpx) * 100);height:calc(var(--rpx) * 142)}.tt-group-summary{min-height:calc(var(--rpx) * 92);padding-top:calc(var(--rpx) * 12);padding-bottom:calc(var(--rpx) * 12)}.tt-group-name{font-size:calc(var(--rpx) * 25)}.tt-tables .tt-caption{font-size:calc(var(--rpx) * 21)}.tt-tables .tt-member-faces{flex-shrink:0}.tt-tables .tt-summary-cards{max-width:calc(var(--rpx) * 180)}.hd-board,.dr-board,.tt-stage{border-radius:calc(var(--rpx) * 18);box-shadow:0 calc(var(--rpx) * 3) calc(var(--rpx) * 14) #80652b16}.hd-modal,.dr-modal{max-height:82vh;box-sizing:border-box}.hd-modal-header,.dr-modal .dr-header{position:relative;padding-right:calc(var(--rpx) * 130);min-height:calc(var(--rpx) * 58)}.hd-close-rules,.dr-modal .dr-rules-button{position:absolute;right:0;top:0;margin:0!important;width:calc(var(--rpx) * 118)!important}.hd-modal-mask,.dr-mask{z-index:100}.dr-win{position:relative;display:inline-block;color:#a07b23;text-shadow:0 0 calc(var(--rpx) * 10) #e9c950;font-weight:900;animation:room-win-breathe 2.4s ease-in-out infinite}@keyframes room-win-glint{0%,25%{transform:translateX(-120%)}75%,100%{transform:translateX(120%)}}@keyframes room-win-breathe{50%{text-shadow:0 0 calc(var(--rpx) * 18) #dfb139}}@keyframes room-loss-enter{from{opacity:.5;transform:translateY(calc(var(--rpx) * 5))}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.room-win-surface::after,.dr-win,.room-loss-surface{animation:none}.room-win-surface::after{display:none}}
/* Fixed action trays leave enough scroll space for the last seat. */
.holdem-room .room-content{padding-bottom:calc(var(--rpx) * 380)}.room-page .hd-actions{padding:calc(var(--rpx) * 12) calc(var(--rpx) * 14) calc(calc(var(--rpx) * 12) + env(safe-area-inset-bottom));max-height:38vh;overflow-y:auto}.hd-actions .hd-action-grid{gap:calc(var(--rpx) * 8)}.hd-actions .hd-action-grid button{padding:calc(var(--rpx) * 10) calc(var(--rpx) * 4);font-size:calc(var(--rpx) * 25);line-height:1.3;min-height:calc(var(--rpx) * 62)}.hd-actions .hd-action-grid button span{font-size:calc(var(--rpx) * 18);line-height:1.3;margin-top:calc(var(--rpx) * 3)}.hd-actions .hd-draft-total{padding:calc(var(--rpx) * 4) 0 calc(var(--rpx) * 8);font-size:calc(var(--rpx) * 22)}.hd-actions .hd-turn{font-size:calc(var(--rpx) * 22)}.room-dream-bet-dock,.dr-controls{position:fixed;bottom:0;left:calc(var(--rpx) * 24);right:calc(var(--rpx) * 24);z-index:12;margin:0!important;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 14) + env(safe-area-inset-bottom))!important;background:#f8f0dc!important;border:calc(var(--rpx) * 1) solid #d3bd8d;box-shadow:0 calc(var(--rpx) * -4) calc(var(--rpx) * 18) #5e4c2620;max-height:38vh;overflow-y:auto}.room-dream-bet-dock button,.dr-controls button{padding:calc(var(--rpx) * 10) calc(var(--rpx) * 6)!important;font-size:calc(var(--rpx) * 24)!important;line-height:1.4!important;min-height:calc(var(--rpx) * 60)}.room-dream-bet-dock .dr-draft{font-size:calc(var(--rpx) * 23)}.room-dream-bet-dock .dr-additions{margin:calc(var(--rpx) * 8) 0;gap:calc(var(--rpx) * 8)}.auto-ten-room .room-content{padding-bottom:calc(var(--rpx) * 560)}.at-panel .at-draft,.at-panel .at-drink{position:fixed;left:calc(var(--rpx) * 24);right:calc(var(--rpx) * 24);bottom:0;z-index:12;margin:0;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 12) + env(safe-area-inset-bottom));background:#fcf5e3;border:calc(var(--rpx) * 1) solid #d0b880;border-radius:calc(var(--rpx) * 16) calc(var(--rpx) * 16) 0 0;box-shadow:0 calc(var(--rpx) * -4) calc(var(--rpx) * 18) #5e4c2620;max-height:42vh;overflow-y:auto}.at-panel .at-draft button{padding:calc(var(--rpx) * 9) calc(var(--rpx) * 6);min-height:calc(var(--rpx) * 58);font-size:calc(var(--rpx) * 24)}.at-panel .at-additions,.at-panel .at-more,.at-panel .at-operations{margin-top:calc(var(--rpx) * 8);gap:calc(var(--rpx) * 8)}.at-panel .at-submit{margin-top:calc(var(--rpx) * 10)}.at-panel .at-draft-total{font-size:calc(var(--rpx) * 23)}.at-panel .at-draft-total>span{font-size:calc(var(--rpx) * 30)}.at-panel .at-caption{font-size:calc(var(--rpx) * 21)}
.room-page .room-actions-toggle{float:right;width:auto;min-width:calc(var(--rpx) * 82);flex:0 0 auto;margin:0;padding:calc(var(--rpx) * 4) calc(var(--rpx) * 8)!important;font-size:calc(var(--rpx) * 21)!important;line-height:1.5!important;min-height:calc(var(--rpx) * 36)!important;background:transparent!important;color:#927046}.room-actions-toggle::after{border:0}.hd-turn-row{display:block!important;min-height:calc(var(--rpx) * 34)}.at-panel .at-draft{max-height:34vh}.at-panel .at-draft-caption{display:none}.at-panel .at-draft .at-more{display:inline-flex;width:39%;vertical-align:top;margin-right:2%}.at-panel .at-draft .at-operations{display:inline-flex;width:59%;vertical-align:top}.at-panel .at-draft .at-more button,.at-panel .at-draft .at-operations button{font-size:calc(var(--rpx) * 21);padding:calc(var(--rpx) * 10) calc(var(--rpx) * 3)}.room-dream-bet-dock,.room-page .hd-actions{max-height:34vh}
/* Public card and live auction share one central row on crowded tables. */
.room-auto-center{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:calc(var(--rpx) * 14);align-items:stretch;margin-bottom:calc(var(--rpx) * 18)}
.room-auto-center .tt-stage,.room-auto-center .at-panel{margin:0;padding:calc(var(--rpx) * 16) calc(var(--rpx) * 12);min-width:0;box-sizing:border-box}
.room-auto-center .tt-card-stage{padding:calc(var(--rpx) * 12) 0}
.room-auto-center .tt-current-card,.ten-host .room-auto-center .tt-current-card{width:calc(var(--rpx) * 170);height:calc(var(--rpx) * 238)}
.room-auto-center .tt-deck-shadow,.ten-host .room-auto-center .tt-deck-shadow{width:calc(var(--rpx) * 166);height:calc(var(--rpx) * 233)}
.room-auto-center .tt-stage>.tt-caption,.room-auto-center .tt-table-ornament{display:none}
.room-auto-center .tt-stage-title{font-size:calc(var(--rpx) * 24);margin-top:calc(var(--rpx) * 4)}
.room-auto-center .tt-progress{font-size:calc(var(--rpx) * 18)}
.room-auto-center .tt-current-card .tt-center-rank{font-size:calc(var(--rpx) * 72)}
.room-auto-center .tt-current-card .tt-center-suit{font-size:calc(var(--rpx) * 44)}
.room-auto-center .tt-current-card .tt-corner{font-size:calc(var(--rpx) * 24)}
.room-auto-center .at-highest{flex-wrap:wrap;gap:calc(var(--rpx) * 8);margin:calc(var(--rpx) * 12) 0}
.room-auto-center .at-name{max-width:100%;flex-basis:100%;font-size:calc(var(--rpx) * 24)}
.room-auto-center .at-amount{font-size:calc(var(--rpx) * 34)}
.room-auto-center .at-choice{font-size:calc(var(--rpx) * 22);padding:calc(var(--rpx) * 4) calc(var(--rpx) * 10)}
.room-auto-center .at-countdown{font-size:64px}
.room-auto-center .at-caption{font-size:calc(var(--rpx) * 21)}
.ten-room.ten-host:not(.auto-ten-room) .room-content{padding-bottom:calc(var(--rpx) * 170)}
.ten-room.ten-host:not(.auto-ten-room) .tt-public-actions{position:fixed;bottom:0;left:calc(var(--rpx) * 24);right:calc(var(--rpx) * 24);z-index:12;background:#fcf5e3;margin:0;padding:calc(var(--rpx) * 14) calc(var(--rpx) * 16) calc(calc(var(--rpx) * 14) + env(safe-area-inset-bottom));border:calc(var(--rpx) * 1) solid #d3bd8d;border-radius:calc(var(--rpx) * 14) calc(var(--rpx) * 14) 0 0;box-shadow:0 calc(var(--rpx) * -4) calc(var(--rpx) * 18) #5e4c2620}
.dream-room .dr-board{padding:calc(var(--rpx) * 16) calc(var(--rpx) * 24)}.dream-room .dr-board-card{margin:calc(var(--rpx) * 10) auto}
/* Shared action contrast: neutral choices, solid primary, readable disabled. */
.room-page .hd-action-grid button,.room-page .dr-additions button,.room-page .dr-panel button,.room-page .at-draft button,.room-page .hd-cap button,.room-page .hd-mode-options button { background:#e8ddc8; color:#51402e; border-color:#cdbb9c; }
.room-page button.primary,.room-page button.dr-primary,.room-page .hd-confirm,.room-page .at-submit,.room-page .hd-action-grid .hd-allin,.room-page .at-operations .at-selected,.room-page .hd-mode-options .selected { background:#a4613d; color:#fff9ec; border-color:#945532; }
.room-page button[disabled],.room-page button.primary[disabled],.room-page button.dr-primary[disabled],.room-page .hd-action-grid button[disabled],.room-page .at-draft button[disabled] { opacity:1; background:#ddd5c7; color:#797061; border-color:#c8bfaf; box-shadow:none; }

.room-page .hd-action-grid .hd-all-in{background:#a4613d;color:#fff9ec}.room-page .hd-action-grid .hd-all-in[disabled]{background:#ddd5c7;color:#797061}
.room-page .room-hero{flex-direction:row;flex-wrap:nowrap}.room-page .room-hero-actions{align-self:center}
.room-page button.member-remove{flex:0 0 auto;width:auto;min-width:calc(var(--rpx) * 100);margin:0;padding:calc(var(--rpx) * 10) calc(var(--rpx) * 14);line-height:1.4;font-size:calc(var(--rpx) * 23);white-space:nowrap;border-radius:calc(var(--rpx) * 8);background:#ead7c4;color:#915333}.room-page button.member-remove::after{border:0}
.room-roster{padding:calc(var(--rpx) * 22);margin:calc(var(--rpx) * 16) 0 calc(var(--rpx) * 24);background:#f4ead3;border:calc(var(--rpx) * 1) solid #d3c09b;border-radius:calc(var(--rpx) * 16)}.room-roster-heading{display:flex;justify-content:space-between;font-size:calc(var(--rpx) * 27);font-weight:700;color:#665032}.room-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--rpx) * 18) calc(var(--rpx) * 14);margin-top:calc(var(--rpx) * 18)}.room-roster-person{display:flex;gap:calc(var(--rpx) * 12);align-items:center;min-width:0}.room-roster-avatar{width:calc(var(--rpx) * 56);height:calc(var(--rpx) * 56);flex:0 0 calc(var(--rpx) * 56);border-radius:50%}.room-roster-initial{display:flex;align-items:center;justify-content:center;font-size:calc(var(--rpx) * 24);color:#6c5030}.room-roster-copy{min-width:0}.room-roster-name{font-size:calc(var(--rpx) * 25);color:#443a2b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-roster-tag{font-size:calc(var(--rpx) * 20);color:#937d58;margin-top:calc(var(--rpx) * 4)}.room-page .manage-list .list-item{display:flex;gap:calc(var(--rpx) * 16);align-items:center}.room-page .manage-list .member-row{flex:1;min-width:0}.room-page .manage-list .member-row>div:last-child{min-width:0;flex:1}.room-page .manage-name{font-size:calc(var(--rpx) * 28);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-page .manage-list .muted{font-size:calc(var(--rpx) * 23);line-height:1.4}
.room-page .room-reset-button{min-height:calc(var(--rpx) * 80);line-height:1.5;padding:calc(var(--rpx) * 18) calc(var(--rpx) * 16);box-sizing:border-box}
/* The page reserves exactly the measured fixed dock height, in every game/state. */
.room-page .hd-table,.room-page .dr-table,.room-page .ms-table,.room-page .jy-table{padding-bottom:0!important}
.room-page .room-win-surface,.room-page .room-loss-surface{box-sizing:border-box;border:calc(var(--rpx) * 1) solid #c5a462;border-radius:calc(var(--rpx) * 12);overflow:hidden;background-clip:padding-box}
.room-page .room-loss-surface{border-color:#bc8a76}
.room-page .room-win-surface::after{border-radius:inherit;max-width:100%;max-height:100%}
.room-page .room-hero .room-hero-actions .settings-button{width:auto;min-width:calc(var(--rpx) * 84);height:auto;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 16);font-size:calc(var(--rpx) * 24);line-height:1.5;border-radius:calc(var(--rpx) * 12)}

.grouping-panel { padding: calc(var(--rpx) * 24); border: calc(var(--rpx) * 1) solid #d9c6a1; border-radius: calc(var(--rpx) * 16); background: #fffaf0; margin: calc(var(--rpx) * 18) 0; }
.grouping-title { font-size: calc(var(--rpx) * 32); font-weight: 700; }
.grouping-caption { color: #8b7c62; font-size: calc(var(--rpx) * 24); line-height: 1.6; margin: calc(var(--rpx) * 12) 0; }
.grouping-team { display: flex; gap: calc(var(--rpx) * 20); align-items: center; padding: calc(var(--rpx) * 16) 0; border-bottom: calc(var(--rpx) * 1) solid #e8dec8; }
.grouping-card { width: calc(var(--rpx) * 62); height: calc(var(--rpx) * 86); flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #244440; background: #f5e5bd; border: calc(var(--rpx) * 1) solid #c5ad78; border-radius: calc(var(--rpx) * 6); box-shadow: 0 calc(var(--rpx) * 3) calc(var(--rpx) * 8) #bba77744; font-size: calc(var(--rpx) * 28); font-weight: 700; }
.grouping-members { flex: 1; min-width: 0; }
.grouping-team-label { color: #8b7c62; font-size: calc(var(--rpx) * 22); margin-bottom: calc(var(--rpx) * 8); }
.grouping-member { display: inline-block; font-size: calc(var(--rpx) * 25); margin-right: calc(var(--rpx) * 16); overflow-wrap: anywhere; }
.grouping-member.is-mine { color: #a95f36; font-weight: 700; }
.grouping-game-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;width:0}
.grouping-variant{display:block;font-size:calc(var(--rpx) * 22);font-weight:400}
.grouping-vacancy { color: #a3957c; font-size: calc(var(--rpx) * 24); }
.grouping-actions { display: flex; gap: calc(var(--rpx) * 16); margin-top: calc(var(--rpx) * 20); }
.grouping-actions button { flex: 1; margin: 0; font-size: calc(var(--rpx) * 28); }
.grouping-mask { position: fixed; inset: 0; z-index: 160; background: #0008; display: flex; align-items: center; justify-content: center; padding: calc(var(--rpx) * 30); }
.grouping-dialog { box-sizing: border-box; width: 100%; max-height: 82vh; overflow-y: auto; background: #fff8e9; padding: calc(var(--rpx) * 28); border-radius: calc(var(--rpx) * 20); }
.grouping-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: calc(var(--rpx) * 16); font-weight: 700; margin-bottom: calc(var(--rpx) * 24); }
.grouping-dialog-head button { margin: 0; flex: 0 0 auto; padding: 0 calc(var(--rpx) * 12); font-size: calc(var(--rpx) * 25); background: transparent; }
.grouping-field { display: flex; justify-content: space-between; align-items: center; gap: calc(var(--rpx) * 20); min-height: calc(var(--rpx) * 90); font-size: calc(var(--rpx) * 27); }
.grouping-field input { width: calc(var(--rpx) * 160); background: #fff; border: calc(var(--rpx) * 1) solid #d9c6a1; padding: calc(var(--rpx) * 12); }
.grouping-card{position:relative;overflow:hidden}.grouping-card-frame{position:absolute;inset:0;width:100%;height:100%}.grouping-card span{position:relative;z-index:1}
.grouping-actions button,.grouping-dialog>button { background:#e8ddc8; color:#51402e; border:calc(var(--rpx) * 1) solid #cdbb9c; }
.grouping-actions button.primary,.grouping-dialog>button.primary { background:#a4613d; color:#fff9ec; border-color:#945532; }
.grouping-actions button[disabled],.grouping-dialog>button[disabled] { opacity:1; background:#ddd5c7; color:#797061; border-color:#c8bfaf; }
.grouping-panel,.grouping-dialog{background:#f3e8ce;color:#473923}.grouping-field input{background:#fff9eb;color:#473923;border-color:#bea984}
.grouping-dialog>button.primary{display:block;width:100%;box-sizing:border-box;margin:calc(var(--rpx) * 24) 0 0;padding:calc(var(--rpx) * 18) calc(var(--rpx) * 20);min-height:calc(var(--rpx) * 80);font-size:calc(var(--rpx) * 28);line-height:1.5;border-radius:calc(var(--rpx) * 10)}.grouping-actions button{min-height:calc(var(--rpx) * 80);line-height:1.5;padding:calc(var(--rpx) * 18) calc(var(--rpx) * 12);border-radius:calc(var(--rpx) * 10)}

.lobby-panel{padding:calc(var(--rpx) * 26);margin:calc(var(--rpx) * 20) 0;background:#f8efda;border:calc(var(--rpx) * 2) solid #d5be95;border-radius:calc(var(--rpx) * 18);box-sizing:border-box}.lobby-head{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--rpx) * 12);font-size:calc(var(--rpx) * 32);font-weight:800;color:#584127}.lobby-caption{font-size:calc(var(--rpx) * 22);font-weight:400;line-height:1.5;color:#8b7553}.lobby-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--rpx) * 14);margin:calc(var(--rpx) * 22) 0}.lobby-member{display:flex;align-items:center;gap:calc(var(--rpx) * 12);min-width:0;padding:calc(var(--rpx) * 12) calc(var(--rpx) * 10);background:#fffaef;border:calc(var(--rpx) * 1) solid #e0ceb0;border-radius:calc(var(--rpx) * 12)}.lobby-avatar{flex:0 0 calc(var(--rpx) * 64);width:calc(var(--rpx) * 64);height:calc(var(--rpx) * 64);border-radius:50%}.lobby-initial{display:flex;align-items:center;justify-content:center;background:#e8d8b8;color:#8f6c3a;font-size:calc(var(--rpx) * 28)}.lobby-member-copy{min-width:0;flex:1}.lobby-name{font-size:calc(var(--rpx) * 25);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#55422d}.lobby-status{font-size:calc(var(--rpx) * 25);color:#90724c;line-height:1.5;margin:calc(var(--rpx) * 18) 0}.lobby-actions{display:flex;gap:calc(var(--rpx) * 14)}.room-page .lobby-actions button{flex:1;min-width:0;width:auto;margin:0;padding:calc(var(--rpx) * 18) calc(var(--rpx) * 12);line-height:1.5;font-size:calc(var(--rpx) * 28);border-radius:calc(var(--rpx) * 10);box-sizing:border-box}.room-page .lobby-actions button::after{border:0}.room-page .lobby-actions .lobby-start{background:#985b33;color:#fff8e8;font-weight:800}.room-page .lobby-actions .lobby-group{background:#e4d5b9;color:#73532f}.room-page .lobby-actions button[disabled]{background:#e2dacb;color:#8e8370;opacity:1}















.room-exit-control { position: fixed; left: calc(var(--rpx) * 30); z-index: 12; display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: calc(var(--rpx) * 180); margin: 0; padding: 0 calc(var(--rpx) * 16); border: calc(var(--rpx) * 1) solid #d7c9af; border-radius: calc(var(--rpx) * 32); background: #faf6ec; color: #76583e; font-size: calc(var(--rpx) * 24); line-height: 1; box-shadow: 0 calc(var(--rpx) * 2) calc(var(--rpx) * 8) rgba(80,60,30,.06); }
.room-exit-control::after { border: none; }
.room-exit-control[disabled] { opacity: .5; }

.holdem-room .room-content { max-width: calc(var(--rpx) * 940); margin: 0 auto; }
.holdem-room .room-hero { flex-direction: row; align-items: center; gap: calc(var(--rpx) * 14); }
.holdem-room .room-hero .title { font-size: calc(var(--rpx) * 34); }
.holdem-room .room-hero .subtitle { font-size: calc(var(--rpx) * 20); }
.holdem-room .room-hero > div:first-child { flex: 1; width: auto; }
.holdem-room .room-hero-actions { display: flex; gap: calc(var(--rpx) * 8); width: auto; flex-shrink: 0; }
.holdem-room .room-hero-actions .settings-button { width: calc(var(--rpx) * 84); min-width: calc(var(--rpx) * 84); height: calc(var(--rpx) * 64); padding: 0; font-size: calc(var(--rpx) * 23); }
.holdem-room .settings-hero > .settings-button { width: calc(var(--rpx) * 84); min-width: calc(var(--rpx) * 84); height: calc(var(--rpx) * 64); padding: 0; flex: 0 0 calc(var(--rpx) * 84); font-size: calc(var(--rpx) * 23); }
.holdem-room .room-hero .room-kicker { white-space: nowrap; line-height: 1.4; }
.holdem-room .room-hero .subtitle { white-space: normal; }
.holdem-room .settings-hero { align-items: center; margin-bottom: calc(var(--rpx) * 28); }
.holdem-room .panel { border-radius: calc(var(--rpx) * 16); padding: calc(var(--rpx) * 28); box-shadow: none; }

.room-page {
  background: #f5f4ed;
  box-sizing: border-box;
  min-height: 100vh;
  overflow: hidden;
  padding: calc(var(--rpx) * 170) calc(var(--rpx) * 30) max(calc(var(--rpx) * 56), env(safe-area-inset-bottom));
  position: relative;
}

.room-paper-art {
  height: 100%;
  left: 0;
  opacity: 0.32;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 0;
}

.room-page::before {
  background:
    radial-gradient(circle at 86% 6%, rgba(201, 100, 66, 0.12), transparent calc(var(--rpx) * 190)),
    linear-gradient(180deg, rgba(232, 230, 220, 0.72), rgba(245, 244, 237, 0) calc(var(--rpx) * 310)),
    repeating-linear-gradient(90deg, rgba(232, 230, 220, 0.58) 0, rgba(232, 230, 220, 0.58) calc(var(--rpx) * 1), transparent calc(var(--rpx) * 1), transparent calc(var(--rpx) * 36));
  bottom: 0;
  content: "";
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

.room-frame {
  border-left: calc(var(--rpx) * 2) solid rgba(232, 230, 220, 0.82);
  border-right: calc(var(--rpx) * 2) solid rgba(232, 230, 220, 0.82);
  bottom: max(calc(var(--rpx) * 40), env(safe-area-inset-bottom));
  left: calc(var(--rpx) * 46);
  pointer-events: none;
  position: absolute;
  right: calc(var(--rpx) * 46);
  top: calc(var(--rpx) * 146);
  z-index: 1;
}

.room-content {
  position: relative;
  z-index: 2;
}

.room-hero {
  align-items: stretch;
  border-bottom: calc(var(--rpx) * 2) solid #f0eee6;
  display: flex;
  flex-direction: column;
  gap: calc(var(--rpx) * 22);
  justify-content: flex-start;
  margin-bottom: calc(var(--rpx) * 24);
  padding: 0 calc(var(--rpx) * 6) calc(var(--rpx) * 24);
  position: relative;
}

.room-hero > div:first-child {
  min-width: 0;
  width: 100%;
}

.room-hero-actions {
  display: grid;
  gap: calc(var(--rpx) * 12);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

.room-hero-actions.single {
  grid-template-columns: 1fr;
}

.room-hero-actions .settings-button,
.room-hero > .settings-button {
  min-width: 0;
  padding: 0 calc(var(--rpx) * 18);
  width: 100%;
}

.room-hero::after {
  background: repeating-linear-gradient(90deg, #c96442 0 calc(var(--rpx) * 16), transparent calc(var(--rpx) * 16) calc(var(--rpx) * 28), #3d3d3a calc(var(--rpx) * 28) calc(var(--rpx) * 32), transparent calc(var(--rpx) * 32) calc(var(--rpx) * 44));
  bottom: calc(var(--rpx) * -2);
  content: "";
  height: calc(var(--rpx) * 6);
  left: 0;
  opacity: 0.46;
  position: absolute;
  right: calc(var(--rpx) * 32);
}

.room-page .title {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 48);
  font-weight: 500;
  line-height: 1.1;
  margin: calc(var(--rpx) * 4) 0 calc(var(--rpx) * 6);
  white-space: nowrap;
}

.room-page .subtitle {
  color: #87867f;
  font-size: calc(var(--rpx) * 24);
  font-weight: 700;
  line-height: 1.45;
}

.room-kicker {
  color: #c96442;
  font-size: calc(var(--rpx) * 20);
  font-weight: 800;
  letter-spacing: calc(var(--rpx) * 1);
  line-height: 1;
  margin-bottom: calc(var(--rpx) * 8);
  text-transform: uppercase;
}

.settings-button {
  align-items: center;
  background: #faf9f5;
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 16);
  box-sizing: border-box;
  color: #3d3d3a;
  display: flex;
  flex-shrink: 0;
  font-size: calc(var(--rpx) * 26);
  font-weight: 800;
  height: calc(var(--rpx) * 76);
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-width: calc(var(--rpx) * 128);
  padding: 0 calc(var(--rpx) * 24);
}

.settings-button::after {
  border: none;
}

.share-button {
  min-width: 0;
}

.quick-stats {
  background: linear-gradient(180deg, #faf9f5, rgba(232, 230, 220, 0.58));
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 18);
  box-shadow: 0 0 0 calc(var(--rpx) * 2) rgba(240, 238, 230, 0.7);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 0 calc(var(--rpx) * 24);
  overflow: hidden;
}

.quick-stat {
  border-right: calc(var(--rpx) * 2) solid #f0eee6;
  padding: calc(var(--rpx) * 24) calc(var(--rpx) * 12);
  text-align: center;
}

.quick-stat:last-child {
  border-right: none;
}

.quick-number {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 46);
  font-weight: 500;
  line-height: 1;
}

.quick-label {
  color: #87867f;
  font-size: calc(var(--rpx) * 21);
  font-weight: 700;
  margin-top: calc(var(--rpx) * 6);
}

.host-action {
  background:
    radial-gradient(circle at 92% 18%, rgba(201, 100, 66, 0.14), transparent calc(var(--rpx) * 150)),
    #faf9f5;
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 20);
  box-shadow: 0 0 0 calc(var(--rpx) * 2) rgba(240, 238, 230, 0.7);
  box-sizing: border-box;
  margin: 0 0 calc(var(--rpx) * 24);
  padding: calc(var(--rpx) * 26);
}

.host-action::before,
.identity-card::before,
.panel::before {
  background: repeating-linear-gradient(90deg, rgba(201, 100, 66, 0.68) 0 calc(var(--rpx) * 18), transparent calc(var(--rpx) * 18) calc(var(--rpx) * 30));
  border-bottom: calc(var(--rpx) * 2) solid rgba(201, 100, 66, 0.18);
  border-top: calc(var(--rpx) * 2) solid rgba(201, 100, 66, 0.32);
  content: "";
  display: block;
  height: calc(var(--rpx) * 12);
  margin-bottom: calc(var(--rpx) * 22);
  opacity: 0.72;
}

.host-action .button {
  align-items: center;
  display: flex;
  height: calc(var(--rpx) * 92);
  justify-content: center;
  line-height: 1;
  width: 100%;
}

.waiting-panel,
.profile-panel,
.identity-card,
.panel {
  background: rgba(250, 249, 245, 0.94);
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 20);
  box-shadow: 0 0 0 calc(var(--rpx) * 2) rgba(240, 238, 230, 0.7);
  box-sizing: border-box;
  margin: 0 0 calc(var(--rpx) * 24);
  position: relative;
}

.waiting-panel {
  border-style: dashed;
  padding: calc(var(--rpx) * 30);
}

.waiting-title,
.section-title {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 38);
  font-weight: 500;
  line-height: 1.15;
}

.waiting-copy {
  color: #5e5d59;
  font-size: calc(var(--rpx) * 25);
  font-weight: 600;
  line-height: 1.58;
  margin-top: calc(var(--rpx) * 12);
}

.profile-panel,
.panel {
  padding: calc(var(--rpx) * 28);
}

.profile-panel {
  align-items: center;
  display: flex;
  gap: calc(var(--rpx) * 18);
}

.avatar-wrap {
  height: calc(var(--rpx) * 88);
  margin: 0 auto;
  position: relative;
  width: calc(var(--rpx) * 88);
}

.inline-avatar-wrap {
  flex-shrink: 0;
  height: calc(var(--rpx) * 88);
  position: relative;
  width: calc(var(--rpx) * 88);
}

.inline-avatar-wrap.small-wrap {
  height: calc(var(--rpx) * 64);
  width: calc(var(--rpx) * 64);
}

.avatar {
  align-items: center;
  background: transparent;
  border: calc(var(--rpx) * 2) solid rgba(201, 100, 66, 0.36);
  border-radius: 50%;
  box-sizing: border-box;
  color: #faf9f5;
  display: flex;
  flex-shrink: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 34);
  font-weight: 500;
  height: calc(var(--rpx) * 88);
  justify-content: center;
  line-height: 1;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
  width: calc(var(--rpx) * 88);
}

.avatar-hit {
  background: transparent;
  border: none;
  border-radius: 0;
  bottom: 0;
  height: calc(var(--rpx) * 88);
  left: 0;
  line-height: calc(var(--rpx) * 88);
  margin: 0;
  min-height: 0;
  opacity: 0;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: calc(var(--rpx) * 88);
  z-index: 2;
}

.avatar-hit.small-hit {
  height: calc(var(--rpx) * 64);
  line-height: calc(var(--rpx) * 64);
  width: calc(var(--rpx) * 64);
}

.avatar-hit::after {
  border: none;
}

.avatar-fallback {
  align-items: center;
  border-radius: 50%;
  display: flex;
  font-size: calc(var(--rpx) * 34);
  font-weight: 800;
  height: 100%;
  justify-content: center;
  line-height: 1;
  overflow: hidden;
  width: 100%;
}

.avatar-image {
  border-radius: 50%;
  display: block;
  height: 100%;
  width: 100%;
}

.member-name,
.member-name-input {
  color: #141413;
  font-size: calc(var(--rpx) * 26);
  font-weight: 800;
  height: calc(var(--rpx) * 50);
  line-height: calc(var(--rpx) * 50);
  margin-top: calc(var(--rpx) * 12);
  max-width: 100%;
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
}

.member-name-input {
  background: transparent;
  min-height: calc(var(--rpx) * 50);
}

.profile-name-input,
.solo-name-input,
.seat-name-input {
  background: transparent;
  color: #141413;
  flex: 1;
  font-weight: 900;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-name-input {
  font-size: calc(var(--rpx) * 30);
  height: calc(var(--rpx) * 72);
  line-height: calc(var(--rpx) * 72);
}

.solo-name-input {
  font-size: calc(var(--rpx) * 24);
  height: calc(var(--rpx) * 54);
  line-height: calc(var(--rpx) * 54);
}

.seat-name-input {
  font-size: calc(var(--rpx) * 22);
  height: calc(var(--rpx) * 50);
  line-height: calc(var(--rpx) * 50);
}

.member-tags {
  display: flex;
  gap: calc(var(--rpx) * 8);
  justify-content: center;
  margin-top: calc(var(--rpx) * 8);
  min-height: calc(var(--rpx) * 36);
}

.tag {
  background: rgba(232, 230, 220, 0.9);
  border-radius: calc(var(--rpx) * 999);
  color: #5e5d59;
  font-size: calc(var(--rpx) * 20);
  font-weight: 700;
  padding: calc(var(--rpx) * 4) calc(var(--rpx) * 12);
}

.tag.host {
  background: #c96442;
  color: #faf9f5;
}

.member-status {
  color: #87867f;
  font-size: calc(var(--rpx) * 22);
  font-weight: 600;
}

.identity-card {
  background:
    radial-gradient(circle at 84% 10%, rgba(201, 100, 66, 0.12), transparent calc(var(--rpx) * 170)),
    linear-gradient(180deg, rgba(250, 249, 245, 0.96), rgba(232, 230, 220, 0.66));
  overflow: hidden;
  padding: calc(var(--rpx) * 26);
}

.identity-art,
.role-art {
  align-items: center;
  background: #faf9f5;
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 18);
  box-sizing: border-box;
  display: flex;
  height: 0;
  justify-content: center;
  overflow: hidden;
  padding-bottom: 57.142%;
  position: relative;
}

.role-card-image {
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.identity-art-label,
.role-art-title {
  color: rgba(94, 93, 89, 0.46);
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 38);
  font-weight: 500;
  left: 0;
  position: absolute;
  right: 0;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
}

.identity-copy {
  padding: calc(var(--rpx) * 26) calc(var(--rpx) * 8) calc(var(--rpx) * 8);
}

.label.light {
  color: #87867f;
  font-size: calc(var(--rpx) * 22);
  font-weight: 800;
}

.identity-name {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 58);
  font-weight: 500;
  line-height: 1.05;
  margin-top: calc(var(--rpx) * 8);
}

.identity-note {
  color: #5e5d59;
  font-size: calc(var(--rpx) * 25);
  font-weight: 600;
  line-height: 1.52;
  margin-top: calc(var(--rpx) * 12);
}

.identity-mark {
  align-items: center;
  background: rgba(232, 230, 220, 0.88);
  border: calc(var(--rpx) * 2) solid rgba(201, 100, 66, 0.24);
  border-radius: calc(var(--rpx) * 999);
  color: #c96442;
  display: flex;
  font-size: calc(var(--rpx) * 22);
  font-weight: 800;
  min-height: calc(var(--rpx) * 46);
  padding: 0 calc(var(--rpx) * 18);
  position: absolute;
  right: calc(var(--rpx) * 34);
  top: calc(var(--rpx) * 34);
}

.settings-hero {
  margin-bottom: calc(var(--rpx) * 24);
}

.settings-stats {
  margin-bottom: calc(var(--rpx) * 24);
}

.role-grid {
  display: grid;
  gap: calc(var(--rpx) * 18);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: calc(var(--rpx) * 22);
}

.role-item {
  background: linear-gradient(180deg, #faf9f5, rgba(232, 230, 220, 0.58));
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 16);
  box-sizing: border-box;
  overflow: hidden;
}

.role-art-title {
  font-size: calc(var(--rpx) * 26);
}

.role-meta {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: calc(var(--rpx) * 16);
}

.role-name {
  color: #141413;
  font-size: calc(var(--rpx) * 26);
  font-weight: 800;
  max-width: calc(var(--rpx) * 130);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.exit-room-button {
  align-items: center;
  background: #b53333;
  border: calc(var(--rpx) * 2) solid #b53333;
  border-radius: calc(var(--rpx) * 16);
  box-shadow: inset 0 0 0 calc(var(--rpx) * 2) rgba(250, 249, 245, 0.28);
  box-sizing: border-box;
  color: #faf9f5;
  display: flex;
  font-size: calc(var(--rpx) * 28);
  font-weight: 800;
  height: calc(var(--rpx) * 88);
  justify-content: center;
  line-height: 1;
  margin: calc(var(--rpx) * 8) 0 0;
}

.exit-room-button::after {
  border: none;
}

.manage-list {
  margin-top: calc(var(--rpx) * 18);
}

.member-row {
  align-items: center;
  display: flex;
  gap: calc(var(--rpx) * 16);
}

.avatar.small {
  font-size: calc(var(--rpx) * 26);
  height: calc(var(--rpx) * 64);
  width: calc(var(--rpx) * 64);
}

.manage-name {
  color: #141413;
  font-weight: 800;
}

.kick-button,
.list-item switch {
  flex-shrink: 0;
}

.kick-button {
  align-items: center;
  display: flex;
  height: calc(var(--rpx) * 58);
  justify-content: center;
  line-height: 1;
  min-width: calc(var(--rpx) * 58);
  padding: 0;
}

.button.disabled {
  opacity: 0.42;
}

.section-row {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: calc(var(--rpx) * 20);
  margin-bottom: calc(var(--rpx) * 22);
}

.public-panel,
.table-section {
  background: rgba(250, 249, 245, 0.94);
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 20);
  box-shadow: 0 0 0 calc(var(--rpx) * 2) rgba(240, 238, 230, 0.7);
  box-sizing: border-box;
  margin: 0 0 calc(var(--rpx) * 24);
  padding: calc(var(--rpx) * 28);
  position: relative;
}

.public-panel::before,
.table-section::before {
  background: repeating-linear-gradient(90deg, rgba(201, 100, 66, 0.68) 0 calc(var(--rpx) * 18), transparent calc(var(--rpx) * 18) calc(var(--rpx) * 30));
  border-bottom: calc(var(--rpx) * 2) solid rgba(201, 100, 66, 0.18);
  border-top: calc(var(--rpx) * 2) solid rgba(201, 100, 66, 0.32);
  content: "";
  display: block;
  height: calc(var(--rpx) * 12);
  margin-bottom: calc(var(--rpx) * 22);
  opacity: 0.72;
}

.current-public {
  align-items: center;
  background: linear-gradient(180deg, #faf9f5, rgba(232, 230, 220, 0.58));
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 18);
  display: flex;
  gap: calc(var(--rpx) * 22);
  overflow: hidden;
  padding: calc(var(--rpx) * 22);
}

.current-public.empty {
  border-style: dashed;
}

.public-copy {
  flex: 1;
  min-width: 0;
}

.public-title {
  color: #141413;
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rpx) * 38);
  font-weight: 500;
  line-height: 1.15;
}

.public-subtitle {
  color: #5e5d59;
  font-size: calc(var(--rpx) * 24);
  font-weight: 600;
  line-height: 1.45;
  margin-top: calc(var(--rpx) * 10);
}

.host-public-actions {
  display: grid;
  gap: calc(var(--rpx) * 10);
  grid-template-columns: repeat(3, 1fr);
  margin-top: calc(var(--rpx) * 18);
  overflow: hidden;
}

.host-public-actions .button {
  align-items: center;
  display: flex;
  height: calc(var(--rpx) * 76);
  justify-content: center;
  line-height: 1;
  min-width: 0;
  padding: 0;
  width: 100%;
}

.poker-card {
  align-items: center;
  background: transparent;
  border: none;
  border-radius: calc(var(--rpx) * 10);
  box-shadow: 0 calc(var(--rpx) * 9) calc(var(--rpx) * 20) rgba(46, 25, 14, 0.16);
  box-sizing: border-box;
  color: #141413;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  font-family: Georgia, "Times New Roman", serif;
  justify-content: center;
  line-height: 1;
  overflow: hidden;
  position: relative;
}

.poker-frame-image {
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 0;
}

.poker-card.red {
  color: #a92f2d;
}

.poker-card.black {
  color: #141413;
}

.poker-card.large {
  height: calc(var(--rpx) * 156);
  width: calc(var(--rpx) * 112);
}

.poker-card.mini {
  border-radius: calc(var(--rpx) * 7);
  height: calc(var(--rpx) * 90);
  width: calc(var(--rpx) * 64);
}

.table-card.solo .poker-card.mini {
  height: calc(var(--rpx) * 80);
  width: calc(var(--rpx) * 56);
}

.poker-card.back {
  color: #faf9f5;
}

.poker-rank {
  font-size: calc(var(--rpx) * 48);
  font-weight: 800;
  line-height: 1;
  position: relative;
  z-index: 1;
}

.poker-corner {
  font-size: calc(var(--rpx) * 24);
  font-weight: 900;
  line-height: 1;
  position: absolute;
  z-index: 1;
}

.poker-corner.top {
  left: 16%;
  top: 11%;
}

.poker-corner.bottom {
  bottom: 11%;
  right: 16%;
  transform: rotate(180deg);
}

.poker-card.mini .poker-rank {
  font-size: calc(var(--rpx) * 28);
}

.poker-card.mini .poker-corner {
  font-size: calc(var(--rpx) * 13);
}

.table-card.solo .poker-card.mini .poker-rank {
  font-size: calc(var(--rpx) * 25);
}

.table-card.solo .poker-card.mini .poker-corner {
  font-size: calc(var(--rpx) * 12);
}

.table-grid {
  display: grid;
  gap: calc(var(--rpx) * 18);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
}

.table-grid.single {
  gap: calc(var(--rpx) * 14);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.table-card {
  background: linear-gradient(180deg, #faf9f5, rgba(232, 230, 220, 0.56));
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 18);
  box-sizing: border-box;
  min-height: 0;
  overflow: hidden;
  padding: calc(var(--rpx) * 18);
}

.table-card.solo {
  padding: calc(var(--rpx) * 16);
}

.table-card.mine {
  border-color: rgba(201, 100, 66, 0.58);
  box-shadow: inset 0 0 0 calc(var(--rpx) * 4) rgba(250, 249, 245, 0.72);
}

.table-card.revealed {
  background: linear-gradient(180deg, rgba(250, 249, 245, 0.98), rgba(201, 100, 66, 0.12));
}

.table-head {
  align-items: flex-start;
  display: flex;
  gap: calc(var(--rpx) * 14);
  justify-content: space-between;
  min-width: 0;
}

.table-title-wrap {
  min-width: 0;
}

.table-name {
  color: #141413;
  font-size: calc(var(--rpx) * 27);
  font-weight: 900;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table-status,
.table-point {
  color: #87867f;
  font-size: calc(var(--rpx) * 21);
  font-weight: 800;
  line-height: 1.35;
  margin-top: calc(var(--rpx) * 6);
}

.table-point {
  color: #c96442;
  flex-shrink: 0;
  margin-top: 0;
  max-width: calc(var(--rpx) * 92);
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.seat-row {
  align-items: center;
  border: calc(var(--rpx) * 2) solid rgba(61, 61, 58, 0.18);
  border-radius: calc(var(--rpx) * 12);
  display: grid;
  gap: calc(var(--rpx) * 12);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: calc(var(--rpx) * 18);
  min-height: calc(var(--rpx) * 96);
  overflow: hidden;
  padding: calc(var(--rpx) * 12);
}

.seat {
  align-items: center;
  background: rgba(250, 249, 245, 0.72);
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 999);
  box-sizing: border-box;
  display: flex;
  gap: calc(var(--rpx) * 10);
  height: calc(var(--rpx) * 70);
  justify-content: center;
  min-width: 0;
  overflow: hidden;
  padding: 0 calc(var(--rpx) * 10);
  width: 100%;
}

.add-seat {
  background: rgba(250, 249, 245, 0.46);
  border: calc(var(--rpx) * 2) dashed rgba(61, 61, 58, 0.34);
  color: #3d3d3a;
  font-size: calc(var(--rpx) * 34);
  font-weight: 800;
  line-height: 1;
  margin: 0;
}

.seat-name {
  color: #141413;
  flex: 1;
  font-size: calc(var(--rpx) * 22);
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.solo-player-row {
  align-items: center;
  display: flex;
  gap: calc(var(--rpx) * 12);
  min-width: 0;
}

.head-player-row {
  flex: 1;
}

.solo-name {
  color: #141413;
  flex: 1;
  font-size: calc(var(--rpx) * 24);
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-cards {
  display: grid;
  gap: calc(var(--rpx) * 12);
  grid-template-columns: calc(var(--rpx) * 66) minmax(0, 1fr);
  margin-top: calc(var(--rpx) * 16);
}

.table-card.solo .group-cards {
  grid-template-columns: calc(var(--rpx) * 58) minmax(0, 1fr);
  margin-top: calc(var(--rpx) * 14);
}

.mini-card-slot {
  min-width: 0;
}

.mini-label {
  color: #87867f;
  font-size: calc(var(--rpx) * 20);
  font-weight: 800;
  margin-bottom: calc(var(--rpx) * 8);
}

.public-mini-scroll {
  box-sizing: border-box;
  max-width: 100%;
  min-height: calc(var(--rpx) * 88);
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
}

.table-card.solo .public-mini-scroll {
  min-height: calc(var(--rpx) * 78);
}

.public-mini-list {
  box-sizing: border-box;
  display: inline-flex;
  flex-wrap: nowrap;
  gap: calc(var(--rpx) * 8);
  min-height: calc(var(--rpx) * 88);
  min-width: 0;
  padding-right: calc(var(--rpx) * 8);
  white-space: nowrap;
}

.table-card.solo .public-mini-list {
  min-height: calc(var(--rpx) * 78);
}

.empty-mini {
  align-items: center;
  border: calc(var(--rpx) * 2) dashed #e8e6dc;
  border-radius: calc(var(--rpx) * 8);
  color: #87867f;
  display: flex;
  font-size: calc(var(--rpx) * 22);
  font-weight: 800;
  height: calc(var(--rpx) * 88);
  justify-content: center;
  flex-shrink: 0;
  width: calc(var(--rpx) * 88);
}

.table-card.solo .empty-mini {
  height: calc(var(--rpx) * 78);
  width: calc(var(--rpx) * 78);
}

.table-deal-action {
  align-items: center;
  background: #c96442;
  border: calc(var(--rpx) * 2) solid #c96442;
  border-radius: calc(var(--rpx) * 12);
  box-shadow: inset 0 0 0 calc(var(--rpx) * 2) rgba(250, 249, 245, 0.28);
  box-sizing: border-box;
  color: #faf9f5;
  display: flex;
  font-size: calc(var(--rpx) * 26);
  font-weight: 900;
  justify-content: center;
  line-height: 1;
  margin-top: calc(var(--rpx) * 14);
  max-width: 100%;
  min-width: 0;
  padding: calc(var(--rpx) * 18) 0;
  width: 100%;
}

.result-list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--rpx) * 12);
  margin-top: calc(var(--rpx) * 20);
}

.result-row {
  align-items: center;
  background: #faf9f5;
  border: calc(var(--rpx) * 2) solid #f0eee6;
  border-radius: calc(var(--rpx) * 14);
  display: flex;
  gap: calc(var(--rpx) * 18);
  padding: calc(var(--rpx) * 18);
}

.result-rank {
  align-items: center;
  background: #3d3d3a;
  border-radius: 50%;
  color: #faf9f5;
  display: flex;
  flex-shrink: 0;
  font-size: calc(var(--rpx) * 25);
  font-weight: 900;
  height: calc(var(--rpx) * 58);
  justify-content: center;
  width: calc(var(--rpx) * 58);
}

.result-main {
  min-width: 0;
}

.result-name {
  color: #141413;
  font-size: calc(var(--rpx) * 27);
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.setting-block {
  align-items: center;
  border-bottom: calc(var(--rpx) * 2) solid #f0eee6;
  display: flex;
  gap: calc(var(--rpx) * 20);
  justify-content: space-between;
  padding: calc(var(--rpx) * 24) 0;
}

.setting-block:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.setting-title {
  color: #141413;
  font-size: calc(var(--rpx) * 28);
  font-weight: 900;
  line-height: 1.3;
}

.segmented {
  background: #e8e6dc;
  border: calc(var(--rpx) * 2) solid #e8e6dc;
  border-radius: calc(var(--rpx) * 14);
  display: flex;
  flex-shrink: 0;
  overflow: hidden;
}

.segmented button {
  align-items: center;
  background: transparent;
  border-radius: 0;
  color: #3d3d3a;
  display: flex;
  font-size: calc(var(--rpx) * 28);
  font-weight: 900;
  height: calc(var(--rpx) * 68);
  justify-content: center;
  line-height: 1;
  margin: 0;
  padding: 0;
  width: calc(var(--rpx) * 78);
}

.segmented button::after {
  border: none;
}

.segmented button.active {
  background: #3d3d3a;
  color: #faf9f5;
}
.sync-notice {
  position: relative;
  z-index: 2;
  margin: calc(var(--rpx) * 20) calc(var(--rpx) * 24);
  padding: calc(var(--rpx) * 20);
  color: #713d25;
  background: #f3e4c8;
  font-size: calc(var(--rpx) * 26);
}

.sync-notice button {
  margin-top: calc(var(--rpx) * 12);
}

/* 十点半：浅纸牌桌。所有新样式限定在独立类名，技能模式沿用原布局。 */
.ten-room { background: #efeadd; padding: max(calc(var(--rpx) * 150), calc(env(safe-area-inset-top) + calc(var(--rpx) * 82))) calc(var(--rpx) * 28) max(calc(var(--rpx) * 42), env(safe-area-inset-bottom)); }
.ten-room .room-frame { inset: calc(var(--rpx) * 14); border-color: rgba(96, 73, 39, .24); }
.ten-room .room-content { max-width: calc(var(--rpx) * 940); margin: 0 auto; }
.ten-room .room-paper-art { opacity: .48; }
.ten-room .tt-topbar { flex-direction: row; align-items: center; gap: calc(var(--rpx) * 20); margin-bottom: calc(var(--rpx) * 24); padding: calc(var(--rpx) * 8) calc(var(--rpx) * 2) calc(var(--rpx) * 22); border-bottom: calc(var(--rpx) * 2) solid rgba(77, 64, 41, .24); }
.ten-room .tt-topbar .title { font-size: calc(var(--rpx) * 34); line-height: 1.25; margin-top: calc(var(--rpx) * 5); letter-spacing: calc(var(--rpx) * 2); }
.ten-room .tt-topbar .room-kicker { font-size: calc(var(--rpx) * 20); letter-spacing: calc(var(--rpx) * 3); color: #796343; }
.ten-room .tt-topbar .subtitle { font-size: calc(var(--rpx) * 22); margin-top: calc(var(--rpx) * 7); }
.ten-room .tt-topbar > div:first-child { flex: 1; width: auto; }
.ten-room .tt-topbar .room-hero-actions { display: flex; gap: calc(var(--rpx) * 10); width: auto; flex-shrink: 0; }
.ten-room .tt-topbar .settings-button { width: calc(var(--rpx) * 84); height: calc(var(--rpx) * 62); padding: 0; font-size: calc(var(--rpx) * 23); border-radius: calc(var(--rpx) * 6); }
.tt-eyebrow { color: #826a45; font-size: calc(var(--rpx) * 21); letter-spacing: calc(var(--rpx) * 3); font-weight: 700; }
.tt-caption { color: #81765f; font-size: calc(var(--rpx) * 22); line-height: 1.55; font-weight: 400; }
.tt-stage { position: relative; margin: 0 0 calc(var(--rpx) * 28); padding: calc(var(--rpx) * 22) calc(var(--rpx) * 24) calc(var(--rpx) * 24); border: calc(var(--rpx) * 2) solid #c7b99b; border-radius: calc(var(--rpx) * 8); background: rgba(251, 248, 236, .58); box-shadow: inset 0 0 0 calc(var(--rpx) * 7) rgba(244, 239, 220, .75); text-align: center; }
.tt-stage-heading, .tt-section-head { display: flex; align-items: center; justify-content: space-between; gap: calc(var(--rpx) * 18); }
.tt-progress { color: #7a6a50; font-size: calc(var(--rpx) * 21); }
.tt-card-stage { position: relative; display: flex; align-items: center; justify-content: center; padding: calc(var(--rpx) * 22) 0 calc(var(--rpx) * 20); perspective: calc(var(--rpx) * 1000); }
.tt-current-card { position: relative; width: calc(var(--rpx) * 200); height: calc(var(--rpx) * 280); z-index: 2; transform-origin: 50% 65%; }
.ten-host .tt-current-card { width: calc(var(--rpx) * 240); height: calc(var(--rpx) * 336); }
.tt-deck-shadow { position: absolute; width: calc(var(--rpx) * 196); height: calc(var(--rpx) * 275); border: calc(var(--rpx) * 1) solid #b9a782; border-radius: calc(var(--rpx) * 10); background: #d6c9ad; transform: rotate(-6deg) translate(calc(var(--rpx) * -5), calc(var(--rpx) * 4)); box-shadow: 0 calc(var(--rpx) * 10) calc(var(--rpx) * 24) rgba(60, 45, 23, .14); }
.ten-host .tt-deck-shadow { width: calc(var(--rpx) * 236); height: calc(var(--rpx) * 330); }
.tt-table-ornament { position: absolute; top: 42%; color: #a28a61; opacity: .42; font-size: calc(var(--rpx) * 52); }
.tt-table-ornament.left { left: calc(var(--rpx) * 38); }
.tt-table-ornament.right { right: calc(var(--rpx) * 38); }
.tt-stage-title { font-size: calc(var(--rpx) * 27); font-weight: 700; color: #433b2d; margin: calc(var(--rpx) * 7) 0; letter-spacing: calc(var(--rpx) * 2); }
.tt-stage .tt-caption { max-width: calc(var(--rpx) * 540); margin: 0 auto; }
.tt-poker { position: relative; box-sizing: border-box; width: 100%; height: 100%; border-radius: calc(var(--rpx) * 10); overflow: hidden; color: #243d3c; box-shadow: 0 calc(var(--rpx) * 5) calc(var(--rpx) * 12) rgba(64, 45, 23, .16); background: #f5e9cb; border: calc(var(--rpx) * 1) solid rgba(97, 70, 32, .28); }
.tt-poker.red { color: #983f32; }
.tt-card-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.tt-corner { position: absolute; z-index: 1; display: flex; flex-direction: column; align-items: center; font-family: Georgia, 'Times New Roman', serif; font-weight: 700; font-size: calc(var(--rpx) * 23); line-height: 1.05; }
.tt-corner.top { top: calc(var(--rpx) * 13); left: calc(var(--rpx) * 13); }
.tt-corner.bottom { bottom: calc(var(--rpx) * 13); right: calc(var(--rpx) * 13); transform: rotate(180deg); }
.tt-center-rank { position: absolute; top: 25%; left: 0; width: 100%; text-align: center; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--rpx) * 64); line-height: 1; font-weight: 700; }
.tt-center-suit { position: absolute; top: 55%; width: 100%; text-align: center; font-size: calc(var(--rpx) * 43); line-height: 1; }
.tt-current-card .tt-center-rank { font-size: calc(var(--rpx) * 84); }
.ten-host .tt-current-card .tt-center-rank { font-size: calc(var(--rpx) * 102); }
.tt-current-card .tt-center-suit { font-size: calc(var(--rpx) * 54); }
.ten-host .tt-current-card .tt-center-suit { font-size: calc(var(--rpx) * 65); }
.tt-current-card .tt-corner { font-size: calc(var(--rpx) * 29); }
.ten-host .tt-current-card .tt-corner { font-size: calc(var(--rpx) * 33); }
.tt-public-actions { display: flex; gap: calc(var(--rpx) * 12); margin-top: calc(var(--rpx) * 22); padding-top: calc(var(--rpx) * 20); border-top: calc(var(--rpx) * 1) solid #d0c2a5; }
.tt-public-actions button { flex: 1; margin: 0; padding: 0 calc(var(--rpx) * 8); min-width: 0; height: calc(var(--rpx) * 74); line-height: calc(var(--rpx) * 74); background: #ece3ce; border: calc(var(--rpx) * 1) solid #baa47e; border-radius: calc(var(--rpx) * 6); color: #57452e; font-size: calc(var(--rpx) * 26); }
.tt-public-actions button::after, .tt-deal-button::after, .tt-spread-button::after, .tt-restart::after { border: 0; }
.tt-action-count { display: inline-block; font-size: calc(var(--rpx) * 21); opacity: .7; padding-left: calc(var(--rpx) * 4); }
.ten-room button[disabled] { opacity: .45; }
.ten-room .tt-start, .ten-room .tt-next { margin-top: calc(var(--rpx) * 22); border-radius: calc(var(--rpx) * 6); background: #354d45; border-color: #354d45; color: #faf3df; }
.ten-room .tt-next { display: flex; align-items: center; justify-content: center; width: 100%; min-width: 0; box-sizing: border-box; padding: 0 calc(var(--rpx) * 16); min-height: calc(var(--rpx) * 80); font-size: calc(var(--rpx) * 28); line-height: 1.2; white-space: nowrap; word-break: keep-all; }
.tt-my-hand { position: relative; margin: calc(var(--rpx) * 28) 0; padding: calc(var(--rpx) * 24) calc(var(--rpx) * 22) calc(var(--rpx) * 20); border: calc(var(--rpx) * 2) solid #b49a60; border-radius: calc(var(--rpx) * 8); background: linear-gradient(150deg, rgba(255, 250, 229, .9), rgba(236, 225, 195, .76)); box-shadow: inset 0 0 0 calc(var(--rpx) * 6) rgba(255, 250, 231, .75), 0 calc(var(--rpx) * 5) calc(var(--rpx) * 18) rgba(89, 64, 28, .05); }
.tt-my-total { margin-top: calc(var(--rpx) * 5); color: #423c2d; font-family: Georgia, 'Songti SC', serif; font-size: calc(var(--rpx) * 48); font-weight: 700; line-height: 1.15; }
.tt-my-status { color: #74603b; font-size: calc(var(--rpx) * 24); text-align: right; }
.tt-my-profile { display: flex; align-items: center; gap: calc(var(--rpx) * 12); margin-top: calc(var(--rpx) * 16); min-width: 0; }
.tt-name-input { min-width: 0; width: calc(var(--rpx) * 190); font-size: calc(var(--rpx) * 25); color: #554833; font-weight: 700; height: calc(var(--rpx) * 54); border-bottom: calc(var(--rpx) * 1) dashed #c7b99b; }
.tt-partner-names { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; }
.tt-hand-scroll { width: 100%; white-space: nowrap; box-sizing: border-box; }
.tt-hand-row { display: inline-flex; padding: calc(var(--rpx) * 24) calc(var(--rpx) * 12) calc(var(--rpx) * 8); min-width: 100%; box-sizing: border-box; align-items: flex-start; }
.tt-hand-card { position: relative; flex-shrink: 0; width: calc(var(--rpx) * 184); height: calc(var(--rpx) * 258); margin-right: calc(var(--rpx) * 16); margin-bottom: calc(var(--rpx) * 35); transition: margin 240ms ease, transform 240ms ease; }
.tt-hand-card:last-child { margin-right: calc(var(--rpx) * 12); }
.tt-hand-row.stacked .tt-hand-card:not(:last-child) { margin-right: calc(var(--rpx) * -72); }
.tt-hand-row.stacked .tt-hand-card:nth-child(odd) { transform: rotate(-2deg); }
.tt-hand-row.stacked .tt-hand-card:nth-child(even) { transform: rotate(2deg) translateY(calc(var(--rpx) * 4)); }
.tt-card-label { position: absolute; top: 100%; width: 100%; padding-top: calc(var(--rpx) * 8); text-align: center; color: #8b7958; font-size: calc(var(--rpx) * 20); }
.tt-hand-waiting { padding: calc(var(--rpx) * 35) 0 calc(var(--rpx) * 18); text-align: center; color: #938266; font-size: calc(var(--rpx) * 23); }
.tt-spread-button { margin: calc(var(--rpx) * 5) 0 0; padding: 0; background: transparent; color: #8c744c; font-size: calc(var(--rpx) * 21); line-height: calc(var(--rpx) * 50); text-align: center; }
.host-hand .tt-hand-card { width: calc(var(--rpx) * 152); height: calc(var(--rpx) * 213); }
.tt-other-hand .tt-hand-card { width: calc(var(--rpx) * 168); height: calc(var(--rpx) * 235); }
.host-hand .tt-hand-row.stacked .tt-hand-card:not(:last-child) { margin-right: calc(var(--rpx) * -44); }
.host-hand .tt-my-total { font-size: calc(var(--rpx) * 39); }
.tt-tables { margin: calc(var(--rpx) * 26) 0; }
.tt-section-title { color: #514431; font-weight: 700; font-size: calc(var(--rpx) * 29); letter-spacing: calc(var(--rpx) * 2); }
.tt-tables > .tt-section-head { margin-bottom: calc(var(--rpx) * 14); }
.tt-group { position: relative; margin-bottom: calc(var(--rpx) * 12); padding: calc(var(--rpx) * 17) calc(var(--rpx) * 18); border: calc(var(--rpx) * 1) solid #d0c4ab; border-radius: calc(var(--rpx) * 7); background: rgba(250, 247, 235, .66); }
.tt-group.mine { border-color: #b9a06a; background: rgba(244, 235, 209, .8); }
.tt-group-summary { display: flex; align-items: center; gap: calc(var(--rpx) * 13); min-height: calc(var(--rpx) * 62); }
.tt-member-faces { display: flex; align-items: center; flex-shrink: 0; }
.tt-member-faces .avatar + .avatar { margin-left: calc(var(--rpx) * -18); border: calc(var(--rpx) * 3) solid #f1e9d7; }
.tt-group .avatar.small { width: calc(var(--rpx) * 52); height: calc(var(--rpx) * 52); }
.tt-empty-seat { display: flex; width: calc(var(--rpx) * 52); height: calc(var(--rpx) * 52); border: calc(var(--rpx) * 1) dashed #baa784; border-radius: 50%; align-items: center; justify-content: center; color: #a28a61; }
.tt-group-info { flex: 1; min-width: 0; }
.tt-group-name { font-size: calc(var(--rpx) * 25); color: #4c4231; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-group-info .tt-caption { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: calc(var(--rpx) * 20); }
.tt-mine-label { color: #91723b; font-weight: 400; margin-left: calc(var(--rpx) * 8); font-size: calc(var(--rpx) * 20); }
.tt-summary-cards { width: calc(var(--rpx) * 200); flex-shrink: 0; white-space: nowrap; }
.tt-summary-card-row { display: inline-flex; gap: calc(var(--rpx) * 6); padding: calc(var(--rpx) * 5) calc(var(--rpx) * 2); }
.tt-summary-card { width: calc(var(--rpx) * 60); height: calc(var(--rpx) * 84); flex-shrink: 0; }
.tt-summary-card .tt-poker { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(var(--rpx) * 4); border-radius: calc(var(--rpx) * 4); box-shadow: 0 calc(var(--rpx) * 2) calc(var(--rpx) * 4) rgba(64,45,23,.12); }
.tt-summary-card .tt-center-rank { position: relative; top: auto; left: auto; z-index: 1; flex: 0 0 calc(var(--rpx) * 32); font-size: calc(var(--rpx) * 28); line-height: calc(var(--rpx) * 32); }
.tt-summary-card .tt-center-suit { position: relative; top: auto; z-index: 1; flex: 0 0 calc(var(--rpx) * 24); font-size: calc(var(--rpx) * 20); line-height: calc(var(--rpx) * 24); }
.tt-summary-card .tt-corner { display: none; }
.tt-expand { width: calc(var(--rpx) * 27); text-align: center; color: #a08c67; font-size: calc(var(--rpx) * 30); }
.ten-room .tt-group-summary > .tt-deal-button { flex: 0 0 calc(var(--rpx) * 104); width: calc(var(--rpx) * 104); min-width: calc(var(--rpx) * 104); max-width: calc(var(--rpx) * 104); margin: 0; padding: 0; height: calc(var(--rpx) * 76); line-height: normal; display: flex; align-items: center; justify-content: center; border: calc(var(--rpx) * 1) solid #a45b3c; border-radius: calc(var(--rpx) * 10); background: #a96540; color: #fff8e9; font-size: calc(var(--rpx) * 26); font-weight: 700; box-sizing: border-box; }
.ten-room .tt-group-summary > .tt-deal-button[disabled] { background: #dfd2bd; border-color: #c9bca4; color: #786a54; }
.tt-seat-options { display: flex; gap: calc(var(--rpx) * 12); padding-top: calc(var(--rpx) * 13); }
.tt-seat-button { margin: 0; flex: 1; min-width: 0; padding: 0 calc(var(--rpx) * 12); height: calc(var(--rpx) * 62); line-height: calc(var(--rpx) * 62); background: transparent; color: #856f46; border: calc(var(--rpx) * 1) dashed #c0ae88; border-radius: calc(var(--rpx) * 5); font-size: calc(var(--rpx) * 23); }
.tt-seat-button::after { border: 0; }
.tt-bottom-note { margin: calc(var(--rpx) * 22) 0 calc(var(--rpx) * 8); font-size: calc(var(--rpx) * 21); text-align: center; color: #8c7d63; }
.tt-restart { background: transparent; padding: 0; margin: 0; font-size: calc(var(--rpx) * 23); color: #8a624d; line-height: calc(var(--rpx) * 68); text-decoration: underline; }
.ten-room .exit-room-button { margin-top: calc(var(--rpx) * 12); font-size: calc(var(--rpx) * 22); color: #93816a; }
.tt-results { position: relative; margin: 0 0 calc(var(--rpx) * 26); padding: calc(var(--rpx) * 28) calc(var(--rpx) * 24) calc(var(--rpx) * 22); border: calc(var(--rpx) * 2) solid #b89b60; background: rgba(252, 245, 224, .9); box-shadow: inset 0 0 0 calc(var(--rpx) * 7) rgba(255, 252, 240, .65); border-radius: calc(var(--rpx) * 6); overflow: hidden; }
.tt-result-heading { margin: calc(var(--rpx) * 7) 0 calc(var(--rpx) * 10); font-size: calc(var(--rpx) * 43); font-weight: 700; letter-spacing: calc(var(--rpx) * 5); color: #4e422b; }
.tt-result-row { display: flex; align-items: center; gap: calc(var(--rpx) * 15); padding: calc(var(--rpx) * 18) 0; border-bottom: calc(var(--rpx) * 1) solid #d7c8a5; }
.tt-rank { width: calc(var(--rpx) * 40); color: #a28b55; font-size: calc(var(--rpx) * 34); font-family: Georgia, serif; flex-shrink: 0; }
.tt-result-name { min-width: 0; flex: 1; font-size: calc(var(--rpx) * 25); color: #504632; overflow-wrap: break-word; }
.tt-result-label { max-width: calc(var(--rpx) * 190); color: #8f5138; font-size: calc(var(--rpx) * 22); text-align: right; }
.tt-result-footer { margin-top: calc(var(--rpx) * 18); text-align: center; }
.tt-stamp, .tt-finish-seal { position: absolute; right: calc(var(--rpx) * 20); top: calc(var(--rpx) * 15); z-index: 5; padding: calc(var(--rpx) * 10) calc(var(--rpx) * 15); border: calc(var(--rpx) * 5) double currentColor; color: #9a422d; background: rgba(250, 243, 221, .92); font-size: calc(var(--rpx) * 34); font-weight: 900; letter-spacing: calc(var(--rpx) * 4); transform: rotate(-12deg); pointer-events: none; animation: tt-seal 600ms ease-out both; }
.tt-stamp.exact { color: #a28036; }
.tt-finish-seal { top: calc(var(--rpx) * 24); right: calc(var(--rpx) * 25); font-size: calc(var(--rpx) * 32); color: #9d7b32; }
.tt-current-card.effect-start { animation: tt-turn 350ms ease-out; }
.tt-current-card.effect-replace, .tt-current-card.effect-discard { animation: tt-card-fade 160ms ease-out; }
.tt-current-card.effect-deal { animation: tt-arrive 280ms ease-out; }
@keyframes tt-card-fade { from { opacity: .5; } to { opacity: 1; } }
.processing-notice { position: fixed; bottom: max(calc(var(--rpx) * 20), env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); margin: 0; z-index: 1000; white-space: nowrap; pointer-events: none; }
.tt-group-receiving { animation: tt-receive 350ms ease-out; }
.tt-flight { position: fixed; z-index: 999; pointer-events: none; transform-origin: center; animation: tt-fly 450ms cubic-bezier(.3,.08,.25,1) both; }
@keyframes tt-turn { from { opacity: .3; transform: rotateY(-85deg) rotate(-4deg); } to { opacity: 1; transform: rotateY(0) rotate(0); } }
@keyframes tt-arrive { from { opacity: .3; transform: translateY(calc(var(--rpx) * -20)) rotate(-6deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
@keyframes tt-receive { 0% { box-shadow: 0 0 0 0 rgba(169,130,56,.5); } 45% { box-shadow: 0 0 0 calc(var(--rpx) * 7) rgba(169,130,56,.25); } 100% { box-shadow: 0 0 0 0 rgba(169,130,56,0); } }
@keyframes tt-seal { 0% { opacity: 0; transform: scale(1.8) rotate(-18deg); } 35% { opacity: 1; transform: scale(.95) rotate(-12deg); } 55%,100% { opacity: 1; transform: scale(1) rotate(-12deg); } }
@keyframes tt-fly { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 75% { opacity: .9; } 100% { opacity: 0; transform: translate(var(--flight-x), var(--flight-y)) rotate(8deg) scale(.6); } }
@media (min-width: 600px) { .ten-room { padding-left: calc(var(--rpx) * 56); padding-right: calc(var(--rpx) * 56); } .tt-stage { padding-left: calc(var(--rpx) * 42); padding-right: calc(var(--rpx) * 42); } }
@media (prefers-reduced-motion: reduce) { .tt-current-card, .tt-action-ink, .tt-group-receiving, .tt-stamp, .tt-finish-seal, .tt-flight { animation: none !important; } .tt-hand-card { transition: none !important; } .tt-flight, .tt-action-ink { display: none; } }


.tt-my-hand.effect-finish .tt-poker, .tt-other-hand.effect-finish .tt-poker { animation: tt-reveal 550ms ease-out both; }
.tt-results.effect-finish .tt-result-row { animation: tt-result-arrive 300ms 200ms ease-out both; }
@keyframes tt-reveal { 0% { opacity: .4; transform: rotateY(-90deg); } 45% { opacity: 1; } 100% { opacity: 1; transform: rotateY(0); } }
@keyframes tt-result-arrive { from { opacity: 0; transform: translateY(calc(var(--rpx) * 12)); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .tt-my-hand.effect-finish .tt-poker, .tt-other-hand.effect-finish .tt-poker, .tt-results.effect-finish .tt-result-row { animation: none; } .tt-outgoing { display: none; animation: none; } }

/* 牌局结果使用图形，静态状态与全房间短通知共用同一徽章。 */
.tt-outcome-badge { position: relative; display: inline-block; flex-shrink: 0; width: calc(var(--rpx) * 82); height: calc(var(--rpx) * 76); font-size: calc(var(--rpx) * 40); vertical-align: middle; color: #a7853e; }
.tt-gold-ring { position: absolute; inset: 13% 13%; display: flex; align-items: center; justify-content: center; border: calc(var(--rpx) * 3) double #af8e43; border-radius: 50%; background: radial-gradient(circle, #fff8da 0%, #ecdaa8 75%); box-shadow: inset 0 0 0 calc(var(--rpx) * 3) rgba(255,250,220,.7); overflow: hidden; }
.tt-gold-ring span { font-family: 'Songti SC', 'SimSun', serif; font-size: .36em; font-weight: 900; color: #8c692a; line-height: 1.2; white-space: nowrap; }
.tt-laurel { position: absolute; top: 17%; width: 18%; height: 66%; }
.tt-laurel.left { left: 0; transform: rotate(-15deg); }
.tt-laurel.right { right: 0; transform: scaleX(-1) rotate(-15deg); }
.tt-laurel div { position: absolute; left: 15%; width: 78%; height: 28%; background: #aa8840; border-radius: 80% 0 80% 0; transform: rotate(-35deg); }
.tt-laurel div:nth-child(1) { top: 0; }
.tt-laurel div:nth-child(2) { top: 33%; left: 0; }
.tt-laurel div:nth-child(3) { top: 65%; left: 14%; }
.tt-spark { position: absolute; width: calc(var(--rpx) * 5); height: calc(var(--rpx) * 5); background: #c6a65e; transform: rotate(45deg); opacity: 0; }
.tt-spark.one { left: 5%; top: 10%; }
.tt-spark.two { right: 2%; top: 27%; }
.tt-spark.three { right: 27%; bottom: 1%; }
.tt-outcome-badge.busted { color: #a64e3d; }
.tt-broken-half { position: absolute; top: 17%; width: 29%; height: 66%; box-sizing: border-box; background: #f6e8cf; border: calc(var(--rpx) * 2) solid #a45b47; border-radius: calc(var(--rpx) * 3); }
.tt-broken-half.left { left: 18%; transform: rotate(-12deg); border-right-style: dashed; }
.tt-broken-half.right { right: 18%; transform: rotate(12deg); border-left-style: dashed; }
.tt-broken-cross { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1em; font-weight: 800; color: #a44435; text-shadow: 0 calc(var(--rpx) * 1) #fff6df; }
.tt-shard { position: absolute; width: 0; height: 0; border-left: calc(var(--rpx) * 4) solid transparent; border-right: calc(var(--rpx) * 4) solid transparent; border-bottom: calc(var(--rpx) * 9) solid #a85b45; opacity: 0; }
.tt-shard.one { left: 7%; top: 13%; }
.tt-shard.two { right: 6%; top: 22%; transform: rotate(60deg); }
.tt-shard.three { right: 18%; bottom: 8%; transform: rotate(-35deg); }
.tt-my-status .tt-outcome-badge { display: block; margin: calc(var(--rpx) * -8) 0 calc(var(--rpx) * 1) auto; }
.tt-group-title-line { display: flex; align-items: center; gap: calc(var(--rpx) * 7); min-width: 0; }
.tt-group-title-line .tt-group-name { min-width: 0; flex: 0 1 auto; }
.tt-group-title-line .tt-outcome-badge { width: calc(var(--rpx) * 52); height: calc(var(--rpx) * 48); margin: calc(var(--rpx) * -5) 0; font-size: calc(var(--rpx) * 28); }
.tt-result-outcome { display: flex; align-items: center; gap: calc(var(--rpx) * 11); }
.tt-result-outcome .tt-outcome-badge { width: calc(var(--rpx) * 64); height: calc(var(--rpx) * 60); font-size: calc(var(--rpx) * 34); }
.tt-result-outcome > span { min-width: calc(var(--rpx) * 35); font-family: Georgia, serif; font-size: calc(var(--rpx) * 28); }
.tt-outcome-notice { position: fixed; z-index: 1001; top: max(calc(var(--rpx) * 146), calc(env(safe-area-inset-top) + calc(var(--rpx) * 82))); left: calc(var(--rpx) * 28); width: min(calc(var(--rpx) * 470), calc(100% - calc(var(--rpx) * 56))); box-sizing: border-box; display: flex; align-items: center; gap: calc(var(--rpx) * 14); padding: calc(var(--rpx) * 12) calc(var(--rpx) * 16); border: calc(var(--rpx) * 2) solid #ba9b58; border-radius: calc(var(--rpx) * 8); background: #faf2dc; box-shadow: 0 calc(var(--rpx) * 7) calc(var(--rpx) * 22) rgba(67,49,23,.16), inset 0 0 0 calc(var(--rpx) * 4) rgba(255,252,237,.8); animation: tt-notice-appear 200ms ease-out both; }
.tt-outcome-notice.busted { border-color: #b3715e; background: #f8eadd; }
.tt-notice-name { min-width: 0; flex: 1; color: #544630; font-size: calc(var(--rpx) * 27); font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-notice-total { font-family: Georgia, serif; color: #8a6a30; font-size: calc(var(--rpx) * 31); }
.tt-outcome-notice.busted .tt-notice-total { color: #a14d3a; }
.tt-notice-close { color: #a2967f; font-size: calc(var(--rpx) * 25); padding-left: calc(var(--rpx) * 4); align-self: flex-start; line-height: 1; }
.tt-outcome-notice.exact .tt-gold-ring::after { content: ''; position: absolute; inset: -15% -70%; background: linear-gradient(110deg, transparent 35%, rgba(255,255,236,.85) 48%, transparent 61%); animation: tt-gold-sweep 800ms 120ms ease-out both; }
.tt-outcome-notice.exact .tt-spark { animation: tt-gold-particle 850ms 150ms ease-out both; }
.tt-outcome-notice.exact .tt-spark.two { animation-delay: 300ms; }
.tt-outcome-notice.exact .tt-spark.three { animation-delay: 450ms; }
.tt-outcome-notice.busted .tt-broken-half.left { animation: tt-crack-left 450ms ease-out both; }
.tt-outcome-notice.busted .tt-broken-half.right { animation: tt-crack-right 450ms ease-out both; }
.tt-outcome-notice.busted .tt-shard.one { animation: tt-shard-left 600ms 100ms ease-out both; }
.tt-outcome-notice.busted .tt-shard.two { animation: tt-shard-right 600ms 100ms ease-out both; }
.tt-outcome-notice.busted .tt-shard.three { animation: tt-shard-down 600ms 150ms ease-out both; }
@keyframes tt-notice-appear { from { opacity: 0; } to { opacity: 1; } }
@keyframes tt-gold-sweep { from { transform: translateX(-60%); } to { transform: translateX(60%); } }
@keyframes tt-gold-particle { 0% { opacity: 0; transform: scale(.6) rotate(45deg); } 25% { opacity: .9; } 100% { opacity: 0; transform: translateY(calc(var(--rpx) * -10)) scale(1.25) rotate(45deg); } }
@keyframes tt-crack-left { from { transform: rotate(0) translateX(calc(var(--rpx) * 4)); } to { transform: rotate(-12deg) translateX(0); } }
@keyframes tt-crack-right { from { transform: rotate(0) translateX(calc(var(--rpx) * -4)); } to { transform: rotate(12deg) translateX(0); } }
@keyframes tt-shard-left { from { opacity: .9; transform: translate(0,0) rotate(0); } to { opacity: 0; transform: translate(calc(var(--rpx) * -17),calc(var(--rpx) * -13)) rotate(-35deg); } }
@keyframes tt-shard-right { from { opacity: .9; transform: translate(0,0) rotate(60deg); } to { opacity: 0; transform: translate(calc(var(--rpx) * 18),calc(var(--rpx) * -8)) rotate(95deg); } }
@keyframes tt-shard-down { from { opacity: .9; transform: translate(0,0) rotate(-35deg); } to { opacity: 0; transform: translate(calc(var(--rpx) * 8),calc(var(--rpx) * 19)) rotate(-70deg); } }
@media (prefers-reduced-motion: reduce) { .tt-outcome-notice, .tt-outcome-notice .tt-gold-ring::after, .tt-outcome-notice .tt-spark, .tt-outcome-notice .tt-broken-half, .tt-outcome-notice .tt-shard { animation: none !important; } .tt-outcome-notice .tt-gold-ring::after, .tt-spark, .tt-shard { display: none; } }
/* 结果强调：斜盖章与整行状态，通知不挤动牌桌。 */
.tt-group.outcome-exact, .tt-group.mine.outcome-exact { border: calc(var(--rpx) * 2) solid #d6a01c; background: linear-gradient(110deg, #f8dc7b, #fff4cb 65%, #ffe9a0); box-shadow: inset 0 0 0 calc(var(--rpx) * 4) rgba(255,253,221,.85), 0 0 calc(var(--rpx) * 16) rgba(232,177,34,.38); margin-top: calc(var(--rpx) * 38); padding-top: calc(var(--rpx) * 52); }
.tt-group.outcome-busted, .tt-group.mine.outcome-busted { border-color: #b47765; background: #f3e3d8; }
.tt-group.outcome-exact .tt-group-title-line > .tt-outcome-badge { position: absolute; z-index: 3; left: calc(var(--rpx) * 6); right: auto; top: calc(var(--rpx) * -42); width: calc(var(--rpx) * 118); height: calc(var(--rpx) * 108); font-size: calc(var(--rpx) * 66); transform: rotate(-18deg); opacity: 1; pointer-events: none; }
.tt-my-status .tt-outcome-badge.exact { width: calc(var(--rpx) * 132); height: calc(var(--rpx) * 120); font-size: calc(var(--rpx) * 74); transform: rotate(-16deg); }
.tt-outcome-notice { width: calc(100% - calc(var(--rpx) * 56)); max-width: calc(var(--rpx) * 690); min-height: calc(var(--rpx) * 166); padding: calc(var(--rpx) * 20) calc(var(--rpx) * 22); gap: calc(var(--rpx) * 20); border-width: calc(var(--rpx) * 3); }
.tt-outcome-notice > .tt-outcome-badge { width: calc(var(--rpx) * 136); height: calc(var(--rpx) * 124); font-size: calc(var(--rpx) * 76); }
.tt-outcome-notice.exact > .tt-outcome-badge { width: calc(var(--rpx) * 156); height: calc(var(--rpx) * 142); font-size: calc(var(--rpx) * 86); transform: rotate(-12deg); }
.tt-outcome-notice .tt-notice-name { font-size: calc(var(--rpx) * 31); white-space: normal; overflow-wrap: anywhere; max-height: calc(var(--rpx) * 110); }
.tt-outcome-notice .tt-notice-total { font-size: calc(var(--rpx) * 29); max-width: calc(var(--rpx) * 140); flex-shrink: 0; }
.tt-outcome-notice.exact .tt-gold-ring::after { animation-duration: 1400ms; animation-iteration-count: 3; }
.tt-outcome-notice.exact .tt-spark { animation-duration: 1500ms; animation-iteration-count: 3; }
/* 常驻十点半徽章：固定左上角，只让光线运动。 */
.tt-group.outcome-exact .tt-gold-ring { border-color: #c28b08; background: radial-gradient(circle at 35% 25%, #fffde2, #ffdf66 60%, #e8b52e); animation: tt-gold-breathe 2600ms ease-in-out infinite; }
.tt-group.outcome-exact .tt-gold-ring span { color: #855500; text-shadow: 0 calc(var(--rpx) * 1) 0 #fff9c6; }
.tt-group.outcome-exact .tt-laurel div { background: linear-gradient(135deg, #fff2a4, #d79b13 65%, #b67d06); }
.tt-group.outcome-exact .tt-gold-ring::after { content: ''; position: absolute; inset: -15% -70%; background: linear-gradient(110deg, transparent 36%, rgba(255,255,239,.95) 48%, transparent 60%); animation: tt-gold-sweep 3200ms ease-in-out infinite; }
.tt-group.outcome-exact .tt-spark { background: #fff2a0; box-shadow: 0 0 calc(var(--rpx) * 6) calc(var(--rpx) * 2) #efb522; animation: tt-gold-particle 2300ms ease-out infinite; }
.tt-group.outcome-exact .tt-spark.two { animation-delay: 700ms; }
.tt-group.outcome-exact .tt-spark.three { animation-delay: 1400ms; }
@keyframes tt-gold-breathe { 0%, 100% { box-shadow: inset 0 0 0 calc(var(--rpx) * 3) rgba(255,250,220,.8), 0 0 calc(var(--rpx) * 7) rgba(242,187,27,.4); } 50% { box-shadow: inset 0 0 0 calc(var(--rpx) * 3) #fff7c9, 0 0 calc(var(--rpx) * 20) calc(var(--rpx) * 5) rgba(242,187,27,.65); } }
@media (prefers-reduced-motion: reduce) { .tt-group.outcome-exact .tt-gold-ring, .tt-group.outcome-exact .tt-gold-ring::after, .tt-group.outcome-exact .tt-spark { animation: none !important; } .tt-group.outcome-exact .tt-gold-ring::after, .tt-group.outcome-exact .tt-spark { display: none; } }




body .room-exit-control{top:max(12px,env(safe-area-inset-top))!important}body .room-page{padding-top:70px!important}body .home-page{padding-top:60px!important}#app button{touch-action:manipulation}#app input{font-size:max(16px,1em)}.seating-list{touch-action:pan-y}body .paper-art,body .room-paper-art{left:0;right:0;width:100%}body .td-input{min-height:44px}body .room-page{min-height:100dvh}body .room-exit-control{max-width:calc(100vw - 32px)}body .jy-actions,body .hd-actions,body .mb-actions,body .ms-actions,body .at-draft,body .dr-controls,body .room-dream-bet-dock{max-width:580px;margin-left:auto;margin-right:auto}
.web-avatar-grid img{width:100%;height:auto;aspect-ratio:1;max-width:64px}

body .home-page{padding-top:max(28px,env(safe-area-inset-top))!important;padding-bottom:calc(112px + env(safe-area-inset-bottom))!important}
.home-nav{position:fixed;z-index:80;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:calc(100% - 28px);max-width:552px;padding:7px;border:1px solid #c7af87;border-radius:24px;background:#fff9eef5;box-shadow:0 8px 32px #51351726,inset 0 1px 0 #fff;backdrop-filter:blur(16px)}
#app .home-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:58px;padding:6px 2px;margin:0;border-radius:18px;background:transparent;color:#8b745a;font-size:12px;line-height:1.4;font-weight:600;transition:background .18s,color .18s,transform .18s}
#app .home-nav-item.active{background:#eadbc2;color:#634126;box-shadow:inset 0 1px 0 #fdf6e7}
#app .home-nav-item:active{transform:scale(.96)}
#app .home-nav-item:focus-visible{outline:2px solid #a46b43;outline-offset:2px}
.home-nav-icon{width:23px;height:23px;display:block}
.home-code-input{width:100%;height:62px;border:1px solid #cbb28b;border-radius:12px;background:#fffaf0;text-align:center;letter-spacing:5px;margin:12px 0 24px;color:#69452e;font-weight:700}
.home-profile-avatar{display:block;width:84px;height:84px;margin:22px auto 16px;border-radius:50%;border:3px solid #e6d3b1}
.home-profile-name{font-size:21px;font-weight:700;text-align:center;overflow-wrap:anywhere;margin:0 0 26px;color:#624630}
#app .home-install-button{width:100%;margin-top:14px;background:#eee2cc;border:1px solid #cfb995;color:#735334}
@media(prefers-reduced-motion:reduce){#app .home-nav-item{transition:none}}

.web-profile-sheet{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:16px;background:#241c16a3;backdrop-filter:blur(6px)}
.web-profile-card{display:flex;flex-direction:column;width:min(100%,440px);max-height:calc(100dvh - 32px);padding:0;overflow:hidden;border:1px solid #c4a779;border-radius:22px;background:linear-gradient(140deg,#fffaed,#f2e6cc);color:#65492e;box-shadow:0 18px 70px #20130655}
.web-profile-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 12px;border-bottom:1px solid #dbc6a166;flex:none}
.web-profile-heading h3{margin:0;font-size:21px;letter-spacing:1px}
.web-profile-close{width:38px;height:38px;padding:0;background:#e8d7b9;color:#795738;border:0;border-radius:50%;font-size:25px;line-height:1;flex:none}
.web-profile-body{overflow-y:auto;overscroll-behavior:contain;padding:18px 22px 12px;min-height:0}
.web-avatar-preview{width:min(64vw,210px);height:auto;aspect-ratio:1;margin:0 auto 12px;border:5px solid #fff9e9;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px #bda074,0 8px 22px #64432020;background:#e6d6b9}
.web-avatar-preview img,.web-avatar-preview canvas{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.web-avatar-preview [hidden],.web-profile-card [hidden]{display:none!important}
.web-avatar-crop{touch-action:none;cursor:grab}
.web-avatar-crop:active{cursor:grabbing}
.web-profile-hint{margin:0;text-align:center;font-size:13px;color:#927352}
.web-avatar-zoom-label{display:flex;align-items:center;gap:14px;margin:8px 0 12px;font-size:13px}
.web-profile-card .web-avatar-zoom{width:100%;flex:1;height:28px;min-width:0;padding:0;margin:0;border:0;background:transparent;accent-color:#a66a42}
.web-profile-card .web-avatar-upload{display:block;min-height:42px;margin:14px auto 22px;padding:8px 24px;background:#e8d8bc;color:#7e5433;border:1px solid #cbb08a;border-radius:22px;font-size:14px;font-weight:600}
.web-profile-label{display:block;font-size:14px;font-weight:650;margin:0 0 12px}
.web-profile-card .web-profile-name-input{width:100%;padding:12px 14px;min-height:46px;margin:8px 0 12px;border:1px solid #cbb491;border-radius:10px;background:#fffaf0;color:#563d26;font-size:16px;outline-offset:3px}
.web-avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.web-avatar-grid .web-avatar-option{display:block;position:relative;width:100%;aspect-ratio:1;min-width:0;padding:3px;border:2px solid transparent;border-radius:16px;background:#e7d8bd;overflow:hidden;transition:border-color .15s,transform .15s}
.web-avatar-grid .web-avatar-option.selected{border-color:#ab663f;background:#d6b284;box-shadow:0 0 0 2px #b3774324}
.web-avatar-grid .web-avatar-option.selected::after{content:'✓';position:absolute;right:2px;bottom:2px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#a9633d;color:#fff8e9;font-size:13px}
.web-avatar-grid .web-avatar-option img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;border:0;border-radius:11px}
.web-profile-error{min-height:20px;margin-top:12px;font-size:13px;color:#a13e2e;line-height:1.5}
.web-profile-actions{display:flex;gap:12px;flex:none;margin:0;padding:14px 22px max(16px,env(safe-area-inset-bottom));border-top:1px solid #d7c09a;background:#f5ead3}
.web-profile-actions button{flex:1;min-height:46px;padding:12px;background:#a46740;color:#fff7e7;border:1px solid #a46740;border-radius:11px;font-size:15px;font-weight:700}
.web-profile-actions .web-profile-cancel{background:#e7d8bd;border-color:#ceb693;color:#7a5b3b}
.web-profile-card button:disabled,.web-profile-card input:disabled{opacity:.55;cursor:wait}
.web-profile-card button:focus-visible{outline:2px solid #a96a43;outline-offset:3px}
@media(max-width:350px){.web-profile-sheet{padding:10px}.web-profile-card{max-height:calc(100dvh - 20px)}.web-profile-body{padding:16px}.web-profile-heading{padding:14px 16px 10px}.web-avatar-grid{gap:8px}.web-profile-actions{padding-left:16px;padding-right:16px}}
@media(prefers-reduced-motion:reduce){.web-avatar-option{transition:none}}
