:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#101310;color:#f3f4ed}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{border:0;border-radius:8px;background:#e2b35f;color:#1c1408;cursor:pointer;font-weight:700;min-height:42px;padding:0 14px}button:hover{filter:brightness(1.08)}input{width:100%;border:1px solid #3c453d;border-radius:8px;background:#171d18;color:#f3f4ed;min-height:42px;padding:0 12px}.shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 30%,#24472d 0,#111810 45%,#080a08)}.panel{width:min(100%,760px);background:#161c17;border:1px solid #303a31;border-radius:8px;padding:28px;box-shadow:0 22px 60px #00000057}.narrow{max-width:560px}.brand{display:flex;gap:14px;align-items:flex-start}h1{margin:0 0 8px}p{color:#cbd2c7}.form{display:grid;gap:16px;margin-top:22px}.form label{display:grid;gap:8px;color:#d9ded5}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.check{display:flex!important;align-items:center}.check input{width:auto}.primary{display:inline-flex;gap:8px;align-items:center;justify-content:center}.error,.toast{color:#ffd1d1}.game{min-height:100vh;display:grid;grid-template-rows:auto minmax(480px,1fr) auto auto;gap:14px;padding:18px;background:#0c100d}.topbar,.controls,.host,.chat{background:#151b16;border:1px solid #2b352c;border-radius:8px;padding:14px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar>div:first-child{min-width:0}.inviteLine{overflow-wrap:anywhere}.iconText{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.status{display:inline-flex;gap:8px;align-items:center}.status.on{color:#a9e4a3}.status.off{color:#ffb0a5}.table{position:relative;min-height:520px;border-radius:260px;background:radial-gradient(ellipse at center,#255f36 0,#184626 58%,#0b2414);border:18px solid #5f4228;box-shadow:inset 0 0 40px #0006;overflow:hidden}.table.celebrating:after{content:"";position:absolute;inset:-30%;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgb(255 236 170 / 18%) 50%,transparent 65%);animation:tableSweep 2.4s ease-out 1}.board{position:absolute;inset:38% 28%;display:grid;place-items:center;gap:8px;z-index:2}.cards{display:flex;gap:6px;justify-content:center}.boardCards{min-height:58px;perspective:760px}.card{display:inline-grid;place-items:center;position:relative;width:42px;height:58px;border-radius:6px;background:#f9faf5;color:#111;font-weight:800;box-shadow:0 2px 8px #00000040;transform-style:preserve-3d}.card.red{color:#b01828}.cardFace{display:grid;place-items:center;width:100%;height:100%;border-radius:inherit}.cardBack{display:none}.boardCard{background:transparent;box-shadow:none;transform-style:preserve-3d}.dealtBoardCard{animation:boardCardSlideIn .34s cubic-bezier(.2,.9,.2,1) both}.boardCard .cardFace,.boardCard .cardBack{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;backface-visibility:hidden;box-shadow:0 2px 8px #00000040;transition:transform .98s cubic-bezier(.18,.82,.18,1);will-change:transform}.boardCard .cardFace{background:#f9faf5;transform:rotateY(180deg)}.boardCard .cardBack{background:linear-gradient(135deg,transparent 0 38%,rgb(255 255 255 / 24%) 39% 42%,transparent 43% 100%),repeating-linear-gradient(45deg,#1f4b72 0 5px,#173758 5px 10px);border:2px solid #f7ead0;transform:rotateY(0)}.revealedBoardCard .cardFace{transform:rotateY(0)}.revealedBoardCard .cardBack{transform:rotateY(-180deg)}.pot,.street,.timer{font-weight:800}.timer{color:#f4d28a}.seat{position:absolute;z-index:3;width:168px;min-height:112px;display:grid;gap:6px;place-items:center;border-radius:8px;background:#172018;border:1px solid #354238;color:#f4f6ef;padding:10px;text-align:center;overflow:hidden}.seat.acting{outline:3px solid #e2b35f}.seat.winner{border-color:#ffe08a;box-shadow:0 0 0 2px #e2b35f73,0 0 34px #ffda7994;animation:winnerPulse 1.4s ease-in-out infinite}.seat.revealed .card{animation:revealCard .52s cubic-bezier(.2,.9,.2,1) both}.seat.hasBlind{border-color:#e9cb7fb8;box-shadow:inset 0 0 0 1px #ffeeae1f,0 8px 24px #00000038}.seat.hasBlind .name{max-width:calc(100% - 36px)}.seatBlind{--blind-accent: #d34a58;--blind-ink: #ad2432;--blind-glow: rgb(211 74 88 / 38%);position:absolute;top:7px;right:7px;display:grid;place-items:center;width:30px;height:40px;border:1px solid rgb(255 255 255 / 80%);border-radius:5px;background:radial-gradient(circle at 50% 45%,rgb(255 255 255 / 88%) 0 18%,transparent 19%),linear-gradient(150deg,#fffdf4 0,#f1ead7 64%,#ded2b5);color:var(--blind-ink);box-shadow:inset 0 0 0 2px #ffffffb8,inset 0 0 0 3px var(--blind-accent),0 4px 10px #00000059,0 0 16px var(--blind-glow);overflow:hidden;transform:rotate(5deg);animation:blindBadgeIn .38s cubic-bezier(.2,.9,.2,1) both}.seatBlind.bigBlind{--blind-accent: #232521;--blind-ink: #111;--blind-glow: rgb(245 208 117 / 36%)}.seatBlindRank{position:absolute;left:4px;top:4px;color:var(--blind-ink);font-size:8px;font-weight:900;line-height:1}.seatBlindFace{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,#fff9da,#e8c96b);color:#19170d;font-size:14px;font-weight:900;box-shadow:inset 0 0 0 1px #ffffff9e,0 2px 6px #00000038}.seatBlind.smallBlind .seatBlindFace{background:linear-gradient(180deg,#ffe7e3,#d64a58);color:#fff8f6}.seatBlindName{position:absolute;bottom:7px;color:var(--blind-ink);font-size:5px;font-weight:900}.winnerBanner{position:absolute;z-index:6;left:50%;top:21%;transform:translate(-50%);display:grid;place-items:center;min-width:min(86%,520px);padding:18px 28px;border:1px solid rgb(255 224 138 / 70%);border-radius:8px;background:linear-gradient(180deg,#282211eb,#151b16eb);box-shadow:0 20px 70px #00000073,0 0 55px #e2b35f6b;overflow:hidden;animation:winnerBannerIn .78s cubic-bezier(.2,.9,.2,1) both}.winnerBanner:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 18%,rgb(255 255 255 / 16%) 42%,transparent 66%);transform:translate(-110%);animation:bannerShine 1.7s ease-out .25s 1}.winnerCopy{position:relative;display:grid;gap:4px;text-align:center}.winnerCopy span{color:#f7d891;font-size:13px;font-weight:800;text-transform:uppercase}.winnerCopy strong{color:#fff8df;font-size:clamp(28px,4vw,46px);line-height:1}.burst{position:absolute;inset:0;pointer-events:none}.burst span{position:absolute;left:50%;top:50%;width:8px;height:18px;border-radius:4px;background:#f4c86f;transform-origin:center;animation:burstOut .9s ease-out both}.burst span:nth-child(1){--angle: 0deg}.burst span:nth-child(2){--angle: 30deg}.burst span:nth-child(3){--angle: 60deg}.burst span:nth-child(4){--angle: 90deg}.burst span:nth-child(5){--angle: 120deg}.burst span:nth-child(6){--angle: 150deg}.burst span:nth-child(7){--angle: 180deg}.burst span:nth-child(8){--angle: 210deg}.burst span:nth-child(9){--angle: 240deg}.burst span:nth-child(10){--angle: 270deg}.burst span:nth-child(11){--angle: 300deg}.burst span:nth-child(12){--angle: 330deg}.seat0{left:42%;bottom:10px}.seat1{left:8%;bottom:22%}.seat2{left:8%;top:18%}.seat3{left:42%;top:10px}.seat4{right:8%;top:18%}.seat5{right:8%;bottom:22%}.name{font-weight:800}.meta,.flags{font-size:13px;color:#cbd2c7}.controls,.host{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.amount{max-width:140px}.danger{background:#ce5d55;color:#fff}.hostPlayers{display:flex;flex-wrap:wrap;gap:8px;width:100%}.hostPlayers span{display:inline-flex;align-items:center;gap:6px;background:#202820;border:1px solid #38433a;border-radius:8px;padding:6px}.hostPlayers button{min-height:30px;padding:0 8px}.chat{display:grid;gap:10px;max-height:220px}.messages{overflow:auto;max-height:150px}.messages p{margin:4px 0}.dealer{color:#e2b35f}.chat form{display:grid;grid-template-columns:1fr auto;gap:8px}@keyframes winnerBannerIn{0%{opacity:0;transform:translate(-50%,18px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes bannerShine{to{transform:translate(115%)}}@keyframes tableSweep{0%{transform:translate(-40%) rotate(0)}to{transform:translate(40%) rotate(0)}}@keyframes winnerPulse{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes revealCard{0%{opacity:0;transform:rotateY(72deg) translateY(5px)}to{opacity:1;transform:rotateY(0) translateY(0)}}@keyframes boardCardSlideIn{0%{opacity:0;transform:translate(-14px,-12px) rotate(-4deg) scale(.96)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}@keyframes blindBadgeIn{0%{opacity:0;transform:translate(8px,-8px) rotate(16deg) scale(.74)}to{opacity:1;transform:translate(0) rotate(5deg) scale(1)}}@keyframes burstOut{0%{opacity:.9;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(.6)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-170px) scale(1)}}@media(prefers-reduced-motion:reduce){.dealtBoardCard{animation:none;transform:none}}@media(max-width:760px){.grid2{grid-template-columns:1fr}.game{padding:10px}.topbar{align-items:flex-start;flex-direction:column}.table{min-height:620px;border-width:10px;border-radius:80px}.seat{width:138px;min-height:96px}.seat0{left:30%;bottom:8px}.seat1{left:2%;bottom:24%}.seat2{left:2%;top:18%}.seat3{left:30%;top:8px}.seat4{right:2%;top:18%}.seat5{right:2%;bottom:24%}.seat.hasBlind .name{max-width:calc(100% - 30px)}.seatBlind{top:6px;right:6px;width:25px;height:34px;border-radius:5px}.seatBlindRank{left:3px;top:3px;font-size:7px}.seatBlindFace{width:15px;height:15px;font-size:12px}.seatBlindName{bottom:5px;font-size:4px}.board{inset:40% 8%}}
