*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Nunito,system-ui,sans-serif;background:radial-gradient(1200px 500px at 10% -10%,#ffe3f1 0%,transparent 60%),radial-gradient(1000px 600px at 110% 10%,#e3f6ff 0%,transparent 55%),linear-gradient(160deg,#fdf3ff,#f3f0ff 45%,#eefaff);background-attachment:fixed;color:#4a3f6b;min-height:100vh}button{font-family:inherit;border:none;cursor:pointer;color:inherit}input{font-family:inherit}.boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#8a7fae}.boot-duck{font-size:64px;animation:waddle 1s ease-in-out infinite}@keyframes waddle{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.app-shell{max-width:560px;margin:0 auto;padding:12px 14px 40px;min-height:100vh}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 14px}.brand{display:flex;align-items:center;gap:6px;font-size:20px;font-weight:800;background:none;color:#5b4a8a}.brand-emoji{font-size:26px}.top-actions{display:flex;align-items:center;gap:8px}.top-btn{background:#ffffffbf;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700;color:#6b5ca0;box-shadow:0 2px 8px #9678c826}.profile-btn{padding:4px 8px;font-size:20px}.login-screen{display:flex;flex-direction:column;align-items:center;padding-top:6vh;gap:26px}.login-hero{text-align:center}.hero-ducks{display:flex;align-items:center;justify-content:center;gap:10px;font-size:44px}.hero-ducks span:nth-child(1){transform:rotate(-10deg);animation:bob 1.6s ease-in-out infinite}.hero-ducks span:nth-child(3){transform:rotate(10deg);animation:bob 1.6s ease-in-out infinite .4s}.hero-big{font-size:72px;animation:bob 1.4s ease-in-out infinite .2s}@keyframes bob{0%,to{translate:0 0}50%{translate:0 -8px}}.hero-title{margin:10px 0 6px;font-size:40px;font-weight:900;color:#6a4fc9;letter-spacing:4px;text-shadow:0 4px 0 #f0e4ff}.hero-slogan{margin:0;font-size:18px;font-weight:800;color:#f07ea9}.hero-sub{margin:6px 0 0;font-size:13px;color:#9a8fc2}.login-card{width:100%;max-width:360px;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:28px;padding:22px 22px 18px;box-shadow:0 10px 30px #aa82dc2e;display:flex;flex-direction:column;gap:10px}.field-label{font-size:13px;font-weight:800;color:#8a7fae}.nickname-input{border:3px solid #f0e4ff;border-radius:18px;padding:12px 16px;font-size:17px;font-weight:700;background:#fff;outline:none;color:#5b4a8a;transition:border-color .2s}.nickname-input:focus{border-color:#c9b4ff}.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.avatar-cell{aspect-ratio:1;font-size:22px;border-radius:14px;background:#f6f2ff;display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s}.avatar-cell:active{transform:scale(.9)}.avatar-cell-active{background:#ffe3f1;box-shadow:0 0 0 3px #ffb7d0 inset}.form-error{color:#f06292;font-size:13px;font-weight:700;margin:0}.fine-print{text-align:center;font-size:11px;color:#b3a8d6;margin:4px 0 0}.big-btn{background:linear-gradient(135deg,#ff9db8,#ffb98a);color:#fff;font-size:17px;font-weight:900;border-radius:22px;padding:14px 20px;box-shadow:0 8px 20px #ff968259;transition:transform .12s,box-shadow .12s;letter-spacing:1px}.big-btn:active{transform:translateY(3px);box-shadow:0 4px 10px #ff96824d}.big-btn:disabled{opacity:.55}.mini-btn{background:#fff;border:2px solid #e4d9ff;border-radius:16px;padding:8px 14px;font-size:14px;font-weight:800;color:#7a6bb2}.end-btn{border-color:#ffd3de;color:#f07ea9}.home-main{display:flex;flex-direction:column;gap:16px}.hero-show{position:relative;background:linear-gradient(165deg,#fff,#fff2f8 55%,#f3efff);border-radius:32px;padding:34px 22px 26px;text-align:center;box-shadow:0 14px 40px #be8ce638;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:10px}.hero-duck-big{font-size:92px;line-height:1;animation:duck-float 2.4s ease-in-out infinite;filter:drop-shadow(0 10px 14px rgba(200,150,230,.35))}@keyframes duck-float{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-12px) rotate(4deg)}}.hero-big-title{margin:2px 0 0;font-size:44px;font-weight:900;color:#6a4fc9;letter-spacing:6px;text-shadow:0 5px 0 #f0e4ff}.hero-big-sub{margin:0;font-size:19px;font-weight:800;color:#f07ea9;letter-spacing:2px}.hero-tagline{font-size:12px;font-weight:700;color:#a89ccc;border:2px dashed #e2d4ff;border-radius:999px;padding:5px 16px;background:#fff9}.hero-main-btn{width:100%;margin-top:6px;font-size:19px;padding:16px 20px}.hero-secondary-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:#ffffffd9;border:3px solid #f0e4ff;border-radius:22px;padding:13px 20px;font-size:16px;font-weight:900;color:#7a6bb2;transition:transform .12s}.hero-secondary-btn:active{transform:translateY(2px)}.hero-secondary-arrow{font-size:20px;color:#c9b4ff}.hero-people{margin:4px 0 0;font-size:12px;color:#b3a8d6;font-weight:700;letter-spacing:1px}.hero-deco{position:absolute;font-size:26px;opacity:.85;animation:deco-float 3s ease-in-out infinite}.hero-deco-1{left:14px;top:20px;transform:rotate(-16deg)}.hero-deco-2{right:18px;top:42px;animation-delay:.6s;transform:rotate(14deg)}.hero-deco-3{left:26px;bottom:88px;animation-delay:1.2s;font-size:20px}.hero-deco-4{right:30px;bottom:64px;animation-delay:1.8s;font-size:22px;transform:rotate(10deg)}@keyframes deco-float{0%,to{translate:0 0}50%{translate:0 -7px}}.record-list{display:flex;flex-direction:column;gap:8px}.record-row{display:flex;align-items:center;gap:10px;background:#ffffffd9;border-radius:16px;padding:10px 14px}.record-emoji{font-size:26px}.record-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.record-name{margin:0;font-size:14px;font-weight:900;color:#5b4a8a;display:flex;align-items:center;gap:6px}.record-flag{font-size:10px;font-weight:900;color:#fff;background:#c5bcd9;border-radius:7px;padding:1px 6px}.record-title{margin:0;font-size:12px;color:#9a8fc2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-time{font-size:11px;color:#b3a8d6;font-weight:700;white-space:nowrap}.section-count{font-size:12px;color:#b3a8d6;font-weight:700;margin-left:6px}.list-bottom-btn{margin-top:6px;background:linear-gradient(135deg,#a8e6cf,#7fd8b2);color:#2c5e4a;font-size:16px;font-weight:900;border-radius:22px;padding:14px 20px;box-shadow:0 8px 20px #78d2aa59}.list-bottom-btn:active{transform:translateY(3px)}.join-card{background:#fffc;border-radius:24px;padding:18px;text-align:center;box-shadow:0 8px 22px #aa82dc1f}.join-title{margin:0 0 10px;font-weight:800;color:#7a6bb2;font-size:15px}.join-row{display:flex;gap:10px}.code-input{flex:1;border:3px solid #e4f4ff;background:#fff;border-radius:18px;padding:10px 16px;font-size:22px;font-weight:900;letter-spacing:6px;text-align:center;color:#4a9fd8;outline:none;text-transform:uppercase}.code-input:focus{border-color:#a8e0ff}.join-btn{flex-shrink:0;padding:10px 22px}.join-hint{margin:10px 0 0;font-size:12px;color:#b3a8d6}.stats-card{display:flex;align-items:center;justify-content:space-around;background:#fffc;border-radius:22px;padding:16px 10px;box-shadow:0 8px 22px #aa82dc1f}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-num{font-size:24px;font-weight:900;color:#f07ea9}.stat-label{font-size:12px;color:#9a8fc2}.stat-divider{width:1px;height:34px;background:#eee5ff}.hall-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding-bottom:6px}.hall-header .hall-title{text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-btn{background:#fffc;border-radius:999px;padding:9px 14px;font-size:14px;font-weight:800;color:#7a6bb2;min-height:40px}.hall-title{margin:0;font-size:21px;font-weight:900;color:#5b4a8a}.quick-btn{padding:9px 14px;font-size:13.5px;font-weight:800;border-radius:16px;min-height:40px;white-space:nowrap}.hall-sub{margin:0 0 14px;font-size:13px;color:#9a8fc2}.hall-sticky{position:sticky;top:-4px;z-index:5;margin:0 -4px;padding:8px 4px 10px;background:linear-gradient(180deg,var(--page-bg, #fdf3ff) 82%,rgba(253,243,255,0));pointer-events:none}.hall-sticky>*{pointer-events:auto}.filter-chips{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 6px;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 14px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 14px),transparent 100%)}.filter-chips::-webkit-scrollbar{display:none}.filter-chips-people{margin-top:2px}.chip{flex-shrink:0;scroll-snap-align:start;min-height:38px;padding:8px 15px;border-radius:999px;font-size:13.5px;font-weight:800;color:#7a6bb2;background:#ffffffe0;box-shadow:0 2px 8px #aa82dc1f;border:1.5px solid transparent;transition:transform .12s ease,background .12s ease,color .12s ease}.chip:active{transform:scale(.95)}.chip-people{min-height:32px;padding:5px 12px;font-size:12.5px;color:#9a8fc2;background:#ffffff9e;box-shadow:none;border:1.5px solid #efe7ff}.chip-active,.chip-people.chip-active{color:#fff;background:linear-gradient(135deg,#b79df0,#9a7fe6);border-color:#9a7fe6;box-shadow:0 4px 12px #9a7fe659}.chip:focus-visible,.game-card-info:focus-visible,.game-play-btn:focus-visible,.back-btn:focus-visible,.quick-btn:focus-visible,.list-bottom-btn:focus-visible{outline:3px solid rgba(154,127,230,.55);outline-offset:2px}.filter-count{margin:4px 2px 0;font-size:12px;font-weight:700;color:#9a8fc2}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.game-card{border-radius:22px;box-shadow:0 6px 18px #a078c81f;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:box-shadow .15s ease}.game-card-open{box-shadow:0 10px 26px #a078c833}.c-mint{background:linear-gradient(160deg,#e2f8ef,#d2f2e4)}.c-peach{background:linear-gradient(160deg,#ffeee0,#ffe4d0)}.c-lilac{background:linear-gradient(160deg,#f1eaff,#e9e0ff)}.c-sky{background:linear-gradient(160deg,#e3f3ff,#d6ecff)}.c-butter{background:linear-gradient(160deg,#fff6d9,#ffefbe)}.game-card-info{display:flex;flex-direction:column;gap:6px;padding:14px 14px 10px;text-align:left;border-radius:0}.game-card:active{transform:none}.game-card-info:active .game-emoji{transform:scale(.92)}.game-card-head{display:flex;align-items:center;justify-content:space-between}.game-emoji{font-size:30px;transition:transform .12s ease}.game-tag{font-size:11px;font-weight:800;background:#ffffffb3;border-radius:999px;padding:3px 8px;color:#8a7fae}.game-name{margin:0;font-size:17px;font-weight:900;color:#4a3f6b}.game-tagline{margin:0;font-size:12px;font-weight:700;color:#8a7fae}.game-desc{margin:0;font-size:12px;color:#7a6f9e;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.game-rules{margin:0;padding-left:16px;font-size:11.5px;color:#6b6192;line-height:1.55}.game-more{font-size:11px;font-weight:800;color:#b3a8d6}.game-play-btn{margin:0 12px 12px;min-height:44px;border-radius:16px;font-size:14.5px;font-weight:900;color:#2c5e4a;background:linear-gradient(135deg,#a8e6cf,#7fd8b2);box-shadow:0 6px 14px #78d2aa59;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.game-play-btn:active{transform:translateY(2px);box-shadow:0 3px 8px #78d2aa4d}.game-play-btn:disabled{opacity:.6}.lobby-picked{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff3d6,#ffedc2);border:1.5px solid #ffd98a;border-radius:18px;padding:10px 14px;margin-bottom:10px}.lobby-picked-emoji{font-size:26px}.lobby-picked-text{margin:0;font-size:13px;font-weight:800;color:#8a6d2f;line-height:1.45}@media(prefers-reduced-motion:reduce){.chip,.game-card,.game-card-info,.game-play-btn,.game-emoji,.list-bottom-btn{transition:none!important;transform:none!important;animation:none!important}}.room-main{display:flex;flex-direction:column;gap:12px}.room-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-code-chip{background:#fff;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;color:#8a7fae;box-shadow:0 4px 12px #aa82dc26;cursor:pointer}.room-code-chip b{color:#4a9fd8;font-size:16px;letter-spacing:3px;margin-left:2px}.qr-icon{font-size:12px;margin-left:6px;color:#f07ea9}.room-profile-chip{background:#fffc;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:800;color:#7a6bb2}.room-loading{text-align:center;color:#9a8fc2;padding:30px}.players-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.player-chip{display:flex;align-items:center;gap:5px;background:#fff;border-radius:999px;padding:5px 10px 5px 6px;box-shadow:0 3px 10px #aa82dc1f;font-size:13px;font-weight:700}.player-offline{opacity:.45}.player-avatar{font-size:18px}.host-crown{font-size:12px}.player-score{font-size:11px;color:#f07ea9;background:#ffe9f2;border-radius:999px;padding:2px 6px}.online-dot{width:8px;height:8px;border-radius:50%;background:#ddd}.dot-on{background:#6ddba0}.player-count{font-size:12px;color:#9a8fc2;font-weight:700}.game-stage{background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:26px;padding:16px;box-shadow:0 10px 30px #aa82dc26}.active-game-title{display:flex;align-items:center;gap:8px;margin:0 0 12px}.active-game-title h3{margin:0;font-size:18px;color:#5b4a8a;flex:1}.active-game-title .game-emoji{font-size:24px}.host-controls{display:flex;gap:8px}.waiting-hint{text-align:center;color:#9a8fc2;font-size:13px;padding:8px 0}.lobby-title{margin:4px 0 14px;font-size:16px;color:#5b4a8a;text-align:center}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lobby-game{border-radius:18px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:0 5px 14px #a078c81f;transition:transform .12s}.lobby-game:active:not(:disabled){transform:scale(.96)}.lobby-game:disabled{opacity:.5}.lobby-game-name{font-weight:900;font-size:14px;color:#4a3f6b}.lobby-game-meta{font-size:11px;font-weight:700;color:#8a7fae}.lobby-hint{text-align:center;font-size:12px;color:#b3a8d6;margin:14px 0 0}.game-panel{display:flex;flex-direction:column;gap:12px}.phase-title{margin:0;font-size:17px;color:#5b4a8a}.phase-desc{margin:0;font-size:14px;color:#7a6f9e;line-height:1.6}.big-desc{font-size:16px}.big-desc b{color:#f07ea9}.my-card{background:linear-gradient(140deg,#f6efff,#ffeef5);border-radius:20px;padding:16px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.my-role{margin:0;font-size:13px;font-weight:800;color:#8a7fae}.my-word{margin:0;font-size:30px;font-weight:900;color:#6a4fc9;letter-spacing:4px}.big-word{font-size:36px}.timer-wrap{display:flex;align-items:center;gap:8px}.timer-bar{flex:1;height:12px;border-radius:999px;background:#f0eaff;overflow:hidden}.timer-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#a8e6cf,#ffdac1);transition:width .25s linear}.timer-danger{background:linear-gradient(90deg,#ffb7c5,#ff9db0)}.timer-text{font-size:13px;font-weight:900;color:#f07ea9;min-width:32px;text-align:right}.pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pick-cell{background:#fff;border:3px solid #eee5ff;border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:3px;transition:transform .12s,border-color .12s}.pick-cell:active:not(:disabled){transform:scale(.94);border-color:#ffb7d0}.pick-cell-disabled{opacity:.4}.pick-avatar{font-size:26px}.pick-name{font-size:12px;font-weight:800;color:#5b4a8a;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-order{display:flex;flex-wrap:wrap;gap:6px}.turn-chip{background:#f6f2ff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;color:#8a7fae}.turn-active{background:#ffe3f1;color:#f06292;box-shadow:0 0 0 2px #ffb7d0}.turn-done{opacity:.5}.inline-form{display:flex;gap:8px}.text-input{flex:1;border:3px solid #f0e4ff;border-radius:18px;padding:10px 14px;font-size:16px;font-weight:700;background:#fff;outline:none;color:#5b4a8a;min-width:0}.text-input:focus{border-color:#c9b4ff}.number-input{text-align:center;font-size:20px}.wrong-shake{margin:0;color:#f06292;font-weight:800;font-size:13px;animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.end-panel{text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.end-emoji{font-size:56px;animation:bob 1.4s ease-in-out infinite}.end-title{margin:0;font-size:20px;font-weight:900;color:#5b4a8a}.end-winners{margin:0;font-size:15px;font-weight:800;color:#f07ea9}.penalty-card{background:linear-gradient(140deg,#fff4e0,#ffe8d6);border-radius:18px;padding:12px 16px;display:flex;flex-direction:column;gap:4px;max-width:100%}.penalty-label{font-size:11px;font-weight:900;color:#f0a35e;letter-spacing:2px}.penalty-text{font-size:16px;font-weight:900;color:#c76a2a}.reveal-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.reveal-chip{background:#f6f2ff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;color:#7a6bb2}.reveal-words{font-size:14px;font-weight:800;color:#7a6bb2}.score-list{display:flex;flex-direction:column;gap:6px;background:#faf7ff;border-radius:16px;padding:10px 12px}.score-row{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#6b6192}.score-row>span:first-child{flex:1}.score-rank{color:#f07ea9;min-width:26px}.score-num{color:#f07ea9}.solved-list{display:flex;flex-direction:column;gap:4px}.solved-item{margin:0;font-size:12px;color:#6ddba0;font-weight:700}.choice-row{display:flex;gap:10px}.choice-btn{flex:1;border-radius:20px;padding:16px 10px;font-size:17px;font-weight:900;color:#fff;box-shadow:0 6px 16px #aa82dc40;transition:transform .12s}.choice-btn:active{transform:translateY(3px)}.truth{background:linear-gradient(135deg,#8ec9ff,#a8b8ff)}.dare{background:linear-gradient(135deg,#ff9db8,#ffb98a)}.say-btn{background:linear-gradient(135deg,#7fd8b2,#a8e6cf)}.pass-btn{background:linear-gradient(135deg,#ff9db8,#ffb98a)}.prompt-card{background:linear-gradient(140deg,#fff9e8,#fff2cc);border-radius:20px;padding:22px 18px;text-align:center}.prompt-text{margin:0;font-size:19px;font-weight:900;color:#a3821e;line-height:1.6}.bomb-range{display:flex;align-items:center;gap:10px}.range-num{font-size:20px;font-weight:900;color:#4a9fd8}.range-bar{flex:1;height:18px;border-radius:999px;background:linear-gradient(90deg,#a8e6cf,#fff2cc,#ffb7c5);position:relative;overflow:hidden}.range-fill{position:absolute;top:0;bottom:0;background:#ffffffbf}.range-bomb{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:13px}.guess-history{display:flex;flex-wrap:wrap;gap:6px}.guess-chip{background:#f6f2ff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:#8a7fae}.bomb-range-final{font-size:12px;color:#9a8fc2;text-align:center;line-height:1.6}.lives-row{display:flex;flex-wrap:wrap;gap:6px}.life-chip{background:#fff4f8;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.dice-area{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dice-cell{background:#faf7ff;border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:4px}.dice-rolled{background:#eafff3}.dice-avatar{font-size:22px}.dice-face{font-size:15px;font-weight:900;color:#4a3f6b}.dice-btn{font-size:20px}.result-card{border-radius:20px;padding:16px;text-align:center}.loser-card{background:linear-gradient(140deg,#ffeef0,#ffe0e6)}.winner-card{background:linear-gradient(140deg,#eafff3,#e0f8ea)}.loser-name{margin:0 0 8px;font-size:18px;font-weight:900;color:#e05c7e}.result-card .penalty-card{margin-top:8px}.chain-latest{display:flex;align-items:baseline;gap:10px;justify-content:center}.chain-word{font-size:28px;font-weight:900;color:#6a4fc9;letter-spacing:3px}.chain-by{font-size:12px;color:#9a8fc2}.chain-char{color:#f07ea9;font-size:20px}.chain-history{display:flex;flex-wrap:wrap;gap:6px}.chain-chip{background:#f6f2ff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:#8a7fae}.peek-card{background:#eef4ff;border-radius:14px;padding:8px 12px;font-size:13px;font-weight:700;color:#4a7fd8}.last-drawn{margin:0;font-size:13px;color:#9a8fc2;font-weight:700}.hand-area{display:flex;flex-direction:column;gap:6px}.hand-title{margin:0;font-size:12px;font-weight:800;color:#8a7fae}.hand-cards{display:flex;flex-wrap:wrap;gap:8px}.hand-card{background:#fff;border:3px solid #e4f4ff;border-radius:16px;padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;transition:transform .12s}.hand-card:active:not(:disabled){transform:scale(.93)}.hand-card:disabled{opacity:.6}.hand-card-locked{border-color:#ffe3c9;background:#fff8f0}.hand-emoji{font-size:24px}.hand-name{font-size:12px;font-weight:900;color:#5b4a8a}.draw-btn{font-size:18px}.wheel-stage{text-align:center;padding:10px 0}.wheel-emoji{font-size:72px;display:inline-block}.spin-anim{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-text{color:#f07ea9;font-weight:900;animation:pulse .8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.log-panel{background:#ffffffb3;border-radius:20px;padding:12px 16px}.log-panel h4{margin:0 0 8px;font-size:13px;color:#9a8fc2}.log-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}.log-entry{margin:0;font-size:12.5px;color:#7a6f9e;line-height:1.5}.board-main{display:flex;flex-direction:column;gap:14px}.board-list{display:flex;flex-direction:column;gap:8px}.board-row{display:flex;align-items:center;gap:10px;background:#ffffffd9;border-radius:16px;padding:10px 14px;font-size:14px;font-weight:700;color:#5b4a8a}.board-top{box-shadow:0 4px 14px #f07ea933}.board-top-1{background:linear-gradient(120deg,#fff4e0,#ffe8cc)}.board-top-2{background:linear-gradient(120deg,#f4f6ff,#e8ecff)}.board-top-3{background:linear-gradient(120deg,#fff0e8,#ffe4d4)}.board-rank{min-width:34px;text-align:center;font-size:16px}.board-avatar{font-size:22px}.board-name{flex:1}.board-stats{font-size:12px;color:#9a8fc2}.board-flag{font-size:11px;font-weight:900;color:#fff;background:#ccc;border-radius:8px;padding:2px 6px;min-width:22px;text-align:center}.flag-win{background:#f07ea9}.empty-board{text-align:center;color:#9a8fc2;padding:40px 0}.empty-emoji{font-size:50px}.profile-card{display:flex;align-items:center;gap:14px;background:#ffffffd9;border-radius:22px;padding:18px}.profile-avatar{font-size:46px}.profile-info h3{margin:0 0 4px;color:#5b4a8a}.profile-info p{margin:0;font-size:13px;color:#9a8fc2;font-weight:700}.section-title{margin:0;font-size:15px;color:#5b4a8a}.logout-btn{margin-top:10px;background:none;color:#b3a8d6;font-size:13px;font-weight:700;text-decoration:underline}.night-panel{background:linear-gradient(160deg,#2f2a52,#463a6e);border-radius:20px;padding:16px}.night-panel .phase-title,.night-panel .phase-desc,.night-panel .waiting-hint{color:#d5cdf2}.night-panel .my-card{background:#ffffff1a}.night-panel .my-role{color:#b3a8d6}.night-panel .my-word{color:#ffd9e8}.night-panel .timer-bar{background:#ffffff26}.night-panel .pick-cell{background:#ffffffe6}.modal-mask{position:fixed;inset:0;background:#463a6e80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.qr-modal{background:#fff;border-radius:28px;padding:24px;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:320px;width:100%}.qr-modal h3{margin:0;color:#5b4a8a}.qr-image{width:240px;height:240px;border-radius:16px;border:3px solid #f0e4ff}.qr-code-text{margin:0;font-size:15px;color:#7a6bb2}.qr-code-text b{color:#4a9fd8;font-size:20px;letter-spacing:3px}.qr-hint{margin:0;font-size:12px;color:#b3a8d6}.qr-modal .big-btn{width:100%}.toast{position:fixed;left:50%;bottom:40px;transform:translate(-50%);background:#463a6eeb;color:#fff;font-size:14px;font-weight:700;border-radius:999px;padding:10px 22px;z-index:100;animation:toast-in .25s ease-out;max-width:86vw;text-align:center}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.pcard{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:52px;padding:2px 6px;background:#fff;border:2px solid #e4d9ff;border-radius:9px;font-size:16px;font-weight:900;color:#2f2a52;box-shadow:0 2px 6px #9678c826}.pcard-red{color:#e05c7e;border-color:#ffd3de}.pcard-small{min-width:30px;height:38px;font-size:13px}.pcard-joker{font-size:22px}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.memory-cell{aspect-ratio:3 / 4;border-radius:14px;border:3px solid #d8c8ff;background:linear-gradient(150deg,#c9b4ff,#a8e6cf);font-size:26px;display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s,border-color .15s}.memory-cell:active:not(:disabled){transform:scale(.93)}.memory-flipped{background:#fff;border-color:#ffe3f1}.memory-matched{background:#eafff3;border-color:#6ddba0;opacity:.85}.memory-cell:disabled{cursor:default}@media(max-width:360px){.memory-grid{gap:6px}.memory-cell{font-size:20px}}@media(min-width:640px){.app-shell{padding-top:24px}}@media(max-width:360px){.avatar-grid{grid-template-columns:repeat(6,1fr)}.pick-grid,.dice-area{grid-template-columns:repeat(2,1fr)}}
