*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%}body{background:#0d0a15;color:#fff;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;-webkit-font-smoothing:antialiased}.display[data-v-2fbbc8d7]{width:100%;height:100%;background:radial-gradient(ellipse at 50% 30%,#2d0a3a,#0d0a15 70%);overflow:hidden;position:relative;display:flex;flex-direction:column}.hearts-bg[data-v-2fbbc8d7]{position:fixed;inset:0;pointer-events:none;overflow:hidden}.heart[data-v-2fbbc8d7]{position:absolute;bottom:-5%;animation:float-heart-2fbbc8d7 linear infinite;-webkit-user-select:none;user-select:none}@keyframes float-heart-2fbbc8d7{0%{transform:translateY(0) rotate(0);opacity:inherit}to{transform:translateY(-110vh) rotate(20deg);opacity:0}}.waiting[data-v-2fbbc8d7]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:3vh 4vw;gap:2vh}.waiting-header[data-v-2fbbc8d7]{text-align:center}.main-title[data-v-2fbbc8d7]{font-size:clamp(2rem,5vw,4rem);font-weight:800;background:linear-gradient(135deg,#ff9dc8,#ff3d7f,gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.05em}.sub-title[data-v-2fbbc8d7]{color:#c084fc;font-size:clamp(.9rem,2vw,1.4rem);margin-top:.4em;letter-spacing:.15em}.qr-wrap[data-v-2fbbc8d7]{display:flex;flex-direction:column;align-items:center;gap:1.2vh}.qr-card[data-v-2fbbc8d7]{background:#fff;border-radius:20px;padding:16px;box-shadow:0 0 60px #ff3d7f4d}.qr-img[data-v-2fbbc8d7]{display:block;width:clamp(180px,22vw,280px);height:auto;border-radius:8px}.qr-scan-hint[data-v-2fbbc8d7]{text-align:center;color:#1a0a1a;font-size:.95rem;font-weight:600;margin-top:8px}.qr-url[data-v-2fbbc8d7]{color:#a78bfa;font-size:clamp(.7rem,1.4vw,1rem);letter-spacing:.05em}.joined-badge[data-v-2fbbc8d7]{background:#ff3d7f26;border:1px solid rgba(255,61,127,.4);color:#ff9dc8;border-radius:999px;padding:.4em 1.4em;font-size:clamp(.85rem,1.6vw,1.1rem)}.joined-badge strong[data-v-2fbbc8d7]{color:gold;font-size:1.3em}.admin-panel[data-v-2fbbc8d7]{display:flex;flex-direction:column;align-items:center;gap:1.2vh;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.4vh 3vw}.duration-group[data-v-2fbbc8d7]{display:flex;align-items:center;gap:.6em}.duration-label[data-v-2fbbc8d7]{color:#c4b5fd;font-size:clamp(.8rem,1.4vw,1rem)}.dur-btn[data-v-2fbbc8d7]{background:#ffffff12;border:1px solid rgba(255,255,255,.15);color:#d4b8ff;border-radius:8px;padding:.4em 1em;font-size:clamp(.8rem,1.3vw,1rem);cursor:pointer;transition:all .2s}.dur-btn[data-v-2fbbc8d7]:hover,.dur-btn.active[data-v-2fbbc8d7]{background:#ff3d7f40;border-color:#ff3d7f;color:#fff}.btn-start[data-v-2fbbc8d7]{background:linear-gradient(135deg,#ff3d7f,#c71f7e);border:none;color:#fff;font-size:clamp(1rem,2vw,1.4rem);font-weight:700;padding:.6em 3em;border-radius:999px;cursor:pointer;box-shadow:0 4px 24px #ff3d7f80;transition:transform .15s,box-shadow .15s}.btn-start[data-v-2fbbc8d7]:hover{transform:scale(1.05);box-shadow:0 6px 32px #ff3d7fb3}.game-screen[data-v-2fbbc8d7]{flex:1;display:flex;flex-direction:column;padding:1.5vh 2.5vw;gap:1.5vh;overflow:hidden}.game-header[data-v-2fbbc8d7]{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.game-title[data-v-2fbbc8d7]{font-size:clamp(1.2rem,3vw,2rem);font-weight:800;background:linear-gradient(135deg,#ff9dc8,#ff3d7f,gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.countdown-wrap[data-v-2fbbc8d7]{position:relative;width:clamp(70px,9vw,110px);height:clamp(70px,9vw,110px);flex-shrink:0}.countdown-ring[data-v-2fbbc8d7]{width:100%;height:100%}.countdown-num[data-v-2fbbc8d7]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(1.2rem,3vw,2rem);font-weight:800;color:#fff}.ended-badge[data-v-2fbbc8d7]{font-size:clamp(1.2rem,3vw,2rem);font-weight:800;color:gold;animation:pulse-2fbbc8d7 1s ease-in-out infinite}@keyframes pulse-2fbbc8d7{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.04)}}.empty-board[data-v-2fbbc8d7]{text-align:center;color:#7c6a8a;font-size:clamp(1rem,2vw,1.4rem);margin-top:5vh}.top3-row[data-v-2fbbc8d7]{display:flex;gap:1.5vw;flex-shrink:0}.top3-card[data-v-2fbbc8d7]{flex:1;background:#ffffff0d;border-radius:16px;padding:1.5vh 1.5vw;display:flex;flex-direction:column;gap:.5vh;border:1px solid rgba(255,255,255,.08);transition:transform .3s}.top3-card.rank1[data-v-2fbbc8d7]{border-color:#ffd70066;background:#ffd70012}.top3-card.rank2[data-v-2fbbc8d7]{border-color:#c0c0c066;background:#c0c0c00d}.top3-card.rank3[data-v-2fbbc8d7]{border-color:#cd7f3266;background:#cd7f320d}.medal[data-v-2fbbc8d7]{font-size:clamp(1.5rem,3vw,2.5rem)}.top3-name[data-v-2fbbc8d7]{font-size:clamp(1rem,2.2vw,1.7rem);font-weight:700;color:#f0e6ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top3-count[data-v-2fbbc8d7]{font-size:clamp(1.5rem,3.5vw,2.8rem);font-weight:800;color:gold;line-height:1}.top3-count span[data-v-2fbbc8d7]{font-size:.45em;color:#c4b5fd;font-weight:400;margin-left:2px}.bar-track[data-v-2fbbc8d7]{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;margin-top:.5vh}.bar-fill[data-v-2fbbc8d7]{height:100%;background:linear-gradient(90deg,#ff3d7f,gold);border-radius:4px;transition:width .6s ease;min-width:4px}.rest-list[data-v-2fbbc8d7]{display:flex;flex-direction:column;gap:.6vh;overflow:hidden}.rest-row[data-v-2fbbc8d7]{display:flex;align-items:center;gap:1vw;background:#ffffff08;border-radius:10px;padding:.5vh 1vw}.rest-rank[data-v-2fbbc8d7]{width:2em;text-align:center;color:#9d7abf;font-size:clamp(.85rem,1.5vw,1.1rem);font-weight:600;flex-shrink:0}.rest-name[data-v-2fbbc8d7]{width:8em;font-size:clamp(.85rem,1.5vw,1.1rem);color:#e2d4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.rest-bar-track[data-v-2fbbc8d7]{flex:1;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.rest-bar-fill[data-v-2fbbc8d7]{height:100%;background:linear-gradient(90deg,#c084fc,#ff3d7f);border-radius:3px;transition:width .6s ease;min-width:3px}.rest-count[data-v-2fbbc8d7]{width:5em;text-align:right;font-size:clamp(.85rem,1.4vw,1rem);color:#c4b5fd;flex-shrink:0}.board-move[data-v-2fbbc8d7]{transition:transform .5s ease}.reset-area[data-v-2fbbc8d7]{display:flex;justify-content:center;padding-top:.5vh}.btn-reset[data-v-2fbbc8d7]{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#c4b5fd;border-radius:999px;padding:.5em 2.5em;font-size:clamp(.85rem,1.4vw,1rem);cursor:pointer;transition:all .2s}.btn-reset[data-v-2fbbc8d7]:hover{background:#ff3d7f33;border-color:#ff3d7f;color:#fff}.shake-page[data-v-8a538d11]{width:100%;height:100%;background:radial-gradient(ellipse at 50% 20%,#2d0a3a,#0d0a15 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative}.phase[data-v-8a538d11]{width:100%;max-width:420px;padding:0 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.4rem}.logo[data-v-8a538d11]{font-size:3.5rem;animation:beat-8a538d11 1.4s ease-in-out infinite}.logo.big[data-v-8a538d11]{font-size:5rem}@keyframes beat-8a538d11{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.page-title[data-v-8a538d11]{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#ff9dc8,#ff3d7f,gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center}.page-sub[data-v-8a538d11],.hint[data-v-8a538d11],.tip[data-v-8a538d11]{color:#a78bfa;font-size:.95rem;text-align:center;letter-spacing:.1em}.input-wrap[data-v-8a538d11]{display:flex;flex-direction:column;width:100%;gap:.8rem}.name-input[data-v-8a538d11]{background:#ffffff14;border:1px solid rgba(255,107,157,.4);border-radius:12px;padding:.9em 1.2em;color:#fff;font-size:1.1rem;text-align:center;outline:none;width:100%;transition:border-color .2s}.name-input[data-v-8a538d11]::placeholder{color:#7c6a8a}.name-input[data-v-8a538d11]:focus{border-color:#ff3d7f}.btn-join[data-v-8a538d11]{background:linear-gradient(135deg,#ff3d7f,#c71f7e);border:none;color:#fff;font-size:1.15rem;font-weight:700;padding:.8em 0;border-radius:999px;cursor:pointer;box-shadow:0 4px 20px #ff3d7f73;transition:transform .15s,box-shadow .15s;width:100%}.btn-join[data-v-8a538d11]:hover:not(:disabled){transform:scale(1.03);box-shadow:0 6px 28px #ff3d7fa6}.btn-join[data-v-8a538d11]:disabled{opacity:.4;cursor:not-allowed}.greeting[data-v-8a538d11]{font-size:1.4rem;font-weight:700;color:#f0e6ff;text-align:center}.spinner[data-v-8a538d11]{width:48px;height:48px;border:4px solid rgba(255,61,127,.2);border-top-color:#ff3d7f;border-radius:50%;animation:spin-8a538d11 1s linear infinite}@keyframes spin-8a538d11{to{transform:rotate(360deg)}}.perm-wrap[data-v-8a538d11]{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:.5rem}.perm-tip[data-v-8a538d11]{color:#9d7abf;font-size:.85rem}.btn-perm[data-v-8a538d11]{background:#ffffff1a;border:1px solid rgba(255,255,255,.25);color:#e2d4ff;border-radius:999px;padding:.55em 1.8em;font-size:1rem;cursor:pointer;transition:all .2s}.btn-perm[data-v-8a538d11]:hover{background:#ff3d7f33;border-color:#ff3d7f}.play-phase[data-v-8a538d11]{gap:1rem}.bar-wrap[data-v-8a538d11]{width:100%;height:10px;background:#ffffff1a;border-radius:5px;overflow:hidden;position:relative}.bar-inner[data-v-8a538d11]{height:100%;background:linear-gradient(90deg,#ff3d7f,gold);border-radius:5px;transition:width .95s linear}.bar-label[data-v-8a538d11]{position:absolute;right:0;top:50%;transform:translateY(-50%) translate(calc(100% + 8px));font-size:.8rem;color:#c4b5fd;white-space:nowrap}.shake-ball[data-v-8a538d11]{width:200px;height:200px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff6b9d,#b5177a);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 0 12px #ff3d7f1f,0 0 40px #ff3d7f66;-webkit-user-select:none;user-select:none;transition:transform .1s;-webkit-tap-highlight-color:transparent}.shake-ball[data-v-8a538d11]:active{transform:scale(.95)}.shake-ball.shaking[data-v-8a538d11]{animation:shake-pop-8a538d11 .25s ease-out}@keyframes shake-pop-8a538d11{0%{transform:scale(1) rotate(0)}40%{transform:scale(1.18) rotate(-6deg)}70%{transform:scale(1.12) rotate(4deg)}to{transform:scale(1) rotate(0)}}.count-num[data-v-8a538d11]{font-size:3.5rem;font-weight:800;color:#fff;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.3)}.count-unit[data-v-8a538d11]{font-size:1rem;color:#ffffffb3;margin-top:2px}.shake-tip[data-v-8a538d11]{color:#9d7abf;font-size:.9rem;text-align:center}.rank-badge[data-v-8a538d11]{background:#ffd70026;border:1px solid rgba(255,215,0,.4);color:gold;border-radius:999px;padding:.35em 1.4em;font-size:1rem;font-weight:600}.end-phase[data-v-8a538d11]{position:relative}.confetti[data-v-8a538d11]{position:absolute;inset:-20% -10%;pointer-events:none}.confetti span[data-v-8a538d11]{position:absolute;animation:confetti-fall-8a538d11 linear infinite;font-size:1.2rem}@keyframes confetti-fall-8a538d11{0%{transform:translateY(-10%) rotate(0);opacity:1}to{transform:translateY(110%) rotate(360deg);opacity:0}}.end-title[data-v-8a538d11]{font-size:2.2rem;font-weight:800;background:linear-gradient(135deg,gold,#ff9dc8,#ff3d7f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center}.end-name[data-v-8a538d11]{font-size:1.5rem;font-weight:700;color:#f0e6ff;text-align:center}.result-box[data-v-8a538d11]{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:#ffffff0d;border:1px solid rgba(255,215,0,.2);border-radius:20px;padding:1.2rem 2.5rem}.result-count[data-v-8a538d11]{font-size:3rem;font-weight:800;color:gold;line-height:1}.result-count span[data-v-8a538d11]{font-size:.45em;color:#c4b5fd;font-weight:400}.result-rank[data-v-8a538d11]{font-size:1.2rem;font-weight:600;color:gold}.thanks[data-v-8a538d11]{color:#ff9dc8;font-size:.95rem;text-align:center;letter-spacing:.05em}
