: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:2rem}.puzzle-container{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.title{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{margin:0;color:#ffffff80;font-size:.9rem}.stats{display:flex;gap:2.5rem}.stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.stat-label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:#fff6}.stat-value{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums;color:#fafafa}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:min(380px,90vw);aspect-ratio:1;padding:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:1rem}.tile{display:flex;align-items:center;justify-content:center;border:none;border-radius:.6rem;font-size:1.4rem;font-weight:700;cursor:pointer;background:#ffffff14;color:#fafafa;transition:background .12s,transform .12s;user-select:none;-webkit-user-select:none;font-variant-numeric:tabular-nums}.tile:hover:not(:disabled){background:#ffffff24;transform:scale(1.04)}.tile:active:not(:disabled){transform:scale(.97)}.tile-empty{background:transparent;cursor:default}.tile-won{background:#60a5fa2e;color:#60a5fa}.win-banner{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);border-radius:.5rem;font-size:.9rem;color:#93c5fd;animation:pop .3s ease-out}.win-icon{font-size:1.2rem}@keyframes pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.restart-btn{margin-top:.25rem;padding:.55rem 1.6rem;border:1px solid rgba(255,255,255,.12);border-radius:.5rem;background:#ffffff0d;color:#ffffffbf;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.restart-btn:hover{background:#ffffff1a;color:#fafafa}
