.play-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:10px 0 4px;border-radius:22px;text-decoration:none;color:#5A2F45;background:linear-gradient(120deg,#F7DDE6,#EFE3F7);border:1px solid #FFFFFF9C;box-shadow:var(--lift)}
.play-banner .pb-ic{font-size:26px;flex:none}.play-banner .pb-t{flex:1;display:flex;flex-direction:column}.play-banner b{font-size:17px}.play-banner small{color:#6A4A5E;font-size:13px;line-height:1.6}.play-banner .chev{width:18px;height:18px;color:#9A7A8C;transform:scaleX(-1);flex:none}
.pl-game{padding:16px;margin-bottom:12px}.pl-gh{display:flex;gap:12px;align-items:center}.pl-gi{font-size:34px;width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:#F6EEF7;flex:none}
.pl-gh b{display:block;font-size:17px}.pl-gh small{color:var(--muted);font-size:13px;line-height:1.7}
.pl-ga{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.pl-ga .btn{flex:1 1 140px;justify-content:center}
.pl-join{padding:14px 16px}.pl-jr{display:flex;gap:8px;margin-top:8px}.pl-jr input{flex:1;font:700 20px/1.2 ui-monospace,monospace;letter-spacing:4px;text-transform:uppercase;text-align:center}
.pl-recent{display:flex;flex-wrap:wrap;gap:8px}.pl-note{font-size:13px;color:#5B6C74;line-height:1.9;background:#F4F1F7;border-radius:16px;padding:10px 14px;margin:10px 0}
.pl-name{padding:20px;max-width:520px;margin:12px auto}.pl-name label{display:block;font-weight:700;margin:12px 0 6px}.pl-name input{margin-bottom:8px}.pl-err{color:#874857;font-size:13px;min-height:1em}
.pl-lobby{padding:20px;max-width:560px;margin:12px auto;text-align:center}.pl-code{font:900 38px/1.2 ui-monospace,Menlo,monospace;letter-spacing:8px;color:#2F5D73;background:#EEF5F9;border:2px dashed #B9D2E0;border-radius:18px;padding:12px;margin:10px 0 4px;user-select:all}
.pl-lobby h3{margin:18px 0 8px;font-size:16px}.pl-seats{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:6px}.pl-seats li{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:14px;background:#F6F8F5;font-weight:700}
.pl-seats i,.lu-p i{width:14px;height:14px;border-radius:50%;display:inline-block;flex:none;box-shadow:0 0 0 2px #fff}.pl-leave{margin-top:10px}.qz-wait{color:#5B6C74;text-align:center;margin:14px 0}
.pl-net{background:#FFF4D6;color:#6B4E00;border-radius:12px;padding:8px 12px;font-size:13px}
.lu-wrap{max-width:560px;margin:0 auto}.lu-ps{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px 0 10px}
.lu-p{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:14px;background:#fff;border:1px solid #E6ECE8;font-size:14px;font-weight:700}.lu-p.on{border-color:#7FAF99;box-shadow:0 0 0 3px #DDEFE3}.lu-p.left{opacity:.45}.lu-p small{font-weight:400;color:var(--muted)}.lu-home{background:#F2F4F0;border-radius:8px;padding:0 6px}
.lu-bw{background:#fff;border-radius:22px;padding:8px;box-shadow:var(--sh3)}.lu-board{width:100%;height:auto;display:block}
.lu-pc{cursor:default}.lu-hop{transform-box:fill-box;transform-origin:center}.lu-hop.hop{animation:luHop .2s ease-out}
@keyframes luHop{0%{transform:translateY(0)}45%{transform:translateY(-.32px) scale(1.12)}100%{transform:translateY(0)}}
.lu-ring{opacity:0}.lu-pc.can{cursor:pointer}.lu-pc.can .lu-ring{opacity:1;animation:luDash 1s linear infinite}@keyframes luDash{to{stroke-dashoffset:-.52}}
@keyframes luSpin{to{transform:rotate(360deg)}}.lu-pc.can .lu-hop{animation:luBob 1s ease-in-out infinite}@keyframes luBob{50%{transform:translateY(-.12px)}}
.lu-pc.hit .lu-hop{animation:luHit .26s ease-in-out}@keyframes luHit{0%,100%{transform:rotate(0)}25%{transform:rotate(-18deg)}75%{transform:rotate(18deg)}}
.lu-bar{display:flex;align-items:center;gap:16px;margin-top:12px;background:#fff;border-radius:20px;padding:12px 16px;box-shadow:var(--sh3)}
.lu-dice{--s:58px;width:84px;height:84px;flex:none;border-radius:22px;border:3px solid var(--c,#356C8B);background:radial-gradient(circle at 50% 35%,#FFFFFF,#EEF2F0);display:grid;place-items:center;cursor:pointer;padding:0;perspective:420px;box-shadow:0 6px 16px rgba(30,50,60,.12)}
.lu-dice:disabled{cursor:default}.lu-dice.go{animation:luGo 1.1s ease-in-out infinite;box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 22%,#fff),0 6px 16px rgba(30,50,60,.12)}
@keyframes luGo{50%{transform:scale(1.06)}}.lu-dice.toss .dice3d{animation:luToss 1s cubic-bezier(.3,.7,.3,1)}@keyframes luToss{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-16px) scale(1.12)}100%{transform:translateY(0) scale(1)}}
.dice3d{width:var(--s);height:var(--s);display:block;transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(-24deg)}
.dice3d .cube{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d}
.dz{position:absolute;inset:0;border-radius:11px;background:radial-gradient(circle at 30% 25%,#FFFFFF,#F1F2F4 55%,#D5D9DF);box-shadow:inset 0 0 0 1px rgba(0,0,0,.06),inset -3px -4px 8px rgba(0,0,0,.10),inset 3px 3px 6px rgba(255,255,255,.9);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:7px;gap:2px;backface-visibility:hidden}
.dz i{display:block;border-radius:50%}.dz i.p{background:radial-gradient(circle at 35% 30%,#5A5F66,#15181C 70%);box-shadow:inset 0 1px 1px rgba(255,255,255,.25),0 1px 0 rgba(255,255,255,.7);margin:1px}.dz i.p.one{background:radial-gradient(circle at 35% 30%,#F07A7A,#B8222B 70%);margin:-2px}
.f1{transform:translateZ(calc(var(--s)/2))}.f6{transform:rotateY(180deg) translateZ(calc(var(--s)/2))}.f3{transform:rotateY(90deg) translateZ(calc(var(--s)/2))}.f4{transform:rotateY(-90deg) translateZ(calc(var(--s)/2))}.f2{transform:rotateX(90deg) translateZ(calc(var(--s)/2))}.f5{transform:rotateX(-90deg) translateZ(calc(var(--s)/2))}
.lu-got{display:block;font-weight:900;font-size:17px;color:#2F5D73;min-height:1.3em}
.lu-st{flex:1;display:flex;flex-direction:column;gap:2px}.lu-st b{font-size:15.5px}.lu-st small{color:#5B6C74;font-size:13px;min-height:1.4em}
.lu-wrap>#lu-skip{width:100%;margin-top:10px}.pl-end{max-width:560px;margin:12px auto}
.qz-h{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:#4E5F67;margin:4px 2px 10px;font-size:14px}
.qz-q{padding:20px}.qz-q h2{font-size:21px;line-height:1.7;margin:4px 0 6px}.qz-about{display:inline-block;background:#F4E6EE;color:#7B3F5E;border-radius:10px;padding:2px 10px;font-weight:700}
.qz-opts{display:grid;gap:8px;margin-top:12px}.qz-tot{display:flex;align-items:stretch;gap:8px;margin-top:12px}.qz-tot .ans{flex:1;min-height:84px;font-size:18px;font-weight:700}.qz-tot span{align-self:center;color:var(--muted)}
.qz-rev{margin-top:12px;background:#F6F8F5;border-radius:16px;padding:12px 14px}.qz-rev p{margin:4px 0}.qz-tip{color:#3D6253;font-weight:700}
.qz-talk>div{background:#fff;border-radius:14px;padding:8px 12px;margin-bottom:8px}.qz-talk small{color:#7B3F5E;font-weight:700}.qz-talk p{white-space:pre-wrap;overflow-wrap:anywhere}
.qz-q textarea{margin-top:10px}.qz-cover,.qz-end{text-align:center;padding:24px}.qz-big{font-size:52px;line-height:1.2}.qz-cover small{display:block;color:var(--muted);margin:6px 0 14px}
#qz-next{margin-top:12px}
.lu-win{position:fixed;inset:0;z-index:300;background:rgba(20,30,40,.45);display:grid;place-items:center;padding:20px;animation:lwFade .3s ease}@keyframes lwFade{from{opacity:0}}
.lw-card{position:relative;overflow:hidden;width:min(340px,100%);background:linear-gradient(180deg,#FFFBEA,#FFFFFF 60%);border-radius:28px;padding:26px 20px 20px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:lwPop .5s cubic-bezier(.2,1.4,.4,1)}
@keyframes lwPop{from{transform:scale(.6);opacity:0}}
.lw-rays{position:absolute;left:50%;top:78px;width:300px;height:300px;margin:-150px 0 0 -150px;background:repeating-conic-gradient(from 0deg,rgba(242,194,48,.22) 0 12deg,transparent 12deg 24deg);border-radius:50%;animation:lwSpin 9s linear infinite;pointer-events:none}@keyframes lwSpin{to{transform:rotate(360deg)}}
.lw-cup{position:relative;width:118px;height:118px;filter:drop-shadow(0 8px 10px rgba(150,100,10,.35));animation:lwCup 1.4s ease-in-out infinite}@keyframes lwCup{50%{transform:translateY(-6px) rotate(-3deg)}}
.lw-card h2{position:relative;margin:8px 0 2px;font-size:28px;font-weight:900;color:#8A5A12}.lw-card p{position:relative;font-size:18px;font-weight:700;margin:0 0 6px}
.lw-conf{position:fixed;inset:0;pointer-events:none;overflow:hidden}.lw-conf i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:lwFall linear forwards}
@keyframes lwFall{to{top:105%;transform:rotate(720deg) translateX(40px)}}
.dz{padding:0;overflow:hidden;display:block;background:#FBF8EE}.dz img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;user-select:none}
.lw-cup.lw-bird{width:150px;height:auto;filter:drop-shadow(0 8px 10px rgba(30,60,90,.3));animation:lwBird 1s cubic-bezier(.3,1.5,.5,1) infinite}
@keyframes lwBird{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-12px) rotate(-4deg)}65%{transform:translateY(0) rotate(3deg) scale(1.03,.97)}}
.pl-kick{margin-inline-start:auto;border:1px solid #EBC9CF;background:#FFF6F7;color:#8A3B4A;border-radius:999px;padding:3px 12px;font:700 13px/1.6 inherit;font-family:inherit;cursor:pointer;min-height:32px}
.pl-kick:hover{background:#FBE7EA}
.pl-seats li .pl-kick{flex:none}
.pl-lobby .pl-seats.host li{justify-content:flex-start;padding-inline:14px;min-height:52px}
.pl-del{margin-top:10px;background:#FBEDEF!important;color:#8A3B4A!important;border:1px solid #EBC9CF!important}
.pl-hint{font-size:13px;color:#6B7A80;margin:6px 0 0}
.pl-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.pl-top .crumb{margin:0}
.pl-tbtn{border:1px solid #D5E2DA;background:#fff;color:#2F5D4E;border-radius:999px;padding:6px 14px;font:700 14px/1.6 inherit;font-family:inherit;cursor:pointer;min-height:40px;box-shadow:0 1px 3px rgba(20,40,30,.08)}
.pl-menu{max-width:420px;text-align:start}
.pl-menu h3{font-size:19px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-mcode{margin-inline-start:auto;font:800 14px/1 ui-monospace,Menlo,monospace;letter-spacing:2px;color:#2F5D73;background:#EEF5F9;border-radius:8px;padding:5px 8px}
.pl-mseats{margin:10px 0 14px}
.pl-mseats li{justify-content:flex-start;gap:10px;flex-wrap:wrap}
.pl-mseats li.gone{opacity:.6}
.pl-tag{font-weight:700;color:#5B6C74;background:#fff;border-radius:999px;padding:0 8px}
.pl-menu .btn{margin-top:8px}
.pl-gone{text-align:center;padding:24px}
.lu-nm{font-weight:900}
