*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;background:#1e1e24;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#fff}body{display:flex;flex-direction:column;align-items:center;justify-content:space-between}.game-header{width:100%;max-width:520px;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;z-index:5}.game-header a{color:#ffffffbf;text-decoration:none;font-size:13px;font-weight:700;display:flex;align-items:center;gap:4px}.game-header a:hover{color:#fff}.game-title{font-size:16px;font-weight:800;letter-spacing:1px;background:linear-gradient(135deg,#4a90d9,#fdd835);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-icon{background:#ffffff1a;border:none;border-radius:50%;width:32px;height:32px;font-size:15px;cursor:pointer;color:#fff;transition:background .15s}.btn-icon:hover{background:#fff3}.canvas-wrapper{flex:1;width:100%;max-width:520px;display:flex;align-items:center;justify-content:center;min-height:0;padding:6px}#gameCanvas{display:block;width:min(96vw,calc((100vh - 96px)*.8));height:min(120vw,calc(100vh - 96px));background:#fafafa;border-radius:8px;box-shadow:0 10px 40px #00000080;touch-action:none}.game-footer{width:100%;max-width:520px;padding:6px 14px 8px;display:flex;align-items:center;justify-content:center;background:#ffffff08;flex-shrink:0;z-index:5}.game-footer a{color:#ffffff8c;font-size:12px;text-decoration:none;font-weight:600}.game-footer a:hover{color:#ffffffd9}.how-to-play{position:fixed;inset:0;background:#000000d9;z-index:20;display:none;align-items:center;justify-content:center;padding:20px}.how-to-play.active{display:flex}.how-to-play-box{background:#1e1e24;border:2px solid rgba(255,255,255,.12);border-radius:16px;padding:22px 22px 18px;max-width:340px;width:100%;box-shadow:0 20px 50px #0009}.how-to-play-box h2{font-size:20px;font-weight:800;margin-bottom:14px;color:#4a90d9;letter-spacing:.5px}.how-to-play-box ol{padding-left:22px;line-height:1.7;font-size:14px;color:#ffffffe0}.how-to-play-box ol li{margin-bottom:6px}.how-to-play-box ol li b{color:#fdd835}.btn-close-htp{display:block;width:100%;margin-top:18px;padding:11px;background:linear-gradient(180deg,#5ba1e8,#4a90d9);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 3px #2e6bb8}.btn-close-htp:active{transform:translateY(2px);box-shadow:0 1px #2e6bb8}#levelSelect{position:fixed;inset:0;background:radial-gradient(ellipse at top,rgba(74,144,217,.12),transparent 60%),#14161ef7;display:none;flex-direction:column;align-items:center;justify-content:center;padding:20px;z-index:10;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes titleBounce{0%{transform:scale(.8) translateY(-8px);opacity:0}60%{transform:scale(1.05) translateY(0);opacity:1}to{transform:scale(1) translateY(0);opacity:1}}#levelSelect h1{color:#fff;font-size:32px;margin-bottom:4px;letter-spacing:2px;text-shadow:0 2px 12px rgba(74,144,217,.5);animation:titleBounce .5s cubic-bezier(.34,1.56,.64,1)}#levelSelect .sub{color:#889;font-size:13px;margin-bottom:22px;letter-spacing:.5px}#levelGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;width:min(95vw,400px)}.lvlBtn{aspect-ratio:1 / 1;background:linear-gradient(180deg,#5ba1e8,#4a90d9);color:#fff;border:none;border-radius:12px;font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;box-shadow:0 4px #2e6bb8,0 6px 12px #0000004d;transition:transform .08s,box-shadow .08s;position:relative}.lvlBtn:active{transform:translateY(3px);box-shadow:0 1px #2e6bb8,0 2px 4px #0000004d}.lvlBtn.cleared{background:linear-gradient(180deg,#5dc97a,#4caf50);box-shadow:0 4px #2e7d32,0 6px 12px #0000004d}.lvlBtn.cleared:active{box-shadow:0 1px #2e7d32,0 2px 4px #0000004d}.lvlBtn.locked{background:linear-gradient(180deg,#555,#3a3a3a);color:#777;box-shadow:0 4px #222,0 6px 12px #0000004d;cursor:not-allowed}.lvlBtn .n{font-size:20px;line-height:1;font-weight:700}.lvlBtn .best{font-size:10px;opacity:.9;margin-top:3px;font-weight:400}.lvlBtn .lock{font-size:14px;margin-top:3px}.lvlBtn .check{position:absolute;top:3px;right:5px;font-size:11px;color:#fff;opacity:.9}
