:root{color-scheme:dark;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;--cell-size: 52px;--gap: 4px;--board-size: calc(var(--cell-size) * 8 + var(--gap) * 7)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:#0f0f1a;color:#fafafa}.game-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem;background:radial-gradient(ellipse at 50% 0%,rgba(120,60,200,.15) 0%,transparent 60%),#0f0f1a;transition:background .5s ease}.game-shell.frenzy{background:radial-gradient(ellipse at 50% 50%,rgba(255,60,100,.2) 0%,transparent 50%),radial-gradient(ellipse at 50% 0%,rgba(120,60,200,.25) 0%,transparent 60%),#1a0a1a}.game-header{width:100%;max-width:480px;margin-bottom:1rem}.title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.game-title{font-size:1.6rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,#ff6b9d,#c44dff,#6bafff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.level-badge{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;background:#c44dff33;color:#d580ff;padding:.3rem .75rem;border-radius:999px;border:1px solid rgba(196,77,255,.3)}.stats-row{display:flex;gap:1rem;margin-bottom:.75rem}.stat{flex:1;display:flex;flex-direction:column;align-items:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:.5rem;padding:.5rem .25rem}.stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:#ffffff73;margin-bottom:.15rem}.stat-value{font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-value.danger{color:#ff4d6a;animation:pulse-danger .8s ease-in-out infinite}.combo-text{color:#ffd166}.progress-bar-container{position:relative;height:22px;background:#ffffff0f;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.progress-bar{height:100%;background:linear-gradient(90deg,#c44dff,#ff6b9d,#ffd166);border-radius:999px;transition:width .5s cubic-bezier(.22,1,.36,1);box-shadow:0 0 12px #c44dff66}.progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;letter-spacing:.05em;text-shadow:0 1px 3px rgba(0,0,0,.7)}.board-wrapper{position:relative;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:1rem;box-shadow:0 0 40px #783cc81a,inset 0 0 30px #0003;margin-bottom:1rem}.board-wrapper.shake{animation:board-shake .3s ease-out}.board{display:grid;grid-template-columns:repeat(8,var(--cell-size));grid-template-rows:repeat(8,var(--cell-size));gap:var(--gap);-webkit-user-select:none;user-select:none}.cell{width:var(--cell-size);height:var(--cell-size);border:none;border-radius:.5rem;background:#ffffff0d;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;position:relative;outline:none;font-size:1.6rem;-webkit-tap-highlight-color:transparent}.cell:hover:not(:disabled){background:#ffffff1a;transform:scale(1.05)}.cell:active:not(:disabled){transform:scale(.92)}.cell.selected{background:#c44dff40;box-shadow:0 0 0 2px #c44dff,0 0 16px #c44dff66;animation:selected-pulse 1s ease-in-out infinite}.cell.matched{animation:match-pop .35s ease-out forwards}.cell.hint{animation:hint-glow 1.2s ease-in-out infinite}.cell.empty{background:#0003;cursor:default}.cell:disabled{cursor:not-allowed}.candy{display:flex;align-items:center;justify-content:center;transition:transform .15s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.cell:hover .candy{transform:scale(1.1) rotate(5deg)}.particle{position:absolute;pointer-events:none;z-index:10;filter:drop-shadow(0 0 6px rgba(255,255,255,.3));will-change:transform,opacity}.combo-popup{display:flex;flex-direction:column;align-items:center;margin-bottom:.75rem;animation:combo-in .4s cubic-bezier(.175,.885,.32,1.275)}.combo-number{font-size:1.8rem;font-weight:900;letter-spacing:-.03em;background:linear-gradient(135deg,#ffd166,#ff6b9d,#c44dff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;filter:drop-shadow(0 0 8px rgba(255,109,157,.5))}.frenzy-label{font-size:.75rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#ff4d6a;animation:frenzy-flash .5s ease-in-out infinite alternate}.level-up-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .3s ease}.level-up-content{text-align:center;animation:level-up-bounce .6s cubic-bezier(.175,.885,.32,1.275)}.level-up-star{font-size:4rem;display:block;margin-bottom:.5rem;animation:spin 1s ease-in-out}.level-up-content h2{font-size:2.5rem;font-weight:900;background:linear-gradient(135deg,#ffd166,#ff6b9d);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.25rem}.level-up-content p{font-size:1.2rem;color:#ffffffb3}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .3s ease}.game-over-content{text-align:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:1rem;padding:2.5rem;max-width:320px;animation:level-up-bounce .6s cubic-bezier(.175,.885,.32,1.275)}.game-over-content h2{font-size:2rem;font-weight:900;color:#ff4d6a;margin-bottom:1rem}.game-over-content p{color:#ffffffb3;margin-bottom:.5rem;font-size:1rem}.btn-play{margin-top:1.5rem;padding:.75rem 2rem;font-size:1rem;font-weight:700;border:none;border-radius:999px;background:linear-gradient(135deg,#c44dff,#ff6b9d);color:#fff;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn-play:hover{transform:scale(1.05);box-shadow:0 0 20px #c44dff80}.controls{display:flex;gap:.75rem;margin-bottom:1rem}.btn-hint,.btn-reset{padding:.5rem 1rem;font-size:.8rem;font-weight:600;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0d;color:#ffffffb3;cursor:pointer;transition:all .15s}.btn-hint:hover:not(:disabled),.btn-reset:hover{background:#ffffff1a;color:#fff}.btn-hint:disabled{opacity:.4;cursor:not-allowed}.instructions{text-align:center;max-width:400px}.instructions p{font-size:.78rem;color:#ffffff59;margin-bottom:.25rem}@keyframes selected-pulse{0%,to{box-shadow:0 0 0 2px #c44dff,0 0 16px #c44dff66}50%{box-shadow:0 0 0 3px #c44dff,0 0 24px #c44dff99}}@keyframes match-pop{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.8}to{transform:scale(0);opacity:0}}@keyframes hint-glow{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 12px 2px #ffd16680}}@keyframes combo-in{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes board-shake{0%,to{transform:translate(0)}25%{transform:translate(calc(var(--shake) * -1),calc(var(--shake) * .5))}50%{transform:translate(var(--shake),calc(var(--shake) * -.5))}75%{transform:translate(calc(var(--shake) * -.5),var(--shake))}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes level-up-bounce{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-danger{0%,to{color:#ff4d6a}50%{color:#ff8095}}@keyframes frenzy-flash{0%{opacity:.6}to{opacity:1}}@media(max-width:480px){:root{--cell-size: 42px}.game-title{font-size:1.3rem}.stat-value{font-size:1.1rem}.combo-number{font-size:1.4rem}}
