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(135,16,255,0.16);border:1.5px solid rgba(135,16,255,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{font-size:1rem;color:var(--pink);font-weight:900;padding:0 2px}.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 8px}.p-chip{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:86px;padding:8px 14px;border-radius:var(--radius-md);background:var(--card-bg);border:1.5px solid var(--card-line);transition:box-shadow var(--smooth),border-color var(--smooth),transform var(--smooth),opacity var(--smooth)}.p-chip .p-name{font-weight:800;font-size:0.92rem;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-chip .p-score{font-weight:900;font-size:1.15rem;color:var(--yellow);transition:transform 200ms}.p-chip.bump .p-score{animation:score-bump 450ms cubic-bezier(0.34,1.6,0.64,1)}@keyframes score-bump{50%{transform:scale(1.45)}}.p-chip.active{border-color:var(--violet);box-shadow:0 0 22px -4px var(--violet);transform:translateY(-3px)}.p-chip.leader .p-name::after{content:' 👑'}.mid-info{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}.turn-chip{font-weight:900;padding:6px 16px;border-radius:99px;border:1.5px solid rgba(198,88,250,0.55);color:var(--lilac)}.picks-chip{color:var(--text-dim);font-weight:700;font-size:0.9rem}.prize-chip{color:var(--yellow);font-weight:700;font-size:0.9rem}.prize-chip:empty{display:none}.boxes-grid{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,1.5vmin,14px);width:min(100%,92vmin,560px);margin:0 auto;align-content:center}.box{position:relative;aspect-ratio:1;border-radius:clamp(12px,2vmin,18px);background:linear-gradient(160deg,#3d1a6e,#241040);border:1.5px solid rgba(198,88,250,0.35);display:flex;align-items:center;justify-content:center;font-size:clamp(1.5rem,5.5vmin,2.4rem);transition:transform var(--snap),filter var(--smooth),opacity var(--smooth),box-shadow var(--snap);-webkit-tap-highlight-color:transparent;animation:pop-in 480ms cubic-bezier(0.34,1.5,0.64,1) both;animation-delay:calc(var(--i) * 20ms)}@keyframes pop-in{from{opacity:0;transform:scale(0.4)}to{opacity:1;transform:scale(1)}}.box::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(60% 60% at 50% 0%,rgba(255,220,16,0.14),transparent 70%)}.box:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 10px 28px -10px var(--violet)}.box:active{transform:scale(0.92)}.box.opened{pointer-events:none;animation:none}.box.opened::after{display:none}.box.opened.good{background:linear-gradient(160deg,rgba(87,195,103,0.35),rgba(20,40,24,0.8));border-color:rgba(87,195,103,0.4)}.box.opened.bad{background:linear-gradient(160deg,rgba(254,92,131,0.3),rgba(45,12,22,0.85));border-color:rgba(254,92,131,0.4)}.box.opened.gold{background:linear-gradient(160deg,rgba(255,220,16,0.32),rgba(50,40,5,0.85));border-color:rgba(255,220,16,0.45)}.box.opened.swapc{background:linear-gradient(160deg,rgba(87,183,255,0.3),rgba(10,25,45,0.85));border-color:rgba(87,183,255,0.45)}.box.opened span{font-size:0.55em;font-weight:900}.box.opened span.long{font-size:0.4em}.box .box-num{position:absolute;bottom:5%;inset-inline-end:7%;font-size:max(12px,0.44em);font-weight:900;line-height:1.35;color:rgba(255,255,255,0.92);background:rgba(0,0,0,0.38);border-radius:99px;padding:0.02em 0.5em;pointer-events:none;z-index:2}.box.opened .box-num{opacity:0.55}.box.tease{animation:box-tease 700ms cubic-bezier(0.36,0.07,0.19,0.97) both;z-index:3}@keyframes box-tease{0%,100%{transform:scale(1) rotate(0)}20%{transform:scale(1.1) rotate(-5deg)}40%{transform:scale(1.12) rotate(5deg)}60%{transform:scale(1.16) rotate(-6deg)}80%{transform:scale(1.2) rotate(4deg)}}.reveal-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:linear-gradient(165deg,rgba(42,11,82,0.95),rgba(12,5,28,0.98));border:1.5px solid var(--card-line);border-radius:var(--radius-lg);padding:clamp(28px,6vw,48px) clamp(30px,8vw,70px);text-align:center;transform:scale(0.8);transition:transform var(--grand)}.overlay.show .reveal-card{transform:scale(1)}.reveal-emoji{font-size:clamp(3.4rem,10vw,5rem);animation:emoji-drop 500ms cubic-bezier(0.34,1.5,0.64,1) both}@keyframes emoji-drop{from{opacity:0;transform:translateY(-30px) scale(0.5)}to{opacity:1;transform:translateY(0) scale(1)}}.reveal-title{font-weight:900;font-size:clamp(1.6rem,5vw,2.4rem)}.reveal-card.good .reveal-title{color:var(--green)}.reveal-card.bad .reveal-title{color:var(--pink)}.reveal-card.gold .reveal-title{color:var(--yellow)}.reveal-card.swapc .reveal-title{color:var(--sky)}.reveal-sub{color:var(--text-dim);font-weight:700;min-height:1.4em}.reveal-card .btn{margin-top:10px}.swap-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.swap-list .btn{width:100%;justify-content:space-between}.swap-list .btn b{color:var(--yellow)}.draw-name{font-weight:900;font-size:clamp(2rem,8vw,3rem);margin-top:14px;color:var(--violet);min-height:1.3em}.win-sheet .win-crown{font-size:4rem;animation:emoji-drop 700ms cubic-bezier(0.34,1.5,0.64,1) both}.win-name{font-size:clamp(2rem,8vw,3rem);font-weight:900;color:var(--yellow);text-shadow:0 0 34px rgba(255,220,16,0.5)}.win-sub{color:var(--text-dim);font-weight:700;margin-top:4px}.rank-list{margin:18px auto 0;display:flex;flex-direction:column;gap:6px;width:min(320px,100%)}.rank-row{display:flex;justify-content:space-between;background:rgba(0,0,0,0.3);border:1.5px solid var(--card-line);border-radius:var(--radius-sm);padding:8px 14px;font-weight:800}.rank-row b{color:var(--yellow)}.win-prize{margin:16px 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}@media (max-width:640px) and (orientation:portrait){.boxes-grid{align-content:flex-start;padding-top:clamp(10px,4vh,40px)}}@media (min-width:1024px) and (max-height:780px){.boxes-grid{width:min(100%,calc((100dvh - 210px) * 1.25),560px)}}