:root{color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:linear-gradient(135deg,#fff9c4,#ffe0b2,#c8e6c9);color:#333;overflow-x:hidden}.shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;gap:1rem}.game-header{text-align:center}.game-header h1{margin:0;font-size:2.2rem;font-weight:800;background:linear-gradient(135deg,#f9a825,#e65100);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;text-shadow:none}.game-header .subtitle{margin:.25rem 0 0;color:#795548;font-size:.95rem}.game-info{display:flex;gap:1.5rem;align-items:center;justify-content:center;flex-wrap:wrap}.info-box{background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.08);padding:.5rem 1.2rem;border-radius:1rem;font-size:.9rem;font-weight:600;color:#4e342e;box-shadow:0 2px 8px #0000000f}.info-box .label{font-weight:400;font-size:.75rem;color:#8d6e63;text-transform:uppercase;letter-spacing:.08em}.goal-display{display:flex;gap:.75rem;align-items:center;justify-content:center;flex-wrap:wrap}.goal-item{background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.08);padding:.4rem .9rem;border-radius:1rem;font-size:.85rem;font-weight:600;color:#4e342e;display:flex;align-items:center;gap:.35rem;box-shadow:0 2px 8px #0000000f;transition:opacity .3s}.goal-item.completed{opacity:.5;text-decoration:line-through}.board-wrapper{position:relative}.board{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(0,0,0,.08);padding:6px;border-radius:1rem;box-shadow:0 8px 32px #0000001a;-webkit-user-select:none;user-select:none}.cell{width:52px;height:52px;border-radius:.6rem;display:flex;align-items:center;justify-content:center;font-size:1.8rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .2s ease;position:relative;background:#ffffffb3;border:2px solid transparent}.cell:hover{transform:scale(1.08);box-shadow:0 4px 12px #00000026;z-index:1}.cell.selected{border-color:#f57c00;box-shadow:0 0 0 3px #f57c004d,0 4px 12px #00000026;transform:scale(1.1);z-index:2;animation:pulse .8s ease-in-out infinite}.cell.matched{animation:matchPop .35s ease-out forwards}.cell.falling{animation:fallIn .3s ease-in forwards}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #f57c004d,0 4px 12px #00000026}50%{box-shadow:0 0 0 5px #f57c0080,0 4px 16px #0003}}@keyframes matchPop{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.8}to{transform:scale(0);opacity:0}}@keyframes fallIn{0%{transform:translateY(-60px);opacity:0}to{transform:translateY(0);opacity:1}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:10;animation:fadeIn .4s ease}.overlay h2{margin:0;font-size:1.8rem;color:#e65100}.overlay p{margin:0;color:#5d4037;font-size:1rem}.overlay button{padding:.7rem 2rem;border:none;border-radius:2rem;font-size:1rem;font-weight:700;cursor:pointer;background:linear-gradient(135deg,#f9a825,#e65100);color:#fff;box-shadow:0 4px 15px #e651004d;transition:transform .15s,box-shadow .15s}.overlay button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #e6510066}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.message-toast{position:fixed;top:1.5rem;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#f9a825,#e65100);color:#fff;padding:.6rem 1.5rem;border-radius:2rem;font-weight:700;font-size:1rem;box-shadow:0 4px 20px #e6510066;z-index:100;animation:toastIn .3s ease,toastOut .3s ease 1.2s forwards}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-20px)}}@media(max-width:500px){.cell{width:40px;height:40px;font-size:1.4rem;border-radius:.45rem}.board{gap:2px;padding:4px;border-radius:.75rem}.game-header h1{font-size:1.6rem}}
