:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#fff7ea;background:#160d23;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 50% -20%,rgba(167,93,220,.34),transparent 45%),linear-gradient(180deg,#251339,#140b20)}button,input{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}input{width:100%;border:1px solid rgba(255,255,255,.16);border-radius:14px;outline:none;padding:12px 14px;background:#170b22bd;color:#fff7ea}input:focus{border-color:#d5a4ff;box-shadow:0 0 0 3px #d5a4ff1f}.lobby-shell,.waiting-shell{position:relative;display:grid;min-height:100vh;place-items:center;overflow:hidden;padding:24px}.lobby-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,#13081e33,#13081eb8 62%),url(/assets/concepts/toothtrap-splash-concept-v1.png) center / cover;filter:saturate(.92)}.lobby-card,.waiting-card{position:relative;z-index:1;width:min(470px,100%);border:1px solid rgba(255,255,255,.16);border-radius:30px;padding:clamp(26px,5vw,44px);background:#1c0d2ae0;box-shadow:0 32px 100px #07030c8c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.lobby-card{margin-left:min(42vw,620px)}.lobby-card h1,.waiting-card h1{margin:8px 0 10px;font-size:clamp(38px,6vw,64px)}.lobby-card p,.waiting-card p{margin:0 0 26px;color:#d0bddc;line-height:1.65}.lobby-card label{display:grid;gap:8px;color:#e6d8ec;font-size:13px;font-weight:700}.primary-action,.join-row button,.waiting-actions button{border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 16px;background:#ffffff14;font-weight:800;cursor:pointer}.lobby-card>.primary-action{width:100%;margin-top:14px}.primary-action{border-color:#f4c662;background:linear-gradient(135deg,#ffdc86,#e9ad43)!important;color:#2b1736}.join-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.connection{display:block;margin-top:16px;color:#ba9bc9}.connection:before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#e16e72}.connection.online:before{background:#79dc9c;box-shadow:0 0 10px #79dc9cb3}.error-banner{margin-top:12px;border:1px solid rgba(255,115,120,.35);border-radius:12px;padding:10px 12px;background:#8924393d;color:#ffc4c6;font-size:13px}.waiting-shell{background:radial-gradient(circle at 50% 0%,rgba(157,88,207,.36),transparent 48%),#160d23}.waiting-card{width:min(820px,100%)}.waiting-card h1{letter-spacing:.16em}.waiting-players{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.waiting-players article{display:grid;min-height:92px;grid-template-columns:38px 1fr;grid-template-rows:1fr 1fr;column-gap:10px;align-items:center;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:12px;background:#ffffff0f}.waiting-players article>span{display:grid;grid-row:1 / 3;width:38px;height:38px;place-items:center;border-radius:12px;background:#7b4ca8;font-weight:900}.waiting-players small{color:#bda9c8}.waiting-players .empty{opacity:.48}.waiting-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.game-shell{position:relative;display:grid;min-height:100vh;grid-template-columns:minmax(0,1fr) 250px;grid-template-rows:auto auto minmax(430px,1fr) auto;gap:16px;padding:20px clamp(18px,3vw,48px) 24px}.topbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.topbar h1{margin:2px 0 0;font-size:clamp(24px,3vw,42px);letter-spacing:.04em}.eyebrow,.effects-panel>span{color:#d8a9ff;font-size:11px;font-weight:800;letter-spacing:.2em}.room-pill{border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:10px 16px;background:#ffffff12;color:#dfd1e9}.players{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.player{display:flex;align-items:center;gap:10px;min-width:0;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:10px 12px;background:#12091cb8;transition:.18s ease}.player.active{border-color:#f7c65d;box-shadow:0 0 22px #f7c65d2e;transform:translateY(-2px)}.avatar{display:grid;width:36px;aspect-ratio:1;flex:0 0 auto;place-items:center;border-radius:12px;background:linear-gradient(145deg,#aa72dc,#684198);font-weight:900}.player div{display:grid;min-width:0;gap:3px}.player strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hands{color:#ffd87d;font-size:13px}.stage{position:relative;min-height:430px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:32px;background:#1a1029;box-shadow:0 28px 80px #00000059}.stage-copy{position:absolute;bottom:22px;left:50%;display:grid;min-width:220px;gap:3px;padding:12px 18px;transform:translate(-50%);border:1px solid rgba(255,255,255,.14);border-radius:18px;background:#130a1ec2;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none}.stage-copy span,.stage-copy small{color:#c9b4d8;font-size:12px}.stage-copy strong{font-size:18px}.effects-panel{align-self:stretch;border:1px solid rgba(255,255,255,.1);border-radius:26px;padding:22px;background:linear-gradient(180deg,#43265bd1,#1a0d26e6)}.effects-panel strong{display:block;margin-top:14px;font-size:18px}.effects-panel p{color:#bbaac7;font-size:13px;line-height:1.65}.hand{grid-column:1 / -1;display:flex;justify-content:center;gap:12px;min-height:130px}.card{display:grid;width:min(155px,28vw);min-height:118px;gap:4px;border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:14px;background:linear-gradient(150deg,#573774f2,#2a183cfa);text-align:left;cursor:pointer;transition:.18s ease}.card:hover{transform:translateY(-8px) rotate(-1deg);border-color:#ffffff6b}.card>span{color:#cda8ef;font-size:11px;font-weight:800}.card strong{font-size:19px}.card small{color:#cbbbd6;line-height:1.45}.card-1{box-shadow:inset 0 3px #5cc9ff}.card-2{box-shadow:inset 0 3px #79dc9c}.card-3{box-shadow:inset 0 3px #ff746e}.reset-button{position:absolute;right:clamp(18px,3vw,48px);bottom:26px;border:0;border-radius:14px;padding:10px 14px;background:#f2bd55;color:#2b1938;font-weight:800;cursor:pointer}@media(max-width:820px){.lobby-card{margin:38vh 0 0}.lobby-backdrop{background-position:42% center}.waiting-players{grid-template-columns:repeat(2,minmax(0,1fr))}.waiting-actions{flex-wrap:wrap}.game-shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(380px,58vh) auto auto;padding:14px}.players{grid-template-columns:repeat(2,minmax(0,1fr))}.stage{min-height:380px}.effects-panel{display:none}.hand{overflow-x:auto;justify-content:flex-start;padding:6px 2px 12px}.card{flex:0 0 145px}.reset-button{position:static;grid-column:1;justify-self:end}}@media(orientation:portrait)and (max-width:650px){.game-shell:before{content:"横屏体验更佳";position:fixed;z-index:20;top:12px;left:50%;border-radius:999px;padding:8px 12px;transform:translate(-50%);background:#f2bd55;color:#281635;font-size:12px;font-weight:800}}
