body{display:flex;flex-direction:column;min-height:100dvh}.setup{flex:1;display:flex;align-items:center;justify-content:center;padding:16px clamp(14px,4vw,32px) 34px}.setup-card{width:min(600px,100%);background:var(--card-bg);border:1.5px solid var(--card-line);border-radius:var(--radius-lg);padding:clamp(24px,5vw,42px);animation:rise-in 550ms cubic-bezier(0.22,1,0.36,1) both}@keyframes rise-in{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}.setup-card h1{font-weight:900;font-size:clamp(1.5rem,5vw,2.1rem);text-align:center}.add-row{display:flex;gap:10px;align-items:stretch}.add-row input{flex:1}.add-btn{width:52px;min-width:52px;height:auto;padding:0;font-size:1.5rem;border-radius:var(--radius-sm)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;min-height:40px}.chip{display:inline-flex;align-items:center;gap:8px;background:rgba(254,92,131,0.14);border:1.5px solid rgba(254,92,131,0.45);border-radius:999px;padding:7px 14px;font-weight:800;animation:chip-in 300ms cubic-bezier(0.34,1.5,0.64,1) both}@keyframes chip-in{from{opacity:0;transform:scale(0.6)}to{opacity:1;transform:scale(1)}}.chip button{color:var(--pink);font-weight:900}.btn-start{width:100%;margin-top:24px;font-size:1.15rem;padding:1em}.rules-hint{margin-top:16px;color:var(--text-dim);font-weight:500;font-size:0.92rem;line-height:1.9;text-align:center}.game{flex:1;display:flex;flex-direction:column;padding:0 clamp(10px,3vw,28px) clamp(14px,3vh,26px)}.players-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(6px,1.5vw,12px);width:min(900px,100%);margin:0 auto 6px}.p-chip{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;background:var(--card-bg);border:1.5px solid var(--card-line);font-weight:800;transition:all var(--smooth)}.p-chip.holder{border-color:var(--pink);box-shadow:0 0 22px -4px var(--pink);transform:translateY(-3px) scale(1.05)}.p-chip.dead{opacity:0.32;filter:grayscale(1);text-decoration:line-through}.bomb-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2vh,18px);text-align:center}.round-label{color:var(--text-dim);font-weight:800}.category-card{background:var(--card-bg);border:1.5px solid rgba(255,220,16,0.4);border-radius:var(--radius-lg);padding:clamp(16px,3vh,26px) clamp(26px,6vw,60px);max-width:min(680px,94vw);animation:rise-in 450ms cubic-bezier(0.22,1,0.36,1) both}.cat-label{color:var(--yellow);font-weight:800;font-size:0.85rem;letter-spacing:0.06em}.category-card h2{font-weight:900;font-size:clamp(1.4rem,4.5vw,2.2rem);margin-top:4px;line-height:1.6}.bomb-visual{font-size:clamp(4rem,14vmin,7rem);filter:drop-shadow(0 10px 30px rgba(254,92,131,0.45));animation:bomb-idle 1s ease-in-out infinite}@keyframes bomb-idle{0%,100%{transform:rotate(-4deg) scale(1)}50%{transform:rotate(4deg) scale(1.04)}}.bomb-visual.danger{animation:bomb-danger 300ms ease-in-out infinite}@keyframes bomb-danger{0%,100%{transform:rotate(-7deg) scale(1.05);filter:drop-shadow(0 10px 34px rgba(254,92,131,0.8))}50%{transform:rotate(7deg) scale(1.14);filter:drop-shadow(0 10px 44px rgba(255,116,16,0.9))}}.bomb-visual.paused{animation-play-state:paused;opacity:0.6}.holder-line{font-weight:700;color:var(--text-dim)}.holder-line b{color:var(--pink);font-size:1.25em}.bomb-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.btn-pass{font-size:1.2rem;padding:0.9em 2.2em}@media (max-width:640px) and (orientation:portrait){.bomb-stage{justify-content:flex-start;padding-top:clamp(14px,5vh,48px);gap:clamp(14px,3.2vh,26px)}}.boom-flash{position:fixed;inset:0;z-index:300;background:radial-gradient(circle,rgba(255,220,16,0.9),rgba(255,116,16,0.7) 40%,rgba(254,92,131,0.4) 70%,transparent);pointer-events:none;animation:flash 700ms ease-out both}@keyframes flash{from{opacity:1}to{opacity:0}}body.shake{animation:screen-shake 500ms}@keyframes screen-shake{0%,100%{transform:translate(0,0)}20%{transform:translate(-10px,6px)}40%{transform:translate(9px,-7px)}60%{transform:translate(-7px,5px)}80%{transform:translate(5px,-4px)}}.boom-sheet .boom-emoji{font-size:4.2rem;animation:emoji-drop 400ms cubic-bezier(0.34,1.5,0.64,1) both}@keyframes emoji-drop{from{opacity:0;transform:translateY(-30px) scale(0.4)}to{opacity:1;transform:translateY(0) scale(1)}}.boom-sheet h2{font-size:clamp(1.5rem,5vw,2.1rem);color:var(--pink)}.champ-name{font-weight:900;font-size:clamp(2rem,8vw,3rem);background:linear-gradient(120deg,var(--violet),var(--orange));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.win-prize{margin:14px auto 0;font-weight:900;font-size:1.15rem;color:var(--yellow);background:rgba(255,220,16,0.08);border:1.5px dashed rgba(255,220,16,0.45);border-radius:var(--radius-md);padding:12px 20px}