:root{color:#f1f5f9;background:#1a202c;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--color-red: #ef4444;--color-blue: #3b82f6;--color-green: #22c55e;--color-yellow: #eab308;--ui-dark-bg: #1a202c;--table-canvas: #2a2421;--state-disabled: #94a3b8;--text-light: #f1f5f9;--card-width: clamp(68px, min(8.4vw, 13.5svh), 104px);--fan-overlap: clamp(30px, 4.2vw, 48px);--board-content-padding: clamp(14px, 2.2vmin, 24px)}*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{margin:0;min-width:320px;min-height:100svh;background:var(--ui-dark-bg)}#root{width:100%;height:100%;overflow:hidden}button{font:inherit}button:focus-visible,.card:focus-visible{outline:3px solid #ffffff;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;width:100vw;height:100svh;min-height:0;padding:0;overflow:hidden;background:radial-gradient(circle at 10% 12%,rgba(59,130,246,.15),transparent 28%),linear-gradient(140deg,#121923,#1a202c 52%,#232017)}.game-table{position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(44px,auto) minmax(148px,1.08fr) minmax(104px,.86fr) minmax(118px,.86fr);gap:0;width:100%;height:100%;min-width:0;min-height:0;margin:0 auto;padding:0;overflow:hidden;border:0;border-radius:0;background:linear-gradient(180deg,#070a0e42,#070a0e9e),url(background-OIh0pLkj.webp) center / cover no-repeat,var(--table-canvas);box-shadow:inset 0 0 0 1px #ffffff14,0 22px 70px #00000057}.app-shell-start{background:var(--ui-dark-bg)}.start-screen{position:relative;isolation:isolate;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(180deg,#070a0e2e,#070a0ec2),url(background-OIh0pLkj.webp) center / cover no-repeat,var(--table-canvas)}.start-screen:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;content:"";background:linear-gradient(180deg,#070a0e0a,#070a0e47);pointer-events:none}.start-content{position:relative;z-index:1;display:grid;justify-items:center;gap:18px;width:min(92vw,520px);min-width:0;padding:22px;color:#fff;text-align:center}.start-logo{position:relative;width:252px;height:188px;margin-bottom:2px}.start-logo-card{position:absolute;display:grid;place-items:center;width:92px;aspect-ratio:.68;border-radius:12px;color:#fff;box-shadow:inset 0 0 0 3px #fff,0 22px 42px #00000057}.start-logo-card>span:not(.wild-mark){display:grid;place-items:center;width:62%;aspect-ratio:1;color:inherit;font-size:2rem;font-weight:950;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 6px rgba(0,0,0,.26)}.start-logo-card-red{top:34px;left:8px;background:var(--color-red);transform:rotate(-15deg)}.start-logo-card-blue{top:4px;left:72px;background:var(--color-blue);transform:rotate(-4deg)}.start-logo-card-green{top:24px;right:58px;background:var(--color-green);transform:rotate(9deg)}.start-logo-card-wild{top:52px;right:8px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.18),transparent 36%),#101621;transform:rotate(18deg)}.start-logo-card-wild .wild-mark{width:58%;height:auto;aspect-ratio:1}.start-logo-skip-mark{background:#fff;mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3ccircle%20cx='256'%20cy='256'%20r='174'%20fill='none'%20stroke='%23000'%20stroke-width='76'/%3e%3cpath%20d='M134%20378%20378%20134'%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='76'/%3e%3c/svg%3e") center / contain no-repeat}.start-title{margin:0;font-size:4.25rem;line-height:.95;text-shadow:0 4px 28px rgba(0,0,0,.56)}.primary-button.start-button{min-width:158px;min-height:48px;padding:0 28px;font-size:1.05rem}.game-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;min-height:0;padding:14px var(--board-content-padding);border-radius:0;background:#232323}.game-header>div{min-width:0}.game-title-block{flex:1 1 auto}.label,.round-label{margin:0;color:#f8fafcbf;font-size:.78rem;font-weight:750;letter-spacing:0;text-transform:uppercase}h1{margin:0;color:#fff;font-size:1.5rem;font-weight:850;line-height:1.05;letter-spacing:0;text-shadow:0 2px 18px rgba(0,0,0,.5)}.scoreboard{display:flex;align-items:center;justify-content:center;flex:0 0 auto;gap:8px;min-width:0;margin:0;color:#fff}.scoreboard div{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:6px;min-width:66px;min-height:34px;padding:6px 10px;border-radius:6px;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1f}.scoreboard dt,.scoreboard dd{margin:0;line-height:1}.scoreboard dt{color:#f8fafcbd;font-size:.72rem;font-weight:800;text-transform:uppercase}.scoreboard dd{justify-self:end;color:#fff;font-size:1rem;font-weight:900;font-variant-numeric:tabular-nums}.ghost-button,.primary-button{min-height:42px;border:0;border-radius:8px;cursor:pointer;font-weight:850;letter-spacing:0;transition:transform .15s ease,opacity .15s ease,box-shadow .15s ease,background-color .15s ease}.ghost-button{flex:0 0 auto;padding:0 18px;color:#111827;background:#ffffffeb;box-shadow:inset 0 0 0 1px #ffffff57,0 8px 20px #0000002e}.sound-toggle-button{display:inline-flex;align-items:center;justify-content:center;width:42px;min-width:42px;padding-right:0;padding-left:0;color:#fff;background:#0f172ad1;box-shadow:inset 0 0 0 1px #fff3,0 8px 20px #00000029}.sound-toggle-icon{display:block;width:21px;height:21px;object-fit:contain;opacity:.96;filter:brightness(0) invert(1);pointer-events:none}.sound-toggle-button[aria-pressed=true]{background:#22c55ebd}.sound-toggle-button[aria-pressed=false]{background:#94a3b852}.button-label-short{display:none}.ghost-button:hover,.primary-button:hover{transform:translateY(-1px)}.message-area{display:flex;align-items:center;justify-content:center;width:auto;min-width:0;min-height:46px;margin:0;padding:8px 12px;border-radius:0;background:#0a0f166b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.message-text{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.45em;min-width:0;width:100%;margin:0;overflow:hidden;color:var(--text-light);font-size:1.125rem;font-weight:750;line-height:1.25;text-align:center;animation:message-fade-slide .18s ease-out both}.message-color-token{display:inline-flex;align-items:center;min-height:0;padding:0;color:currentColor;font-size:.94em;line-height:1;text-transform:lowercase;box-shadow:none}.text-color-red{color:var(--color-red)}.text-color-blue{color:var(--color-blue)}.text-color-green{color:var(--color-green)}.text-color-yellow{color:var(--color-yellow)}.bot-area,.player-area{display:grid;gap:8px;min-width:0;min-height:0;overflow:hidden}.bot-area{grid-template-rows:minmax(0,1fr);overflow:visible;padding-top:18px}.player-area{grid-template-rows:minmax(0,1fr)}.fan-hand{--fan-extra-overlap: 0px;--fan-effective-overlap: calc(var(--fan-overlap) + var(--fan-extra-overlap));display:flex;flex-wrap:nowrap;min-width:0;min-height:0;padding-right:max(18px,var(--fan-overlap));padding-left:max(18px,var(--fan-overlap));overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.32) transparent}.fan-hand::-webkit-scrollbar{height:8px}.fan-hand::-webkit-scrollbar-thumb{border-radius:999px;background:#ffffff47}.fan-hand-bot{align-items:flex-start;justify-content:center;padding-top:16px;padding-bottom:34px;overflow-x:hidden;overflow-y:visible}.fan-hand-player{align-items:center;justify-content:center;padding-top:20px;padding-bottom:clamp(18px,2.8svh,28px)}.fan-card{z-index:var(--fan-z);margin-right:calc(var(--fan-effective-overlap) * -.5);margin-left:calc(var(--fan-effective-overlap) * -.5);transform:translateY(var(--fan-lift)) rotate(var(--fan-angle))}.fan-hand-bot .fan-card{transform-origin:50% 0%}.fan-hand-player .fan-card{transform-origin:50% 100%}.center-area{--center-gap: clamp(18px, 6vw, 72px);position:relative;display:flex;align-items:center;justify-content:center;gap:var(--center-gap);min-width:0;min-height:0;overflow:hidden;padding-inline:var(--board-content-padding)}.pile{display:grid;align-content:center;justify-items:center;gap:0;min-width:0;color:#fff}.card{--fan-angle: 0deg;--fan-lift: 0px;--fan-z: 1;--card-main-color: #475569;position:relative;display:grid;place-items:center;flex:0 0 auto;width:var(--card-width);aspect-ratio:.68;border:0;border-radius:12px;color:#111827;background:var(--card-main-color);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;box-shadow:inset 0 0 0 3px #fff,0 14px 26px #0a0f163d;transition:filter .16s ease,opacity .16s ease,transform .16s ease,box-shadow .16s ease}button.card{cursor:pointer;touch-action:manipulation}.card:before{content:none}.card-color-red{--card-main-color: var(--color-red)}.card-color-blue{--card-main-color: var(--color-blue)}.card-color-green{--card-main-color: var(--color-green)}.card-color-yellow{--card-main-color: var(--color-yellow)}.card-color-wild{--card-main-color: #101621;color:#f8fafc;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.18),transparent 36%),#101621}.card-corner{position:absolute;z-index:2;display:grid;place-items:center;max-width:calc(100% - 16px);color:#fff;background:transparent;font-size:.82rem;font-weight:950;line-height:1;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6),0 0 5px rgba(0,0,0,.38)}.card-corner-top{top:7px;left:7px}.card-corner-bottom{right:7px;bottom:7px;transform:rotate(180deg)}.card-face{position:absolute;z-index:1;top:18%;right:15%;bottom:18%;left:15%;display:grid;place-items:center;border-radius:10px;color:#111827;background:#ffffffeb}.card-value-skip .card-face{background:#fffffff0;color:var(--card-main-color)}.card-symbol{color:var(--card-main-color);font-size:2.8rem;font-weight:950;line-height:1;text-shadow:0 1px 2px rgb(0,0,0),0 0 8px rgb(255,255,255)}.card-value-draw-two .card-symbol{font-size:2.3rem}.skip-mark{width:72%;aspect-ratio:1;background:currentColor;mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3ccircle%20cx='256'%20cy='256'%20r='174'%20fill='none'%20stroke='%23000'%20stroke-width='76'/%3e%3cpath%20d='M134%20378%20378%20134'%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='76'/%3e%3c/svg%3e") center / contain no-repeat;filter:drop-shadow(0 1px 0 rgba(15,23,42,.12))}.wild-mark{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);width:100%;height:100%;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:8px;box-shadow:0 0 0 3px #0f172acc}.wild-mark-cell{display:block}.card-value-wild .card-face{top:19%;right:18%;bottom:19%;left:18%;background:#0f172a}.active-color-dot{position:absolute;top:9px;right:9px;z-index:3;width:14px;aspect-ratio:1;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 2px #0f172a57}.card-back{color:transparent;background:url(card-back-DXJMZPEz.webp) center / cover no-repeat,#1f2937}.card-back:before{content:none}.card-back-shine{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,transparent 0 28%,rgba(255,255,255,.18) 42%,rgba(255,255,255,.06) 52%,transparent 68% 100%);mix-blend-mode:screen;pointer-events:none}.motion-card-deal,.motion-card-draw,.motion-draw-pile{will-change:opacity,transform}.fan-hand-bot .motion-card-deal{--motion-deal-y: -62px}.fan-hand-player .motion-card-deal{--motion-deal-y: 62px}.motion-card-deal{animation:card-deal-in .52s cubic-bezier(.18,.8,.22,1) both;animation-delay:var(--motion-delay)}.fan-hand-bot .motion-card-draw{--motion-draw-y: 104px;--motion-draw-x: 26px}.fan-hand-player .motion-card-draw{--motion-draw-y: -104px;--motion-draw-x: -26px}.motion-card-draw{z-index:calc(var(--fan-z) + 90);animation:card-draw-to-hand .43s cubic-bezier(.2,.72,.24,1) both}.player-hand .card.is-interactive.is-previewed,.player-hand .card.is-interactive:focus-visible{z-index:180;box-shadow:inset 0 0 0 3px #fff,0 0 0 4px #0f172a4d,0 24px 42px #0a0f166b;transform:translateY(calc(var(--fan-lift) - 5px)) rotate(var(--fan-angle)) scale(1.035)}@media(hover:hover)and (pointer:fine){.player-hand .card.is-interactive:hover{z-index:180;box-shadow:inset 0 0 0 3px #fff,0 0 0 4px #0f172a4d,0 24px 42px #0a0f166b;transform:translateY(calc(var(--fan-lift) - 5px)) rotate(var(--fan-angle)) scale(1.035)}}.card.is-disabled{cursor:default;filter:none;opacity:1}.card.is-selected{z-index:220;filter:none;opacity:1;outline:4px solid #ffffff;outline-offset:4px;box-shadow:inset 0 0 0 3px #ffffffe6,0 0 0 6px #0f172a6b,0 22px 40px #0a0f166b;transform:translateY(calc(var(--fan-lift) - 5px)) rotate(var(--fan-angle))}.card.is-motion-source-hidden{opacity:0;pointer-events:none}.motion-play-ghost{position:absolute;z-index:210;pointer-events:none;perspective:700px;transform-origin:50% 50%;will-change:transform,filter}.motion-play-ghost-player{animation:play-card-ghost-player .32s cubic-bezier(.2,.72,.24,1) both}.motion-play-ghost-bot{animation:play-card-ghost-bot .64s cubic-bezier(.2,.72,.24,1) both}.motion-play-ghost-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:bot-card-reveal .26s ease-out 80ms both}.motion-play-ghost-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden}.motion-play-ghost-front{transform:rotateY(180deg)}.motion-play-ghost .card{width:100%;height:100%;transform:none}.color-red{background-color:var(--color-red)}.color-blue{background-color:var(--color-blue)}.color-green{background-color:var(--color-green)}.color-yellow{background-color:var(--color-yellow)}.draw-pile-card{cursor:default}.draw-pile-card.is-drawable{cursor:pointer;box-shadow:inset 0 0 0 3px #ffffffdb,0 0 24px #eab3086b,0 18px 36px #0a0f165c}.draw-pile-card.is-drawable:hover{transform:translateY(-7px)}.draw-pile-card.motion-draw-pile{animation:draw-pile-pulse .36s ease-out both}.draw-pile-card:disabled{opacity:.62}.turn-actions{position:absolute;top:50%;left:calc(50% + var(--card-width) + 54px);z-index:20;display:grid;gap:8px;transform:translateY(-50%)}.turn-button{min-width:86px;min-height:38px;padding:0 14px;border:0;border-radius:8px;color:#111827;background:#ffffffeb;box-shadow:inset 0 0 0 1px #ffffff57,0 10px 22px #0a0f1638;cursor:pointer;font-size:.9rem;font-weight:850;letter-spacing:0;transition:opacity .15s ease,transform .15s ease,box-shadow .15s ease}.turn-button:disabled{cursor:default;opacity:.44}.turn-button:not(:disabled):hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #ffffff6b,0 14px 28px #0a0f164d}.wild-overlay,.game-over-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:220;display:grid;place-items:center;padding:18px}.overlay-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:#04080d94;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.wild-picker,.game-over-panel{position:relative;z-index:1}.game-over-motion{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden;pointer-events:none}.game-over-panel{z-index:2}.game-over-motion-win:before,.game-over-motion-win:after{position:absolute;top:50%;left:50%;width:min(92vmin,620px);aspect-ratio:1;content:"";border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.28) rotate(8deg);animation:victory-ray-flash 1.8s ease-out both}.game-over-motion-win:before{background:repeating-conic-gradient(from 8deg,rgba(34,197,94,.5) 0deg 8deg,transparent 8deg 20deg,rgba(234,179,8,.46) 20deg 28deg,transparent 28deg 42deg);-webkit-mask-image:radial-gradient(circle,transparent 0 26%,#000000 28% 49%,transparent 52%);mask-image:radial-gradient(circle,transparent 0 26%,#000000 28% 49%,transparent 52%)}.game-over-motion-win:after{width:min(76vmin,500px);background:repeating-conic-gradient(from -14deg,rgba(59,130,246,.42) 0deg 10deg,transparent 10deg 24deg,rgba(239,68,68,.4) 24deg 34deg,transparent 34deg 48deg);-webkit-mask-image:radial-gradient(circle,transparent 0 18%,#000000 20% 43%,transparent 46%);mask-image:radial-gradient(circle,transparent 0 18%,#000000 20% 43%,transparent 46%);animation-delay:90ms}.victory-burst{position:absolute;top:50%;left:50%;width:min(82vmin,560px);aspect-ratio:1;border:4px solid rgba(34,197,94,.86);border-radius:50%;opacity:0;box-shadow:0 0 34px #22c55e61,inset 0 0 36px #eab30838;transform:translate(-50%,-50%) scale(.2);animation:victory-burst-ring 1.68s cubic-bezier(.16,.78,.32,1) both}.victory-burst-secondary{width:min(94vmin,660px);border-color:#eab308d1;box-shadow:0 0 38px #eab3085c,inset 0 0 38px #3b82f633;animation-delay:.16s}.victory-confetti{position:absolute;top:50%;left:50%;width:clamp(8px,1.5vmin,12px);height:clamp(24px,4vmin,34px);border-radius:3px;background:var(--particle-color);box-shadow:0 0 16px color-mix(in srgb,var(--particle-color),transparent 24%),0 0 2px #ffffffd6;opacity:0;transform:translate(-50%,-50%) scale(.65) rotate(var(--particle-rotate));animation:victory-confetti-flight 2.1s var(--particle-delay) cubic-bezier(.18,.76,.24,1) both}.loss-ember{position:absolute;top:42%;left:50%;width:clamp(9px,1.6vmin,13px);height:clamp(30px,4.8vmin,44px);clip-path:polygon(46% 0,100% 36%,64% 100%,0 68%);background:linear-gradient(180deg,#fee2e2 0%,var(--color-red) 44%,#7f1d1d 100%);box-shadow:0 0 24px #ef44449e,0 0 4px #ffffffa3;opacity:0;transform:translate(-50%,-50%) scale(.82) rotate(var(--particle-rotate));animation:loss-ember-drift 2.4s var(--particle-delay) cubic-bezier(.2,.62,.28,1) both}.game-over-motion-loss:before,.game-over-motion-loss:after{position:absolute;top:50%;left:50%;content:"";opacity:0}.game-over-motion-loss:before{width:min(88vmin,540px);height:min(56vmin,340px);border-radius:50%;background:radial-gradient(circle,rgba(239,68,68,.34),transparent 68%);transform:translate(-50%,-50%) scale(.7);animation:loss-soft-pulse 1.8s ease-out both}.game-over-motion-loss:after{width:min(90vmin,620px);height:min(44vmin,300px);background:linear-gradient(110deg,transparent 0 18%,rgba(239,68,68,.34) 34%,rgba(254,202,202,.42) 50%,rgba(239,68,68,.3) 64%,transparent 82% 100%);filter:blur(1px);transform:translate(-68%,-50%) skew(-12deg);animation:loss-red-sweep 1.9s .12s ease-out both}.wild-picker-wheel{position:relative;display:grid;grid-template-columns:repeat(2,1fr);width:min(66vmin,300px);min-width:224px;aspect-ratio:1;overflow:hidden;border:5px solid rgba(255,255,255,.92);border-radius:50%;box-shadow:0 0 0 8px #0f172a61,0 28px 70px #0000006b;animation:overlay-pop .18s ease-out both}.wild-sector{min-width:0;min-height:0;border:0;cursor:pointer;transition:filter .15s ease}.wild-sector:hover,.wild-sector:focus-visible{z-index:2;filter:brightness(1.12) saturate(1.08)}.wild-sector:focus-visible{outline:4px solid #ffffff;outline-offset:-10px}.wild-picker-center{position:absolute;top:50%;left:50%;z-index:4;display:grid;place-items:center;width:42%;aspect-ratio:1;padding:10px;border:3px solid rgba(255,255,255,.88);border-radius:50%;color:#fff;background:#0f172af0;font-size:1rem;font-weight:850;line-height:1.15;text-align:center;pointer-events:none;transform:translate(-50%,-50%)}.game-over-panel{display:grid;justify-items:center;gap:16px;width:min(92vw,390px);padding:26px;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;background:#0c121ce6;box-shadow:inset 0 0 0 1px #ffffff14,0 28px 80px #00000075;text-align:center;animation:overlay-pop .18s ease-out both}.game-over-panel:before{width:52px;height:6px;content:"";border-radius:999px;background:var(--game-over-accent, var(--color-green));box-shadow:0 0 22px var(--game-over-accent, var(--color-green))}.game-over-win{--game-over-accent: var(--color-green)}.game-over-loss{--game-over-accent: var(--color-red)}.game-over-panel h2{margin:0;color:#fff;font-size:1.75rem;font-weight:900;line-height:1.1;letter-spacing:0}.round-score{margin:-4px 0 0;color:#f8fafcdb;font-size:1rem;font-weight:750;line-height:1.25}.scoreboard-overlay{gap:10px}.scoreboard-overlay div{min-width:84px;background:#ffffff1a}.primary-button{min-width:150px;padding:0 20px;color:#111827;background:#fff;box-shadow:inset 0 0 0 1px #ffffff61,0 12px 26px #00000047}@keyframes message-fade-slide{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes overlay-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes victory-ray-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.28) rotate(8deg)}18%{opacity:.68}72%{opacity:.3}to{opacity:0;transform:translate(-50%,-50%) scale(1.06) rotate(34deg)}}@keyframes victory-burst-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}18%{opacity:.9}70%{opacity:.34}to{opacity:0;transform:translate(-50%,-50%) scale(1.06)}}@keyframes victory-confetti-flight{0%{opacity:0;transform:translate(-50%,-50%) scale(.65) rotate(var(--particle-rotate))}14%{opacity:1}70%{opacity:.82}to{opacity:0;transform:translate(calc(-50% + clamp(-46vw,var(--particle-x),46vw)),calc(-50% + clamp(-34svh,var(--particle-y),34svh))) scale(.95) rotate(calc(var(--particle-rotate) + var(--particle-spin)))}}@keyframes loss-ember-drift{0%{opacity:0;transform:translate(-50%,-50%) scale(.82) rotate(var(--particle-rotate))}18%{opacity:.95}68%{opacity:.82}to{opacity:0;transform:translate(calc(-50% + clamp(-42vw,var(--particle-x),42vw)),calc(-50% + clamp(24px,var(--particle-y),34svh))) scale(.66) rotate(calc(var(--particle-rotate) + var(--particle-spin)))}}@keyframes loss-soft-pulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.78)}26%{opacity:.82}72%{opacity:.44}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@keyframes loss-red-sweep{0%{opacity:0;transform:translate(-76%,-50%) skew(-12deg)}20%{opacity:.86}72%{opacity:.36}to{opacity:0;transform:translate(-28%,-50%) skew(-12deg)}}@keyframes card-deal-in{0%{opacity:0;transform:translateY(calc(var(--fan-lift) + var(--motion-deal-y))) rotate(var(--fan-angle)) scale(.9)}70%{opacity:1}to{opacity:1;transform:translateY(var(--fan-lift)) rotate(var(--fan-angle)) scale(1)}}@keyframes card-draw-to-hand{0%{opacity:.24;filter:brightness(1.15);transform:translate3d(var(--motion-draw-x),calc(var(--fan-lift) + var(--motion-draw-y)),0) rotate(var(--fan-angle)) scale(.76)}68%{opacity:1;filter:brightness(1.08)}to{opacity:1;filter:brightness(1);transform:translateY(var(--fan-lift)) rotate(var(--fan-angle)) scale(1)}}@keyframes play-card-ghost-player{0%{filter:brightness(1.06);transform:translateZ(0) rotate(var(--ghost-rotate-from))}72%{filter:brightness(1.04)}to{filter:brightness(1);transform:translate3d(var(--ghost-x),var(--ghost-y),0) rotate(0)}}@keyframes play-card-ghost-bot{0%{filter:brightness(1.06);transform:translateZ(0) rotate(var(--ghost-rotate-from))}38%{filter:brightness(1.04);transform:translateZ(0) rotate(var(--ghost-rotate-from))}to{filter:brightness(1);transform:translate3d(var(--ghost-x),var(--ghost-y),0) rotate(0)}}@keyframes bot-card-reveal{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes draw-pile-pulse{0%{transform:translateY(0) scale(1)}42%{transform:translateY(-5px) scale(.97)}to{transform:translateY(0) scale(1)}}@supports (height: 100dvh){body{min-height:100dvh}.app-shell{height:100dvh}}@media(max-width:720px){:root{--card-width: clamp(76px, min(21vw, 12.5svh), 92px);--fan-overlap: clamp(46px, 13vw, 58px);--board-content-padding: 10px}.app-shell{padding:0}.start-content{gap:16px;width:100%;padding:16px}.start-logo{width:220px;height:164px}.start-logo-card{width:80px}.start-logo-card>span:not(.wild-mark){font-size:1.74rem}.start-logo-card-blue{left:62px}.start-logo-card-green{right:50px}.start-title{font-size:3.1rem}.game-table{grid-template-rows:auto minmax(40px,auto) minmax(148px,.94fr) minmax(88px,.72fr) minmax(118px,.94fr);gap:0;padding:0}.game-header{gap:10px;justify-content:flex-start;padding:12px var(--board-content-padding)}.game-title-block{flex:0 1 auto}h1{font-size:1.42rem}.scoreboard{gap:6px;margin-left:auto}.scoreboard div{min-width:54px;min-height:32px;padding:5px 8px}.scoreboard dt{font-size:.64rem}.scoreboard dd{font-size:.92rem}.ghost-button,.primary-button{min-height:38px;padding-right:12px;padding-left:12px}.ghost-button{min-width:58px}.sound-toggle-button{width:38px;min-width:38px;padding-right:0;padding-left:0}.sound-toggle-icon{width:19px;height:19px}.button-label-full{display:none}.button-label-short{display:inline}.message-area{min-height:40px;padding:7px 9px}.message-text{font-size:1rem}.round-label{font-size:.66rem}.round-score{font-size:.92rem}.center-area{gap:16px}.fan-hand{justify-content:flex-start;padding-right:22px;padding-left:22px}.fan-hand-bot{justify-content:center;padding-bottom:34px}.fan-hand-player{justify-content:center;padding-top:0;padding-bottom:24px}.card-corner{font-size:.68rem}.card-symbol{font-size:1.72rem}.card-value-draw-two .card-symbol{font-size:1.48rem}.wild-picker-wheel{min-width:214px}}@media(max-height:640px){:root{--card-width: clamp(70px, min(21vw, 12svh), 82px);--fan-overlap: clamp(44px, 12.5vw, 54px);--board-content-padding: 8px}.game-table{grid-template-rows:auto minmax(36px,auto) minmax(126px,.86fr) minmax(74px,.62fr) minmax(104px,.84fr);gap:0;padding:0}h1{margin-top:0;font-size:1.32rem}.start-content{gap:12px;padding:12px}.start-logo{width:190px;height:142px}.start-logo-card{width:70px}.start-logo-card>span:not(.wild-mark){font-size:1.5rem}.start-logo-card-red{top:26px;left:5px}.start-logo-card-blue{left:54px}.start-logo-card-green{top:18px;right:44px}.start-logo-card-wild{top:40px;right:5px}.start-title{font-size:2.65rem}.primary-button.start-button{min-height:42px}.message-area{min-height:36px;padding:6px 8px}.message-text{font-size:.96rem}.bot-area,.player-area{gap:5px}.fan-hand-player{padding-top:0;padding-bottom:14px}.fan-hand-bot{padding-bottom:28px}.pile{gap:5px}.card-corner-top{top:8px;left:8px}.card-corner-bottom{right:8px;bottom:8px}.card-face{top:25%;right:16%;bottom:25%;left:16%}.wild-picker-wheel{width:min(58vmin,238px);min-width:190px}.game-over-panel{gap:12px;padding:20px}.game-over-panel h2{font-size:1.45rem}}@media(max-width:430px){.game-header{align-items:flex-start;gap:8px}.scoreboard{gap:4px}.scoreboard div{grid-template-columns:1fr;justify-items:center;gap:3px;min-width:44px;padding:5px 6px}.scoreboard dd{justify-self:center}.turn-actions{top:auto;bottom:0;left:50%;transform:translate(-50%);grid-auto-flow:column}.turn-button:not(:disabled):hover{transform:translateY(-2px)}.ghost-button{flex:0 0 auto}.sound-toggle-button{width:38px;min-width:38px;padding-right:0;padding-left:0}.fan-hand-player{justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.game-over-motion{display:none}}
