*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{color:#3b2414;min-height:100vh;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#f5ead6 radial-gradient(circle at 50% 0,#fbf3e4,#ead6b2);min-height:100dvh;font:15px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif}input,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}#app{max-width:600px;min-height:100vh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);margin:0 auto}.muted{color:#8c6f55}.small{font-size:13px}.center{text-align:center;justify-content:center}a{color:#a5381a}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#5a3416;cursor:pointer;white-space:nowrap;background:#fffaf1;border:1px solid #c79b67;border-radius:10px;padding:9px 16px;font-size:15px;transition:transform 80ms,background .15s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.55}.btn.primary{color:#fff;background:linear-gradient(#b8452a,#8f2d16);border-color:#7a2410}.btn.danger{color:#b3261e}.btn.ghost{color:#8f2d16;background:0 0;border-color:#0000}.btn.small{padding:6px 10px;font-size:13px}.btn.block{width:100%;margin-top:14px;padding:12px;font-size:16px;display:block}.icon-btn{color:#fff;cursor:pointer;background:0 0;border:0;padding:8px 10px;font-size:15px}.input{color:#3b2414;background:#fff;border:1px solid #d3b48c;border-radius:10px;outline:none;flex:1;width:100%;min-width:0;padding:10px 12px;font-size:16px}.input:focus{border-color:#a5381a;box-shadow:0 0 0 3px #a5381a1f}.row{align-items:center;gap:8px;margin-top:8px;display:flex}.label{color:#8c6f55;margin:12px 0 4px;font-size:13px}.field-tip{color:#8c6f55;min-height:18px;margin-top:4px;font-size:12px}.field-tip.ok{color:#2e7d32}.field-tip.err{color:#c62828}.hint{text-align:center;color:#8c6f55;margin-top:14px;font-size:13px}.auth-page{padding:48px 20px 24px}.brand{justify-content:center;align-items:center;gap:14px;margin-bottom:28px;display:flex}.brand-logo{border-radius:18px;width:72px;height:72px;box-shadow:0 6px 18px #78280a40}.brand-name{letter-spacing:4px;color:#7a2410;font-family:STKaiti,KaiTi,serif;font-size:30px;font-weight:800}.brand-sub{color:#8c6f55;font-size:14px}.auth-card,.card{background:#fffbf3eb;border:1px solid #e6cfa9;border-radius:16px;padding:16px;box-shadow:0 4px 16px #78461414}.auth-foot{text-align:center;color:#8c6f55;margin-top:16px;font-size:12px}.tabs{background:#f1e1c4;border-radius:12px;gap:6px;padding:4px;display:flex}.tab{color:#8c6f55;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:8px;font-size:15px}.tab.on{color:#7a2410;background:#fff;font-weight:700;box-shadow:0 1px 4px #00000014}.lobby{padding:0 14px 24px}.lobby .card{margin-top:14px}.lobby-head{color:#fff;background:linear-gradient(135deg,#8f2d16,#b8452a);border-radius:0 0 22px 22px;align-items:center;gap:12px;margin:0 -14px;padding:18px 14px 34px;display:flex}.lobby-head .muted{color:#f6d9c6}.head-logo{border:2px solid #fff9;border-radius:14px;width:52px;height:52px}.head-info{flex:1}.head-name{font-size:19px;font-weight:700}.stats{background:#fffaf1;border-radius:14px;justify-content:space-around;margin:-22px 6px 0;padding:10px 6px;display:flex;position:relative;box-shadow:0 4px 14px #78280a26}.stat{color:#8c6f55;flex-direction:column;align-items:center;font-size:12px;display:flex}.stat b{color:#3b2414;font-size:19px}.stat b.win{color:#c62828}.stat b.loss{color:#455a64}.card-title{color:#7a2410;margin-bottom:4px;font-size:17px;font-weight:700}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg-btn{color:#5a3416;cursor:pointer;background:#fff;border:1px solid #e0c49c;border-radius:9px;flex:1;padding:8px 4px;font-size:14px}.seg-btn.on{color:#fff;background:#8f2d16;border-color:#8f2d16}.chip{cursor:pointer;background:#fff;border:1px solid #d3b48c;border-radius:16px;margin:4px 6px 0 0;padding:5px 10px;font-size:13px;display:inline-block}.foot{text-align:center;margin-top:18px}.game-page,.page{min-height:100vh;flex-direction:column;min-height:100dvh;padding-bottom:16px;display:flex}.topbar{color:#fff;z-index:5;background:#8f2d16;justify-content:space-between;align-items:center;padding:4px;display:flex;position:-webkit-sticky;position:sticky;top:0}.topbar-title{font-size:16px;font-weight:700}.player-bar{align-items:center;gap:8px;min-height:40px;padding:8px 14px;font-size:14px;display:flex}.player-bar.active{background:#a5381a14}.dot{border-radius:50%;flex:none;width:12px;height:12px}.dot.red{background:#c62828}.dot.black{background:#222}.pname{text-overflow:ellipsis;white-space:nowrap;max-width:40%;font-weight:700;overflow:hidden}.pside{color:#8c6f55;font-size:12px}.turn{color:#fff;background:#2e7d32;border-radius:10px;padding:1px 8px;font-size:12px}.captured{color:#8c6f55;letter-spacing:1px;white-space:nowrap;margin-left:auto;font-family:STKaiti,KaiTi,serif;font-size:14px;overflow:hidden}.board-wrap{justify-content:center;width:100%;padding:0 4px;display:flex;position:relative}.board-canvas{touch-action:manipulation;cursor:pointer;border-radius:6px;display:block;box-shadow:0 6px 22px #50280a4d}.status-line{text-align:center;color:#5a3416;padding:6px;font-size:14px}.status-line.warn{color:#c62828;font-weight:700}.status-line.over{color:#7a2410;font-size:16px;font-weight:700}.actions{flex-wrap:wrap;justify-content:center;gap:6px;padding:0 10px;display:flex}.actions .btn{flex:1;min-width:60px;padding:9px 6px}.extra{padding:0 12px}.hint-card,.review-card{background:#fffaf1;border:1px solid #e6cfa9;border-radius:12px;margin-top:10px;padding:10px 12px;font-size:14px}.hint-card .btn{margin-top:8px}.ai-text{white-space:pre-wrap;margin-top:8px;line-height:1.7}.move-list{white-space:nowrap;color:#5a3416;background:#fffbf3b3;border-radius:10px;min-height:34px;margin:10px 12px 0;padding:8px 10px;font-size:13px;overflow-x:auto}.mv{margin-right:14px}.mv b{color:#a5381a;font-weight:600}.flash{color:#d32f2f;text-shadow:0 2px #fff,0 0 18px #ffffffe6;pointer-events:none;letter-spacing:8px;font:800 46px STKaiti,KaiTi,serif;animation:.9s ease-out forwards flash;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}@keyframes flash{0%{opacity:0;transform:translate(-50%,-50%)scale(1.6)}20%{opacity:1;transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0}}.records{padding:12px}.records .card{margin-bottom:10px}.rec{background:#fffaf1;border:1px solid #efdcbc;border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;display:flex}.rec-res{color:#fff;background:#9e9e9e;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font:700 17px STKaiti,KaiTi,serif;display:flex}.rec-res.win{background:#c62828}.rec-res.loss{background:#455a64}.rec-res.draw{background:#a1887f}.rec-main{flex:1;min-width:0}.modal-mask{z-index:50;background:#1e0f0573;justify-content:center;align-items:center;padding:20px;animation:.15s fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:#fffaf1;border-radius:16px;width:100%;max-width:380px;max-height:85vh;padding:18px;overflow:auto;box-shadow:0 10px 40px #0000004d}.modal-title{color:#7a2410;text-align:center;font-size:18px;font-weight:700}.modal-body{margin:10px 0 14px;font-size:14px}.modal-btns{gap:10px;display:flex}.modal-btns .btn{flex:1}.rules p{margin:6px 0;line-height:1.7}.result-body{text-align:center}.result-big{margin:6px 0;font-size:18px;font-weight:700}.result-big.win{color:#c62828}.room-code{text-align:center;letter-spacing:8px;color:#8f2d16;margin:4px 0 10px;font:800 38px/1.2 monospace}.invite-link{word-break:break-all;-webkit-user-select:all;-moz-user-select:all;user-select:all;background:#f3e5cc;border-radius:8px;padding:8px;font-size:13px}#toast{color:#fff;opacity:0;pointer-events:none;z-index:60;text-align:center;background:#281408e0;border-radius:20px;max-width:86vw;padding:10px 18px;font-size:14px;transition:all .2s;position:fixed;bottom:18%;left:50%;transform:translate(-50%,20px)}#toast.show{opacity:1;transform:translate(-50%)}@keyframes fade{0%{opacity:0}}@media (min-width:900px){#app{max-width:640px}.auth-page{padding-top:80px}}.hub-title{color:#7a2410;margin:18px 4px 2px;font-size:18px;font-weight:700}.game-card{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;border:1px solid #e6cfa9;margin-top:14px;display:block}.game-card:active{transform:scale(.98)}.game-name{color:#7a2410;margin-bottom:4px;font-size:20px;font-weight:700}.gomoku-canvas{touch-action:manipulation;cursor:pointer;border-radius:6px;display:block;box-shadow:0 6px 22px #50280a4d}.guess-card{text-align:center}.guess-kind{color:#7a2410;background:#f1e1c4;border-radius:10px;padding:2px 12px;font-size:13px;display:inline-block}.guess-icon{margin:8px 0 2px;font-size:96px;line-height:1.25}.guess-name{color:#7a2410;letter-spacing:2px;min-height:40px;margin-bottom:6px;font-size:28px;font-weight:800}.guess-hints{text-align:left;margin:4px 0 0;padding-left:24px;font-size:16px;line-height:1.9}.guess-timer{justify-content:space-between;align-items:baseline;gap:12px;margin:4px 4px 0;display:flex}.guess-clock{color:#7a2410;font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:40px;font-weight:800}.guess-clock.urgent{color:#d32f2f;animation:1s infinite guess-pulse}.guess-clock.ended{color:#9e8a74}.guess-score{color:#6b4a2e;text-align:right;font-size:14px}.guess-ctrl{flex-wrap:wrap;gap:10px;margin-top:12px}.guess-ctrl .btn{min-width:96px}.guess-final{color:#b8452a;font-size:64px;font-weight:800;line-height:1.1}@keyframes guess-pulse{50%{transform:scale(1.08)}}.guess-page .lobby{padding:0 12px 12px}.guess-page .guess-timer{margin:6px 4px 0}.guess-page .guess-clock{font-size:28px}.guess-page .guess-score{font-size:13px}.guess-page .card.guess-card{margin-top:6px;padding:8px 14px 10px}.guess-page .guess-kind{padding:1px 10px;font-size:12px}.guess-page .guess-icon{margin:2px 0 0;font-size:44px;line-height:1.15}.guess-page .guess-name{letter-spacing:1px;min-height:28px;margin-bottom:2px;font-size:21px}.guess-page .card-title{margin:2px 0 0;font-size:13px}.guess-page .guess-hints{padding-left:20px;font-size:14px;line-height:1.55}.guess-page .guess-ctrl{gap:8px;margin-top:8px}.guess-page .guess-ctrl .btn{flex:1;min-width:0;padding-top:9px;padding-bottom:9px}.guess-page .muted.small.center{margin-top:6px;font-size:12px}.soup-intro{margin-top:10px}.soup-item{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border:1px solid #e6cfa9;margin-top:10px;padding:12px 14px;display:block}.soup-item:active{transform:scale(.985)}.soup-item-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.soup-title{color:#7a2410;margin-right:2px;font-size:17px;font-weight:700}.soup-tag{color:#6b4a2e;background:#efe3cf;border-radius:8px;padding:1px 7px;font-size:11px}.soup-tag.lv1{color:#2e6b2a;background:#e3f1dd}.soup-tag.lv2{color:#8a5a00;background:#fdeccc}.soup-tag.lv3{color:#9b2c1a;background:#f9dcd6}.soup-tag.red{color:#fff;background:#7a2410}.soup-state{color:#8c6f55;margin-left:auto;font-size:12px}.soup-state.ok{color:#2e7d32;font-weight:700}.soup-preview{color:#6b4a2e;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.soup-page .lobby{padding-bottom:14px}.soup-surface{margin-top:8px;padding:10px 14px;font-size:15px;line-height:1.6}.soup-label{color:#a5381a;letter-spacing:2px;margin-bottom:2px;font-size:12px;font-weight:700}.soup-bar{align-items:center;gap:8px;margin-top:8px;display:flex}.soup-bar-track{background:#efe3cf;border-radius:3px;flex:1;height:6px;overflow:hidden}.soup-bar-fill{background:linear-gradient(90deg,#d9822b,#a5381a);width:0;height:100%;transition:width .4s}.soup-log{flex-direction:column;gap:6px;max-height:38vh;margin-top:10px;display:flex;overflow-y:auto}.soup-empty{padding:14px 0}.soup-qa{background:#fffaf2;border:1px solid #efdcbc;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:7px 10px;font-size:14px;display:flex}.soup-qa.guess{background:#fdf3e3}.soup-q{word-break:break-all;flex:1}.soup-a{border-radius:8px;flex:none;padding:1px 8px;font-size:13px;font-weight:700}.soup-a.yes{color:#2e6b2a;background:#e3f1dd}.soup-a.no{color:#9b2c1a;background:#f9dcd6}.soup-a.half{color:#8a5a00;background:#fdeccc}.soup-a.other{color:#6b5a48;background:#ece6dd}.soup-ask .input{flex:1;min-width:0}.soup-guess-input{resize:vertical;width:100%;font:inherit}.soup-truth{background:#fff7e6;margin-top:10px;padding:10px 14px;line-height:1.6}.soup-keys{color:#8c6f55;margin:6px 0 0;padding-left:18px}.soup-keys li.hit{color:#2e7d32;font-weight:700}.soup-tag.odd{color:#fff;background:#4a3a6b}.soup-gen{margin-top:10px}.soup-gen-label{color:#8c6f55;margin:8px 0 4px}.soup-gen-note{margin-top:4px}.soup-gen .btn.block{margin-top:10px}.soup-sec{margin:16px 4px 0;font-size:15px}.soup-pager{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.soup-pager .btn[disabled]{opacity:.4;cursor:default}.soup-sec{scroll-margin-top:60px}.soup-ai-row{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.soup-ai-btn{flex:none}.soup-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.soup-fb-btn{color:#8c6f55;flex:none;padding:3px 9px;font-size:12px}.soup-fb-chips{margin-bottom:8px}.soup-fb-chips .seg-btn{flex:0 0 calc(33.3% - 4px);padding:6px 2px;font-size:13px}.soup-del{color:#b3261e;cursor:pointer;background:#fff;border:1px solid #e8b9b3;border-radius:8px;margin-left:auto;padding:2px 8px;font-size:12px}.soup-state+.soup-del{margin-left:6px}.soup-tabs{border-bottom:2px solid #e6cfa9;gap:0;margin:16px 0 0;scroll-margin-top:60px;display:flex}.soup-tab{font:inherit;color:#a08367;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;margin-bottom:-2px;padding:9px 4px 8px;font-size:14px;font-weight:700;overflow:hidden}.soup-tab.on{color:#7a2410;border-bottom-color:#a5381a}.uno-page{background:#3b2412}.uno-rules{margin:6px 0 0;padding-left:18px;line-height:1.7}.uno-lobby{background:radial-gradient(at 50% 44%,#fff3,#0000 58%) padding-box padding-box,radial-gradient(#0000 55%,#00000061) padding-box padding-box,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cpath d='M22 2 L42 22 L22 42 L2 22Z' fill='none' stroke='%23ffe9a8' stroke-opacity='.075' stroke-width='1.2'/%3E%3Ccircle cx='22' cy='22' r='1.6' fill='%23ffe9a8' fill-opacity='.09'/%3E%3C/svg%3E") padding-box padding-box,repeating-linear-gradient(45deg,#ffffff06 0,#ffffff06 1px,#0000 1px,#0000 3px) padding-box padding-box,repeating-linear-gradient(-45deg,#0000000d 0,#0000000d 1px,#0000 1px,#0000 3px) padding-box padding-box,linear-gradient(160deg,#20804f,#15603a 55%,#0e4a2d) padding-box padding-box,linear-gradient(135deg,#b88246,#6a4322 40%,#a06c36 62%,#4a2d15) border-box;border:10px solid #0000;border-radius:30px;min-height:calc(100vh - 90px);margin:8px;padding:8px;display:flex;position:relative;box-shadow:inset 0 0 40px #00000080,inset 0 0 0 2px #ffd6782e,0 6px 20px #00000059}.uno-lobby:after{content:"";pointer-events:none;border:1.5px solid #ffdc8252;border-radius:18px;position:absolute;top:3px;bottom:3px;left:3px;right:3px}.uno-board{isolation:isolate;flex:1;grid-template-rows:auto 1fr auto;grid-template-columns:70px 1fr 70px;gap:4px;min-width:0;display:grid;position:relative}.uno-top-row{grid-area:1/1/auto/4;justify-content:center;gap:22px;display:flex}.uno-slot{grid-row:2;justify-content:center;align-items:center;min-width:0;display:flex}.uno-slot.left{grid-column:1}.uno-slot.mid{grid-column:2}.uno-slot.right{grid-column:3}.uno-bottom{flex-direction:column;grid-area:3/1/auto/4;gap:4px;display:flex}.uno-seat{color:#eaf6ea;flex-direction:column;align-items:center;gap:2px;display:flex}.uno-av-wrap{position:relative}.uno-av{background:#fff;border:2.5px solid #fff;border-radius:14px;width:48px;height:48px;overflow:hidden;box-shadow:0 2px 6px #00000073}.uno-av.small{border-radius:11px;flex:none;width:38px;height:38px}.uno-av.tiny{border-width:1.5px;border-radius:7px;flex:none;width:24px;height:24px}.uno-seat.on .uno-av,.uno-me.on .uno-av{border-color:#ffd36a;animation:1.1s ease-in-out infinite unoGlow;box-shadow:0 0 0 3px #ffd36a80,0 0 16px #ffd36acc}@keyframes unoGlow{50%{box-shadow:0 0 0 5px #ffd36a4d,0 0 22px #ffd36ae6}}.uno-count{box-sizing:border-box;color:#fff;background:#1b1b22;border:2px solid #fff;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 5px;font-size:12px;font-weight:900;display:flex;position:absolute;bottom:-6px;right:-8px}.uno-count.warn{background:#d6362a}.uno-tag{white-space:nowrap;color:#fff;z-index:2;background:#d6362a;border:2px solid #fff;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:900;animation:.9s ease-in-out infinite unoPulse;position:absolute;top:-12px;left:50%;transform:translate(-50%)}@keyframes unoPulse{50%{transform:translate(-50%)scale(1.14)}}.uno-seat-name{font-size:12.5px;font-weight:800;line-height:1.2}.uno-seat-score{color:#bfdcbf;font-size:11px;line-height:1.2}.uno-fan{align-items:center;height:36px;margin-top:2px;padding-left:12px;display:flex}.uno-fan.v{flex-direction:column;height:auto;margin-top:4px;padding:0}.uno-mini{box-sizing:border-box;background:linear-gradient(145deg,#3a3a44,#15151b);border:1.5px solid #fff;border-radius:5px;width:22px;height:32px;margin-left:-12px;position:relative;box-shadow:0 1px 3px #00000073}.uno-mini:before{content:"";background:repeating-linear-gradient(45deg,#ffffff14 0,#ffffff14 3px,#0000 3px,#0000 6px);border-radius:4px;position:absolute;top:0;bottom:0;left:0;right:0}.uno-mini .uno-back-ring{width:12px;height:12px;box-shadow:none;border-width:1.5px}.uno-mini .uno-back-ring span{display:none}.uno-fan.v .uno-mini{width:34px;height:22px;margin-top:-13px;margin-left:0}.uno-fan.v .uno-mini:first-child{margin-top:0}.uno-center{flex-direction:column;align-items:center;gap:8px;display:flex}.uno-center-row{justify-content:center;align-items:center;gap:18px;display:flex}.uno-pile{flex-direction:column;align-items:center;gap:8px;display:flex}.uno-pile-cap{color:#cfe6cf;white-space:nowrap;font-size:12px}.uno-pile-cap.hot{color:#ffe08a;font-weight:800}.uno-caption{color:#ffe9a8;text-align:center;max-width:100%;min-height:18px;font-size:12.5px}.uno-stack{cursor:default;width:56px;height:82px;position:relative}.uno-stack .uno-card{position:absolute;top:0;left:0}.uno-stack .uno-card:first-child{transform:translate(-4px,4px)}.uno-stack .uno-card:nth-child(2){transform:translate(-2px,2px)}.uno-stack.can{cursor:pointer;animation:1s ease-in-out infinite unoNudge}.uno-stack.can .uno-card.top{box-shadow:0 0 0 3px #ffd36a,0 0 18px #ffd36acc}@keyframes unoNudge{50%{transform:translateY(-4px)}}.uno-disc{justify-content:center;align-items:center;width:112px;height:112px;display:flex;position:relative}.uno-dir{pointer-events:none;position:absolute;top:-6px;bottom:-6px;left:-6px;right:-6px}.uno-dir.rev{transform:scaleX(-1)}.uno-dir-spin{width:100%;height:100%;animation:7s linear infinite unoSpin}.uno-dir.rev .uno-dir-spin{animation-direction:reverse}@keyframes unoSpin{to{transform:rotate(360deg)}}.uno-ring{background:radial-gradient(circle,#ffffff1f,#0000 70%);border-radius:20px;padding:7px;transition:box-shadow .25s;position:relative}.uno-card{box-sizing:border-box;color:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--base);border:3px solid #fff;border-radius:10px;flex:none;width:56px;height:82px;position:relative;overflow:hidden;box-shadow:0 3px 8px #00000059}.uno-card.big{width:64px;height:94px}.uno-card:before{content:"";background:linear-gradient(150deg,#ffffff57,#fff0 45%),repeating-linear-gradient(135deg,#ffffff14 0,#ffffff14 5px,#0000 5px,#0000 10px);position:absolute;top:0;bottom:0;left:0;right:0}.uno-card:after{content:"";pointer-events:none;border:1.5px solid #ffffff73;border-radius:6px;position:absolute;top:3px;bottom:3px;left:3px;right:3px}.uno-card.c-R{--base:linear-gradient(160deg, #e0483a, #a82419);--ink:#b82a1d}.uno-card.c-Y{--base:linear-gradient(160deg, #f4bc2a, #d28a0c);--ink:#c27a05}.uno-card.c-G{--base:linear-gradient(160deg, #3fae6c, #1f7a48);--ink:#1f7f4b}.uno-card.c-B{--base:linear-gradient(160deg, #3d86d0, #1f5a9c);--ink:#1f5fa6}.uno-card.c-X{--base:linear-gradient(160deg, #3a3a44, #121217);--ink:#222}.uno-pip{aspect-ratio:1;z-index:1;background:#fff;border-radius:18%;justify-content:center;align-items:center;width:62%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:inset 0 0 0 2px #00000014,0 1px 3px #00000040}.uno-pip span{white-space:nowrap;color:var(--ink);text-shadow:0 1px #0000001f;font-size:24px;font-weight:900;line-height:1;transform:rotate(-45deg)}.uno-card.big .uno-pip span{font-size:28px}.uno-card.long .uno-pip span{letter-spacing:-1px;font-size:13px}.uno-card.big.long .uno-pip span{font-size:15px}.uno-card.wild .uno-pip{background:conic-gradient(#e0483a 0 25%, #f4bc2a 0 50%, #3fae6c 0 75%, #3d86d0 0)}.uno-card.wild .uno-pip span{color:#fff;text-shadow:0 1px 3px #000000a6,0 0 2px #0009}.uno-idx{z-index:2;color:#fff;text-shadow:0 1px 2px #00000073;font-size:11px;font-weight:900;line-height:1;position:absolute}.uno-idx.tl{top:5px;left:5px}.uno-idx.br{bottom:5px;right:5px;transform:rotate(180deg)}.uno-back{background:linear-gradient(145deg,#3a3a44,#15151b)}.uno-back:before{background:repeating-linear-gradient(45deg,#ffffff12 0,#ffffff12 4px,#0000 4px,#0000 8px),radial-gradient(circle at 30% 20%,#ffffff2e,#0000 50%)}.uno-back-ring{box-sizing:border-box;z-index:1;background:radial-gradient(circle,#c8382b,#8c1f16);border:3px solid #e8b23a;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 6px #00000080}.uno-back-ring span{color:#ffe08a;font-size:13px;font-weight:900}.uno-me{align-items:center;gap:8px;padding:0 2px;display:flex}.uno-me-info{color:#eaf6ea;margin-right:auto}.uno-help{color:#fff;width:30px;height:30px;font:inherit;cursor:pointer;background:#0000004d;border:2px solid #ffffffb3;border-radius:50%;font-weight:800}.uno-pass{color:#3b2412;height:38px;font:inherit;cursor:pointer;background:linear-gradient(#f4bc2a,#d28a0c);border:2px solid #fff;border-radius:19px;padding:0 18px;font-weight:900;box-shadow:0 2px 6px #0006}.uno-btn{color:#fff;width:62px;height:62px;font:inherit;letter-spacing:-.5px;cursor:pointer;text-shadow:0 1px 2px #0006;background:radial-gradient(circle at 35% 30%,#ff7a6a,#d6362a 55%,#9c1f15);border:3px solid #fff;border-radius:50%;flex:none;font-size:17px;font-style:italic;font-weight:900;box-shadow:0 4px #7d1810,0 6px 12px #0006}.uno-btn[disabled]{filter:grayscale(.85)brightness(.75);cursor:default;box-shadow:0 2px #444,0 3px 8px #0000004d}.uno-btn.on{animation:.8s ease-in-out infinite unoBeat}.uno-btn:not([disabled]):active{transform:translateY(3px);box-shadow:0 1px #7d1810}@keyframes unoBeat{50%{transform:scale(1.1)}}.uno-hand{flex-direction:column;align-items:center;min-height:100px;padding:16px 0 6px;display:flex}.uno-hand-row{justify-content:center;display:flex}.uno-hand-row+.uno-hand-row{margin-top:-34px}.uno-hand .uno-card{transform-origin:50% 160%;transition:transform .14s,opacity .2s,filter .2s}.uno-hand .uno-card.dim{filter:saturate(.5)brightness(.62)}.uno-hand .uno-card.playable{cursor:pointer;box-shadow:0 6px 12px #00000073}.uno-hand .uno-card.fresh{outline:3px solid #ffd36a}.uno-overlay{z-index:6;background:#00000073;border-radius:18px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.uno-panel{color:#4a2d15;background:#fdf8ee;border-radius:18px;flex-direction:column;align-items:center;gap:10px;min-width:230px;max-width:86%;padding:16px 18px;display:flex;box-shadow:0 10px 30px #00000080}.uno-panel-title{color:#7a2410;font-size:17px;font-weight:900}.uno-picker-row{gap:8px;display:flex}.uno-color-btn{color:#fff;width:56px;height:44px;font:inherit;cursor:pointer;border:2px solid #fff;border-radius:12px;font-weight:800;box-shadow:0 2px 6px #0006}.uno-rank{flex-direction:column;gap:6px;width:100%;display:flex}.uno-rank-row{align-items:center;gap:8px;font-size:14px;display:flex}.uno-rank-row span{margin-right:auto}.uno-panel .btn.block{width:100%}.uno-ornament{pointer-events:none;z-index:-1;border:2px solid #ffdc8257;border-radius:50%;justify-content:center;align-items:center;width:86%;height:44%;display:flex;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 7px #0000,0 0 0 8.5px #ffdc8229,inset 0 0 36px #ffffff12}.uno-ornament span{letter-spacing:.32em;color:#ffe29621;padding-left:.32em;font-size:38px;font-weight:900;transform:translateY(70px)}.uno-ornament i{border:1px dashed #ffdc8233;border-radius:50%;position:absolute;top:14px;bottom:14px;left:14px;right:14px}.uno-tb{gap:2px;display:flex}.uno-tb .icon-btn{white-space:nowrap;padding:4px 6px;font-size:12px}.uno-bubble{z-index:9;color:#4a2d15;pointer-events:none;background:#fffdf5;border-radius:12px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:150px;padding:6px 10px;font-size:13px;font-weight:700;line-height:1.35;animation:.22s ease-out unoPop;position:absolute;box-shadow:0 3px 10px #0006}.uno-bubble:after{content:"";background:#fffdf5;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.uno-seat.left .uno-bubble{bottom:58px;left:-4px}.uno-seat.left .uno-bubble:after{bottom:-4px;left:18px}.uno-seat.right .uno-bubble{bottom:58px;right:-4px}.uno-seat.right .uno-bubble:after{bottom:-4px;right:18px}.uno-seat.top .uno-bubble{top:56px;left:50%;transform:translate(-50%)}.uno-seat.top .uno-bubble:after{top:-4px;left:calc(50% - 5px)}@keyframes unoPop{0%{opacity:0;transform:scale(.8)}to{opacity:1}}.uno-seat.top .uno-bubble{animation-name:unoPopTop}@keyframes unoPopTop{0%{opacity:0;transform:translate(-50%)scale(.8)}to{opacity:1;transform:translate(-50%)}}.uno-wlist{flex-direction:column;gap:8px;margin:8px 0;display:flex}.uno-wseat{background:#fdf8ee;border:1px solid #e6cfa9;border-radius:12px;align-items:center;gap:10px;min-height:38px;padding:8px 10px;display:flex}.uno-wseat.empty{color:#b09a78;background:0 0;border-style:dashed;justify-content:center;font-size:13px}.uno-wname{color:#4a2d15;flex-wrap:wrap;flex:1;align-items:center;gap:6px;font-weight:700;display:flex}.uno-badge{color:#fff;background:#a5381a;border-radius:9px;padding:1px 7px;font-size:11px;font-weight:800}.uno-badge.ai{background:#6b7a8f}.uno-badge.me{background:#2f8f57}
