*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f0f2f5;--card-bg: #ffffff;--text: #1a1a2e;--text-dim: #666;--cell-bg: #ffffff;--cell-border: #d0d5dd;--cell-crossed-bg: #e8eaed;--cell-crossed-text: #bbb;--accent: #e94560;--accent-hover: #c81e45;--secondary-bg: #f0f2f5;--secondary-border: #d0d5dd;--overlay-bg: rgba(0, 0, 0, .5);--shadow: rgba(0, 0, 0, .08);--title-gradient: linear-gradient(135deg, #e94560, #6c5ce7)}html{overflow-y:scroll;overscroll-behavior:none}body{font-family:SF Pro Display,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;overscroll-behavior:none;transition:background .3s,color .3s}.app{display:flex;flex-direction:column;align-items:center;padding:.75rem;padding:.75rem env(safe-area-inset-right) .75rem env(safe-area-inset-left);min-height:100vh;min-height:100dvh;max-width:500px;margin:0 auto;width:100%;touch-action:manipulation}.header{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;margin-bottom:.25rem;width:100%;justify-content:center}h1{font-size:1.4rem;font-weight:800;background:var(--title-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.icon-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem;border-radius:6px;transition:background .15s;-webkit-tap-highlight-color:transparent}.icon-btn:active{background:var(--secondary-bg)}.user-btn{font-weight:700;font-size:.85rem;width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border-radius:50%}.stage-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;width:100%;padding:.25rem}.stage-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .25rem;border-radius:10px;border:2px solid var(--secondary-border);background:var(--card-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s;min-height:56px;gap:2px}.stage-btn .stage-num{font-size:1rem;font-weight:700;color:var(--text)}.stage-btn .stage-stars{font-size:.55rem;line-height:1}.stage-btn .stage-lock{font-size:.7rem;opacity:.5}.stage-btn.completed{border-color:var(--accent);background:var(--card-bg)}.stage-btn.completed .stage-num{color:var(--accent)}.stage-btn.current{border-color:var(--accent);background:var(--accent);animation:stage-pulse 2s ease-in-out infinite}.stage-btn.current .stage-num{color:#fff}@keyframes stage-pulse{0%,to{box-shadow:0 0 #e945604d}50%{box-shadow:0 0 0 6px #e9456000}}.stage-btn.locked{opacity:.4;cursor:default}.stage-btn.locked .stage-num{color:var(--text-dim)}.stage-header{margin-bottom:.25rem}.stage-label{font-size:.85rem;font-weight:700;color:var(--accent);background:var(--secondary-bg);padding:.25rem .75rem;border-radius:20px;border:1px solid var(--secondary-border)}.scores{display:flex;gap:1rem;font-size:.85rem;margin-bottom:.5rem;align-items:center}.score{color:#d4880f;font-weight:700}.streak{color:#ff6b6b;font-weight:800;font-size:1rem;animation:streak-pulse .4s ease}@keyframes streak-pulse{0%{transform:scale(1.4)}to{transform:scale(1)}}.grid{display:grid;grid-template-columns:repeat(9,1fr);gap:2px;width:100%;touch-action:manipulation;padding:2px;background:var(--text-dim);border-radius:8px;border:2px solid var(--text-dim)}.cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:clamp(1.2rem,5.5vw,1.8rem);font-weight:700;background:var(--cell-bg);color:var(--text);border:none;border-radius:4px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;touch-action:manipulation;transition:transform .15s,background .15s,opacity .15s}.cell:active:not(.crossed-out){transform:scale(.93)}.cell.hint{background:#ffd93d;color:#1a1a2e;animation:hint-pulse .5s ease-in-out 2;box-shadow:0 0 8px #ffd93d80}@keyframes hint-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.cell.selected{background:var(--accent);color:#fff;transform:scale(1.05);box-shadow:0 0 12px #e9456066}.cell.invalid{animation:shake .3s ease;background:#f24;color:#fff}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.cell.cross-anim{animation:cross-out .25s ease forwards}@keyframes cross-out{0%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}to{transform:scale(0);opacity:0}}.cell.crossed-out{opacity:.15;cursor:default;background:var(--cell-crossed-bg);color:var(--cell-crossed-text);transform:scale(.6)}.cell.row-clearing{animation:row-clear .35s ease forwards}@keyframes row-clear{0%{transform:scale(.6);opacity:.15;background:var(--cell-crossed-bg)}40%{transform:scale(1.1);opacity:.8;background:#ffd93d}to{transform:scale(0);opacity:0;background:#ff6b6b}}.status{margin-top:.5rem;font-size:.85rem;color:var(--text-dim);text-align:center}.prompt{color:var(--accent);font-weight:600;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.controls{margin-top:.6rem;display:grid;grid-template-columns:1fr 1fr;gap:.4rem;width:100%}.controls .btn:first-child{grid-column:1 / -1}.btn{padding:.65rem .75rem;font-size:.85rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .15s,transform .1s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:hover{background:var(--accent-hover)}.btn-secondary{background:var(--secondary-bg);color:var(--text);border:1px solid var(--secondary-border)}.btn-secondary:hover{background:var(--cell-border)}@media(hover:none){.btn:hover{background:var(--accent)}.btn-secondary:hover{background:var(--secondary-bg)}.btn:active{background:var(--accent-hover)}.btn-secondary:active{background:var(--cell-border)}}.btn:disabled{opacity:.4;cursor:default}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:10;padding:1rem;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.overlay-content{background:var(--card-bg);padding:2rem;border-radius:16px;text-align:center;display:flex;flex-direction:column;gap:.75rem;max-width:90vw;box-shadow:0 12px 40px var(--shadow);animation:pop-in .3s cubic-bezier(.34,1.56,.64,1)}@keyframes pop-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.overlay-content h2{font-size:1.5rem;color:var(--text)}.overlay-content p{color:var(--text-dim)}.win-emoji{font-size:3rem;animation:bounce .6s ease infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.win-content h2{background:linear-gradient(135deg,#ffd93d,#ff6b6b,#6c5ce7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:2rem}.gameover-content h2{color:var(--accent)}.final-score{color:#d4880f;font-size:1.25rem;font-weight:700}.streak-bonus{color:#ff6b6b;font-weight:600}.star-display{font-size:2rem;display:flex;justify-content:center;gap:.25rem}.star-icon{transition:transform .3s}.star-icon.earned{animation:star-earn .4s ease}@keyframes star-earn{0%{transform:scale(0)}60%{transform:scale(1.3)}to{transform:scale(1)}}.win-buttons{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.tutorial{text-align:left;max-width:360px}.tutorial h2{text-align:center;margin-bottom:.25rem}.tutorial-rules{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;line-height:1.4}.tutorial .btn{align-self:center;margin-top:.25rem}.theme-picker{max-width:320px;width:100%}.theme-stars-count{font-size:.9rem;color:var(--text-dim)}.theme-list{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0}.theme-option{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;border-radius:10px;border:2px solid var(--secondary-border);background:var(--secondary-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s}.theme-option.active{border-color:var(--accent)}.theme-option.locked{opacity:.5;cursor:default}.theme-emoji{font-size:1.3rem}.theme-name{font-weight:600;font-size:.9rem;color:var(--text);flex:1;text-align:left}.theme-req{font-size:.75rem;color:var(--text-dim)}.theme-check{color:var(--accent);font-weight:700;font-size:1.1rem}.combo-popup{position:fixed;top:30%;left:50%;transform:translate(-50%);font-size:1.5rem;font-weight:800;color:#ffd93d;text-shadow:0 2px 8px rgba(0,0,0,.3);z-index:20;pointer-events:none;animation:combo-anim .9s ease forwards}@keyframes combo-anim{0%{opacity:0;transform:translate(-50%) scale(.5) translateY(0)}20%{opacity:1;transform:translate(-50%) scale(1.2) translateY(-5px)}50%{opacity:1;transform:translate(-50%) scale(1) translateY(-15px)}to{opacity:0;transform:translate(-50%) scale(.8) translateY(-40px)}}.particle{position:fixed;border-radius:50%;pointer-events:none;z-index:100;transform:translate(-50%,-50%);animation:explode .4s ease-out forwards}@keyframes explode{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.1)}}@media(max-width:374px){.cell{font-size:.95rem;border-radius:2px}.grid{gap:2px;padding:2px}h1{font-size:1.2rem}.btn{padding:.55rem .5rem;font-size:.8rem}.stage-grid{grid-template-columns:repeat(5,1fr);gap:.3rem}}
