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:1280px;margin:0 auto;padding:18px 16px 32px}.canasta-game{display:grid;grid-template-rows:auto 1fr auto auto;gap:10px}.canasta-scorebar{display:flex;justify-content:center;gap:clamp(12px,2.4vw,28px);flex-wrap:wrap;color:#fff;font-size:clamp(.95rem,1.35vw,1.12rem);text-shadow:0 2px 4px rgba(0,0,0,.65)}.canasta-scorebar strong{color:#ffd56d}.canasta-table{min-height:clamp(300px,calc(100svh - 430px),380px);display:grid;grid-template-rows:1fr auto 1fr;gap:10px;align-items:stretch}.canasta-zone{min-height:108px;display:grid;gap:8px;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:6px;min-height:70px}.canasta-hand{min-height:88px}.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(16px,4vw,38px)}.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(64px,6.6vw,80px);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(50px,5.2vw,70px);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(-7px);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(34px,3.6vw,48px);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(12px,2.2vw,26px);flex-wrap:wrap;padding:2px 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-helper{width:min(880px,100%);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:6px 10px;border-radius:8px;background:#2b190cb8;box-shadow:inset 0 0 0 1px #ffe09438,0 10px 22px #00000038;color:#fff8e8}.canasta-helper strong,.canasta-helper span,.canasta-helper small{display:block}.canasta-helper strong{margin-bottom:1px;color:#ffd56d;font-size:.86rem}.canasta-helper span{color:#fff8e8;font-size:.86rem;line-height:1.18}.canasta-helper small{flex:0 0 auto;max-width:330px;color:#fff8e8c7;font-size:.76rem;line-height:1.18;text-align:right}.canasta-helper[data-state=ready]{background:#2b4010c7;box-shadow:inset 0 0 0 1px #b2e25e73,0 10px 22px #00000038}.canasta-helper[data-state=warn]{background:#523012c7;box-shadow:inset 0 0 0 1px #ffbc5c61,0 10px 22px #00000038}.canasta-message{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.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:50px 8px 24px}.canasta-game{min-height:auto}.canasta-table{min-height:284px;gap:8px}.canasta-zone{min-height:96px}.canasta-hand{min-height:80px}.canasta-hand,.canasta-melds{gap:5px}.canasta-card{width:clamp(38px,10.8vw,52px)}.canasta-card--small{width:clamp(28px,8vw,40px)}.canasta-helper{display:grid;gap:4px;padding:6px 9px}.canasta-helper small{max-width:none;text-align:left}}
