*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;touch-action:manipulation;-webkit-touch-callout:none}.card{aspect-ratio:4 / 5;border-radius:.75rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;position:relative;font-size:2rem;line-height:1}.card.clickable{background:white;box-shadow:0 2px 8px #0000001f}.card.clickable:hover{transform:scale(1.05);box-shadow:0 4px 12px #0003}.card.clickable:active{transform:scale(.95)}.card.disabled{background:#c084fc;box-shadow:0 2px 8px #00000026;cursor:default}.card.empty-slot{background:rgba(167,139,250,.2);border:2px dashed #c4b5fd;color:#a78bfa;font-size:1.5rem;cursor:default}.card.filled-slot{background:white;box-shadow:0 2px 8px #00000026;animation:card-to-slot .3s ease-out}@keyframes card-to-slot{0%{transform:scale(.8) translateY(-10px);opacity:.5}to{transform:scale(1) translateY(0);opacity:1}}.card.slot-card{aspect-ratio:4 / 5;width:56px;border-radius:.75rem;background:white;box-shadow:0 2px 8px #0000001f;display:flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;animation:card-to-slot .3s ease-out}#gameBoard{max-width:100%}.slot{width:56px;aspect-ratio:4 / 5;border-radius:.75rem;display:flex;align-items:center;justify-content:center}.slot.empty{background:rgba(167,139,250,.15);border:2px dashed #c4b5fd}.slot .card-slot{width:52px;aspect-ratio:4 / 5;border-radius:.75rem;background:white;box-shadow:0 2px 8px #00000026;display:flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;animation:card-to-slot .3s ease-out}#comboBanner{position:fixed;top:70px;left:50%;transform:translate(-50%);background:rgba(239,68,68,.95);color:#fff;padding:6px 20px;border-radius:20px;font-size:14px;font-weight:700;z-index:50;box-shadow:0 4px 12px #0000004d;display:none;white-space:nowrap}#comboBanner.active{display:block;animation:combo-pulse .5s ease-in-out infinite}@keyframes combo-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.05)}}#floatingContainer{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:200}.floating-text{position:absolute;font-size:1.5rem;font-weight:700;color:#fbbf24;text-shadow:0 2px 4px rgba(0,0,0,.3);animation:float-up 1s ease-out forwards;pointer-events:none}@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-60px) scale(1.3)}}button:active{transform:scale(.95)}button:disabled{opacity:.4;cursor:not-allowed}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:none;justify-content:center;align-items:center;z-index:100}.overlay.active{display:flex}.modal{background:white;border-radius:1.5rem;padding:2rem;text-align:center;max-width:90%;width:360px;box-shadow:0 20px 60px #0000004d;animation:modal-pop .3s ease-out;max-height:90vh;overflow-y:auto}@keyframes modal-pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.leaderboard-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-radius:.75rem;margin-bottom:.5rem;gap:.5rem}.leaderboard-item.top-1{background:rgba(253,224,71,.3)}.leaderboard-item.top-2{background:rgba(156,163,175,.3)}.leaderboard-item.top-3{background:rgba(249,115,22,.2)}.leaderboard-item.default{background:#f3f4f6}.victory-emoji{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.victory-emoji span{font-size:2.5rem;animation:bounce-in .6s ease-out}.victory-emoji span:nth-child(1){animation-delay:0ms}.victory-emoji span:nth-child(2){animation-delay:.1s}.victory-emoji span:nth-child(3){animation-delay:.2s}@keyframes bounce-in{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}.grade-row{display:flex;justify-content:center;gap:.5rem;margin-top:.5rem;margin-bottom:.5rem}.grade-row span{font-size:1.5rem}@media (max-width: 400px){.card{font-size:1.5rem}.slot{width:48px}.slot .card-slot{width:44px;font-size:1.5rem}}@media (max-width: 320px){.card{font-size:1.25rem}.slot{width:42px}.slot .card-slot{width:38px;font-size:1.25rem}}@media (min-width: 768px){#gameBoard{max-width:min(420px,85vw);margin:0 auto}.card{font-size:clamp(1rem,8vw,1.5rem);width:clamp(40px,12vw,55px)}.slot{width:clamp(40px,12vw,52px)}.slot .card-slot{width:clamp(36px,11vw,48px);font-size:clamp(1rem,8vw,1.25rem)}}@media (min-width: 1024px){#gameBoard{max-width:min(500px,90vw)}.card{font-size:clamp(1.25rem,10vw,1.75rem);width:clamp(50px,14vw,65px)}.slot{width:clamp(48px,14vw,60px)}.slot .card-slot{width:clamp(44px,13vw,56px);font-size:clamp(1.25rem,10vw,1.5rem)}}
