:root{--bg:#f5f4ee;--ink:#263c35;--muted:#79847b;--line:#e1e4db;--accent:#d9ed86;--red:#eb6554;--yellow:#ecc554;--green:#579782;--blue:#5885ca}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:'DM Sans',system-ui,-apple-system,'Microsoft YaHei',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,.button{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border-radius:9px;text-decoration:none;font-weight:600;transition:transform .15s,background .15s}button:hover,.button:hover{transform:translateY(-1px)}button:disabled{opacity:.38;cursor:default;transform:none}button:focus-visible,a:focus-visible{outline:3px solid #99b766;outline-offset:3px}.primary{background:var(--accent);color:var(--ink)}.dark{background:var(--ink);color:white}.ghost{border:1px solid var(--line);background:transparent;color:var(--ink)}.small{padding:8px 13px;font-size:12px}.wide{width:100%}[hidden]{display:none!important}header{height:86px;max-width:1320px;margin:auto;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:7px;font-size:23px;letter-spacing:-1px;font-weight:800;color:var(--ink);text-decoration:none}.brand b{font-weight:400}.brand-icon{width:34px;height:38px;background:var(--ink);color:var(--accent);border-radius:7px;display:grid;place-items:center;transform:rotate(-10deg);font-size:25px;margin-right:5px}.beta{font-size:9px;letter-spacing:1px;border:1px solid #c9d3c1;border-radius:4px;padding:4px 6px;margin-left:9px}.account{display:flex;gap:12px;align-items:center}.connection{font-size:11px;color:var(--muted)}.connection:before,.dot{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#7a9e64;margin-right:7px}#account{display:flex;align-items:center;gap:8px;font-size:12px}.avatar{width:31px;height:31px;object-fit:cover;border-radius:50%;background:#e7eddb}.avatar-placeholder{display:inline-grid;place-items:center;font-weight:700;color:#527461;background:#e5ecda}main{max-width:1200px;padding:0 24px;margin:auto}.hero{display:flex;justify-content:space-between;align-items:center;min-height:360px;padding:36px 24px 32px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#819078;margin-bottom:13px}h1{font-size:44px;letter-spacing:-1.5px;line-height:1.35;margin:0 0 16px;font-weight:700}h1 span{color:#849377}.hero p{line-height:1.9;color:var(--muted);font-size:13px;margin:0 0 23px}.hero-actions{display:flex;gap:12px}.hero-note{font-size:11px;color:var(--muted);margin-top:18px}.card-art{width:410px;height:280px;position:relative;margin-right:45px}.art-card{width:145px;height:210px;border:8px solid #fffdf5;position:absolute;border-radius:16px;box-shadow:0 18px 22px #283e3520;display:flex;align-items:center;justify-content:center;top:26px;left:155px}.art-card:after{content:'';border:3px solid #fff9;border-radius:50%;width:104px;height:155px;position:absolute;transform:rotate(30deg)}.art-card span{font-size:85px;font-weight:800;font-style:italic;color:#fff;z-index:1;text-shadow:2px 4px #0002}.art-card.blue{transform:rotate(-24deg);left:55px;top:47px}.art-card.yellow{transform:rotate(-5deg);left:140px;top:15px}.art-card.red{transform:rotate(18deg);left:228px;top:51px}.art-card small{position:absolute;bottom:8px;font-size:9px;color:white;letter-spacing:1px}.spark{position:absolute;left:355px;top:0;font-size:46px;color:#adc276}.red{background:var(--red);color:white}.yellow{background:var(--yellow);color:#53451e}.green{background:var(--green);color:white}.blue{background:var(--blue);color:white}.lobby-heading{display:flex;align-items:center;justify-content:space-between;margin:12px 0 22px}.lobby-heading .eyebrow{margin-bottom:5px}h2{font-size:25px;letter-spacing:-.5px;margin:0}.count{display:inline-grid;place-items:center;min-width:26px;height:25px;border-radius:7px;background:#e6e9dd;font-size:13px;vertical-align:middle;margin-left:6px}.live{font-size:11px;color:var(--muted)}.lobby-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.rooms-panel{border:1px solid var(--line);border-radius:14px;min-height:365px;background:#fffdf8;overflow:hidden}.panel-top{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}h3{margin:0;font-size:15px}.filters{display:flex;gap:5px}.filter{font-size:11px;background:transparent;color:var(--muted);padding:7px 11px}.filter.selected{background:#eaf0db;color:var(--ink)}.empty{padding:62px 20px;text-align:center;color:var(--muted)}.empty-icon{font-size:36px;opacity:.6;margin-bottom:14px}.empty h3{color:#627666;margin-bottom:8px}.empty p{font-size:12px}.room-card{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.room-card:last-child{border-bottom:0}.room-card h3{font-size:16px;display:flex;align-items:center;gap:10px}.tag{font-size:10px;padding:4px 7px;border-radius:4px;background:#eef2df;color:#70804e;font-weight:400}.tag.playing{background:#f8ead7;color:#a57c39}.room-meta{font-size:11px;color:var(--muted);margin-top:10px;display:flex;gap:15px;flex-wrap:wrap}.room-card p{font-size:12px;color:var(--muted);margin:10px 0 0}.room-card button{white-space:nowrap;font-size:12px;padding:10px 15px;background:#edf2e3;color:var(--ink)}.side-card{border:1px solid var(--line);border-radius:14px;padding:23px;background:#eef0e6;margin-bottom:17px}.mini-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #d5ddc6;border-radius:8px;margin-bottom:15px;font-size:22px}.side-card p{font-size:11px;line-height:1.8;color:var(--muted);margin:10px 0 18px}.side-card form button{width:100%;margin-top:12px}label{display:block;font-size:12px;margin:16px 0 8px;font-weight:500}input,select,textarea{width:100%;border:1px solid #dfe3d7;border-radius:8px;background:#fffdf8;color:var(--ink);padding:12px;outline:none}input:focus,textarea:focus,select:focus{border-color:#96aa73;box-shadow:0 0 0 3px #a8bf7920}#roomCode{letter-spacing:3px}.guest{background:transparent}.guest .eyebrow{margin-bottom:0}.guest p{margin-bottom:0}.side-tip{display:flex;gap:10px;color:#8b977b;font-size:11px;line-height:1.9;padding:0 8px}footer{max-width:1152px;margin:45px auto 0;border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;font-size:10px;color:#94a08f;letter-spacing:1px}footer i{font-style:normal;margin-left:15px;letter-spacing:0}dialog{border:1px solid var(--line);border-radius:16px;width:460px;max-width:calc(100% - 32px);padding:28px;background:#fffdf8;color:var(--ink);box-shadow:0 30px 100px #132d3530}dialog::backdrop{background:#1d322d66;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading h2,dialog h2{font-size:22px}.close{background:transparent;padding:0 8px;font-size:26px;color:var(--muted)}dialog p,.muted{color:var(--muted);line-height:1.8;font-size:12px}dialog .wide{margin-top:16px}.rules p{font-size:13px}.color-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:10;padding:15px 25px;background:#263c35;color:white;box-shadow:0 6px 24px #0002;border-radius:10px;max-width:90%}.room-heading{display:flex;justify-content:space-between;align-items:center;margin:35px 0 22px}.room-info{background:#fffdf8;border:1px solid var(--line);border-radius:12px;padding:15px 20px}.room-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;font-size:13px}#roomDescription{color:var(--muted);font-size:12px;line-height:1.8}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.controls button{padding:9px 13px;font-size:12px}#spectatorList{margin-top:15px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:9px;flex-wrap:wrap}.spectator{display:flex;gap:6px;align-items:center;border:1px solid var(--line);padding:5px 9px;border-radius:8px}.spectator button{font-size:10px;padding:6px}.invitation{background:#e2efba;padding:18px;border-radius:10px;margin-top:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-banner{text-align:center;padding:19px;font-size:13px;line-height:1.8}.players{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:18px}.player{display:flex;align-items:center;gap:10px;background:#fffdf8;border:1px solid var(--line);padding:12px 15px;border-radius:12px;min-width:130px}.player.active{border-color:#87a064;box-shadow:0 0 0 3px #c7de9b50}.player small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.player strong{font-size:12px}.player .uno-tag{font-size:10px;color:#ad6540}.table{background:#e6ecdf;border:1px solid #d4dece;border-radius:100px;min-height:265px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;margin:0 28px;box-shadow:inset 0 0 0 9px #eef1e7}.table-watermark{position:absolute;top:17px;color:#ced9c6;letter-spacing:6px;font-weight:800;font-size:16px}.pile-group{display:flex;gap:38px;align-items:center;z-index:1}.pile-group>div{text-align:center}.pile-group p{font-size:11px;color:#718468;margin:9px 0}.card{width:79px;height:116px;border:5px solid #fffdf8;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;position:relative;font-size:30px;font-weight:800;box-shadow:0 5px 9px #152a3318;padding:0}.card:after{content:'';position:absolute;inset:15px 5px;border:2px solid #ffffffa8;border-radius:50%;transform:rotate(25deg)}.card span{z-index:1}.card small{position:absolute;top:4px;left:4px;font-size:11px}.card.wild{background:conic-gradient(var(--red) 0deg 90deg,var(--blue) 90deg 180deg,var(--green) 180deg 270deg,var(--yellow) 270deg);color:white;text-shadow:1px 2px #0005}.card-back{background:#263c35;color:var(--accent);font-size:20px;font-style:italic;transform:rotate(-5deg)}.table-hint{font-size:11px;color:#70866c;margin-top:7px}.hand-panel{padding:25px 0}.hand-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}#hand{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;min-height:120px}#hand .card:disabled{opacity:.65}#hand .card:not(:disabled):hover{transform:translateY(-9px)}.hand-empty{align-self:center;color:var(--muted);font-size:12px}.activity{border-top:1px solid var(--line);font-size:12px;color:var(--muted);padding:15px 0}.activity summary{cursor:pointer}#log{display:flex;flex-direction:column;gap:8px;padding-top:15px}
@media(max-width:800px){header{padding:0 20px;height:74px}.beta,.connection{display:none}.brand{font-size:20px}.account{gap:6px}.hero{padding:28px 0;min-height:300px}.card-art{transform:scale(.72);transform-origin:right center;width:270px;margin-right:0}h1{font-size:34px}.lobby-grid{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.side-card{margin-bottom:0}.side-tip{grid-column:1/-1}.panel-top{padding:18px}.table{margin:0}.hand-heading{align-items:flex-start}footer{margin:30px 24px 0}.room-heading h2{font-size:21px}}
@media(max-width:540px){main{padding:0 16px}.hero{min-height:320px;position:relative;overflow:hidden}.hero>div:first-child{z-index:1}.hero p{font-size:12px}.card-art{position:absolute;right:-105px;top:60px;transform:scale(.51);opacity:.65;z-index:0}h1{font-size:31px}.hero-actions{gap:7px}.hero-actions button{padding:12px 14px;font-size:12px}.lobby-heading{margin-top:9px}h2{font-size:23px}.live{font-size:10px}.panel-top{gap:8px;flex-wrap:wrap}.filter{padding:7px 8px}.room-card{padding:18px 15px}.room-card h3{font-size:14px;flex-wrap:wrap}.room-meta{gap:8px}aside{grid-template-columns:1fr}.side-tip{grid-column:auto}.side-card{padding:19px}.hand-heading{flex-direction:column}.players{gap:8px}.player{padding:9px;min-width:115px}.table{border-radius:45px;min-height:240px}#hand{gap:7px}.card{width:66px;height:98px;font-size:26px}.room-summary{font-size:11px;white-space:nowrap}#roomSummary{overflow:hidden;text-overflow:ellipsis}.room-info{padding:12px}.account .small{font-size:10px;padding:7px}.avatar{width:26px;height:26px}#account{max-width:120px;font-size:11px}footer{line-height:1.8;gap:20px;font-size:9px}footer i{display:block;margin-left:0}.brand-icon{width:28px;height:33px}}

.account .button{background:#e9efde;color:var(--ink)}
