*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#1a1a2e;min-height:100vh;display:flex;justify-content:center;align-items:center;padding:5px;overflow:hidden}#app{position:relative;width:100%;max-width:100%;height:98vh;display:flex;flex-direction:column;gap:10px}.game-container{display:grid;grid-template-rows:minmax(min-content,1fr) auto minmax(min-content,1fr);align-items:center;flex:1 1 auto;min-height:0;width:100%}.top-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:4px 10px 0}.level-label{color:#f6b545;font-size:20px;font-weight:800;text-shadow:0 2px 0 #c27a0a,0 4px 10px rgba(0,0,0,.5)}.settings-button{display:flex;padding:6px;color:#a0aec0;background:none;border:none;cursor:pointer}.settings-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;display:flex;align-items:center;justify-content:center;background-color:#12122acc;animation:title-text-in .25s ease-out both}.settings-panel{display:flex;flex-direction:column;gap:14px;width:min(260px,80vw)}.settings-panel .game-over-button{width:100%}.settings-panel .settings-home{background:linear-gradient(160deg,#6a7a94,#4a5568 55%,#3d4757)}.grid-container{grid-row:2;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;min-height:0;width:100%;max-width:100%}.grid-container:before{display:none}.blocks-container{display:flex;flex-direction:row;gap:8px;padding:10px 0;background-color:transparent;border-radius:0;overflow-x:auto;overflow-y:hidden;grid-row:3;width:100%;z-index:10;justify-content:center;align-items:center;user-select:none;-webkit-user-select:none;position:relative;pointer-events:auto;touch-action:none;cursor:grab}.blocks-row{display:flex;gap:8px;height:100%;min-width:100%;width:max-content;align-items:center;justify-content:center}.blocks-container:active{cursor:grabbing}.blocks-container::-webkit-scrollbar{height:4px}.blocks-container::-webkit-scrollbar-track{background:#1a202c;border-radius:2px}.blocks-container::-webkit-scrollbar-thumb{background:#4a5568;border-radius:2px}button{font-family:inherit;z-index:10}@media (max-width: 600px){body{padding:2px}#app{height:99vh}.blocks-container{padding:8px;gap:6px}}@media (max-height: 500px) and (orientation: landscape){#app{height:95vh}.grid-container{flex:0 1 auto;max-height:70%}.blocks-container{max-height:100px}}.title-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:radial-gradient(ellipse at 50% 35%,#2a2a52,#1a1a2e 55%,#12122a)}.title-screen--leaving{animation:title-leave .4s ease-in forwards;pointer-events:none}@keyframes title-leave{to{opacity:0;transform:scale(1.08)}}.title-logo{display:grid;gap:6px;padding:10px;background-color:#2d3748;border-radius:14px;box-shadow:0 18px 40px #00000073;margin-bottom:12px;animation:title-logo-in .6s cubic-bezier(.2,1.4,.4,1) both}@keyframes title-logo-in{0%{opacity:0;transform:translateY(20px) scale(.85)}}.title-falling-piece{position:absolute;top:0;right:0;bottom:0;left:0;animation:title-piece-drop 2.6s ease-in-out infinite}@keyframes title-piece-drop{0%,15%{transform:translateY(-55%);filter:drop-shadow(0 14px 8px rgba(0,0,0,.5))}32%{transform:translateY(4%);filter:drop-shadow(0 0 0 rgba(0,0,0,0))}38%,75%{transform:translateY(0);filter:drop-shadow(0 0 0 rgba(0,0,0,0))}to{transform:translateY(-55%);filter:drop-shadow(0 14px 8px rgba(0,0,0,.5))}}.title-text{font-size:clamp(52px,17vw,88px);font-weight:900;letter-spacing:-.02em;line-height:1;animation:title-text-in .6s .15s ease-out both}@keyframes title-text-in{0%{opacity:0;transform:translateY(12px)}}.title-place{color:#f6b545;text-shadow:0 2px 0 #c27a0a,0 4px 0 #a5670a,0 10px 18px rgba(0,0,0,.5)}.title-it{color:#5dade2;text-shadow:0 2px 0 #2477ad,0 4px 0 #1d6592,0 10px 18px rgba(0,0,0,.5)}.game-over{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background-color:#12122abf;border-radius:8px;z-index:20;animation:title-text-in .4s ease-out both}.game-over-text{color:#f6b545;font-size:30px;font-weight:800;text-shadow:0 2px 0 #c27a0a,0 6px 14px rgba(0,0,0,.5)}.game-over-button{touch-action:manipulation;padding:12px 40px;font-size:20px;font-weight:700;color:#fff;background:linear-gradient(160deg,#5fd08f,#48bb78 55%,#3fa76b);border:none;border-radius:12px;cursor:pointer;box-shadow:inset 0 3px #ffffff59,inset 0 -4px #00000040,0 6px 16px #0006}.goals-bar{grid-row:1;padding:10px 0;display:flex;justify-content:center;gap:22px}.goal{display:flex;flex-direction:column;align-items:center;gap:6px}.goal-box{width:40px;height:40px}.goal-count{display:inline-block;color:#e2e8f0;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.goal--done .goal-box{opacity:.45}.goal--done .goal-count{color:#48bb78}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:3000}.journey-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1900;display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;background:radial-gradient(ellipse at 50% 30%,#2a2a52,#1a1a2e 55%,#12122a)}.journey-screen--leaving{animation:title-leave .4s ease-in forwards;pointer-events:none}.journey-heading{color:#f6b545;font-size:32px;font-weight:900;text-shadow:0 2px 0 #c27a0a,0 6px 14px rgba(0,0,0,.5)}.journey-path{position:relative;flex:1 1 auto;min-height:0;width:100%;max-width:420px}.journey-trail{position:absolute;top:0;right:0;bottom:0;left:0}.journey-trail path{fill:none;stroke:#ffffff2e;stroke-width:6;stroke-dasharray:2 12;stroke-linecap:round}.journey-node{position:absolute;width:54px;height:54px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:20px;font-weight:800}.journey-node--done{color:#fff;background:linear-gradient(160deg,#5fd08f,#3fa76b);box-shadow:inset 0 3px #ffffff4d,inset 0 -3px #00000040}.journey-node--current{cursor:pointer;color:#1a1a2e;background:linear-gradient(160deg,#ffd27a,#f6b545 55%,#d9951f);box-shadow:inset 0 3px #ffffff73,inset 0 -3px #0003,0 0 0 6px #f6b54540;animation:journey-pulse 1.6s ease-in-out infinite}@keyframes journey-pulse{50%{box-shadow:inset 0 3px #ffffff73,inset 0 -3px #0003,0 0 0 12px #f6b5451a}}.journey-node--locked{color:#718096;background:#2d3748;box-shadow:inset 0 3px 6px #0006}@keyframes blaster-shift{to{filter:hue-rotate(360deg)}}@keyframes blaster-throb{0%{transform:scale(.94)}to{transform:scale(1.04)}}
