:root{color-scheme:dark;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:#0a0a0a;color:#fafafa}.shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.game-container{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.game-header{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:center}h1{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#f97316,#a855f7,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.score-display{display:flex;flex-direction:column;align-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:.5rem;padding:.25rem 1rem}.score-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:#ffffff73}.score-value{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;color:#eab308}.reset-btn{background:#ffffff0f;color:#ffffffb3;border:1px solid rgba(255,255,255,.12);border-radius:.5rem;padding:.4rem .9rem;font-size:.8rem;cursor:pointer;transition:all .2s;font-family:inherit}.reset-btn:hover{background:#ffffff1a;color:#fafafa;border-color:#ffffff40}.board{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:.75rem;padding:6px;width:min(90vw,440px);aspect-ratio:1}.cell{display:flex;align-items:center;justify-content:center;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:.4rem;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;padding:0;position:relative;aspect-ratio:1}.cell:hover{background:#ffffff14;border-color:#ffffff26}.cell.selected{background:#ffffff1f;border-color:var(--gem-color, #fff);box-shadow:0 0 12px color-mix(in srgb,var(--gem-color, #fff) 40%,transparent);transform:scale(1.06);z-index:1}.cell.matched{animation:pop .4s ease-out forwards}.cell.swapping{animation:wiggle .25s ease-in-out}@keyframes pop{0%{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.6}to{transform:scale(.5);opacity:0}}@keyframes wiggle{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.gem{font-size:clamp(1rem,5vw,1.8rem);line-height:1;-webkit-user-select:none;user-select:none;transition:transform .2s}.cell:active .gem{transform:scale(.85)}.hint{margin:0;color:#ffffff59;font-size:.8rem;text-align:center}
