body[data-variant=canasta]{min-height:100vh;background-color:#0d2818;background-image:url(/assets/felt-green-CieYw_4d.webp);background-repeat:repeat;background-size:400px 400px;color:#fff8e8}body[data-variant=canasta] .page__content{max-width:1360px;margin:0 auto;padding:116px 18px 36px}.canasta-game{min-height:calc(100vh - 148px);display:grid;grid-template-rows:auto 1fr auto auto;gap:14px}.canasta-scorebar{display:flex;justify-content:center;gap:clamp(14px,3vw,36px);flex-wrap:wrap;color:#fff;font-size:clamp(1rem,1.7vw,1.25rem);text-shadow:0 2px 4px rgba(0,0,0,.65)}.canasta-scorebar strong{color:#ffd56d}.canasta-table{min-height:560px;display:grid;grid-template-rows:1fr auto 1fr;gap:14px;align-items:stretch}.canasta-zone{min-height:182px;display:grid;gap:12px;align-content:center}.canasta-zone--opponent{grid-template-rows:auto 1fr}.canasta-zone--player{grid-template-rows:1fr auto}.canasta-hand,.canasta-melds{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;min-height:88px}.canasta-hand{min-height:124px}.canasta-meld{display:flex;align-items:center;gap:3px;padding:4px 8px;background:transparent;box-shadow:inset 0 0 0 1px #ffe09429;border-radius:8px}.canasta-meld__label{min-width:54px;color:#ffe2a0;font-weight:800;text-align:center}.canasta-center{display:flex;justify-content:center;align-items:center;gap:clamp(18px,5vw,48px)}.canasta-stock,.canasta-discard,.canasta-controls button{appearance:none;border:0;background:transparent;color:#fff8e8;font:inherit;font-weight:800;cursor:pointer;text-shadow:0 2px 4px rgba(0,0,0,.72)}.canasta-stock,.canasta-discard{min-width:118px;display:grid;justify-items:center;gap:7px}.canasta-stock:disabled,.canasta-discard:disabled,.canasta-controls button:disabled{opacity:.45;cursor:not-allowed}.canasta-stock__card,.canasta-discard__pile{width:clamp(72px,8vw,94px);aspect-ratio:5 / 7;display:grid;place-items:center;border-radius:7px;background-size:cover;background-position:center;box-shadow:0 12px 24px #0000006b;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.canasta-stock__card.is-empty{background:transparent;color:#ffe2a0;font-weight:900;box-shadow:inset 0 0 0 1px #ffe0943d}.canasta-card{width:clamp(58px,6.4vw,82px);aspect-ratio:5 / 7;border:0;border-radius:7px;background:transparent center / cover no-repeat;box-shadow:0 8px 18px #0000005c;cursor:pointer;transition:transform .14s ease,filter .14s ease,box-shadow .14s ease}.canasta-card:hover:not(:disabled),.canasta-card.is-selected,.canasta-card.is-hinted{transform:translateY(-10px);filter:brightness(1.07);box-shadow:0 16px 28px #00000080,0 0 0 3px #ffd56d}.canasta-stock.is-hinted .canasta-stock__card,.canasta-discard.is-hinted .canasta-discard__pile,.canasta-card.is-hinted{animation:canastaHintPulse .9s ease-in-out infinite alternate;box-shadow:0 16px 30px #00000085,0 0 0 4px #ffd56d}.canasta-flight-card{position:fixed;z-index:10002;pointer-events:none;margin:0}.canasta-card:disabled{cursor:default}.canasta-card--small{width:clamp(38px,4.4vw,56px);cursor:default}.canasta-card--joker{background:linear-gradient(135deg,#fffdf4,#f2e3ba);color:#53250f;display:grid;place-items:center;font-size:.86rem;font-weight:900;letter-spacing:0}.canasta-card--placeholder{color:#ffe2a0;background:transparent;box-shadow:inset 0 0 0 1px #ffe0943d}.canasta-controls{display:flex;justify-content:center;gap:clamp(14px,3vw,34px);flex-wrap:wrap;padding:4px 0 0}.canasta-controls button{padding:6px 2px;color:#ffe2a0}.canasta-controls button:hover:not(:disabled),.canasta-stock:hover:not(:disabled),.canasta-discard:hover:not(:disabled){color:#fff}.canasta-message{min-height:30px;margin:0;text-align:center;color:#fff;font-size:clamp(1rem,1.6vw,1.2rem);font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.74)}.canasta-particle{width:7px;height:7px;border-radius:999px;background:#ffd56d;pointer-events:none}@keyframes canastaHintPulse{0%{filter:brightness(1.02);transform:translateY(0)}to{filter:brightness(1.16);transform:translateY(-7px)}}.canasta-guide{margin-top:36px}body[data-variant=canasta] .page__footer{margin-top:0}@media(max-width:720px){body[data-variant=canasta] .page__content{padding:98px 10px 24px}.canasta-game{min-height:auto}.canasta-table{min-height:500px;gap:10px}.canasta-hand,.canasta-melds{gap:5px}.canasta-card{width:clamp(44px,12.8vw,64px)}.canasta-card--small{width:clamp(30px,8.6vw,44px)}}
