:root{--bg:#0f1117;--bg-card:#1a1d27;--bg-elevated:#242836;--text:#e8eaef;--text-muted:#8b92a8;--accent:#6c8cff;--accent-hover:#8aa4ff;--success:#3ecf8e;--danger:#e74c6a;--warning:#f5c542;--border:#2e3345;--cell-empty:#1e2230;--cell-obstacle:#3a3f52;--radius:12px;--shadow:0 8px 32px #0006;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(ellipse at 20% 0%, #6c8cff1f, transparent 50%), radial-gradient(ellipse at 80% 100%, #3ecf8e14, transparent 50%), var(--bg);min-height:100vh}#root{min-height:100vh}.app{flex-direction:column;align-items:center;min-height:100vh;padding:1rem;display:flex}.screen{width:100%;max-width:720px;animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.menu-screen{padding:2rem 0}.menu-header{text-align:center;margin-bottom:2.5rem}.menu-title{letter-spacing:.15em;background:linear-gradient(135deg, var(--accent), var(--success));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,6vw,3rem);font-weight:800}.menu-subtitle{color:var(--text-muted);margin-top:.5rem;font-size:1.1rem}.game-list{flex-direction:column;gap:.75rem;display:flex}.game-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--text);grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:.25rem 1rem;padding:1rem 1.25rem;transition:border-color .2s,transform .2s,box-shadow .2s;display:grid}.game-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.game-icon{grid-row:1/3;align-self:center;font-size:1.75rem}.game-icon.large{text-align:center;margin-bottom:.5rem;font-size:3rem;display:block}.game-name{font-size:1.1rem;font-weight:600}.game-desc{color:var(--text-muted);grid-column:2;font-size:.85rem}.difficulty-screen{padding:1.5rem 0}.difficulty-header{text-align:center;margin-bottom:2rem}.difficulty-header h2{margin-bottom:.25rem;font-size:1.5rem}.difficulty-header p{color:var(--text-muted)}.difficulty-buttons{flex-direction:column;gap:.75rem;display:flex}.btn-difficulty{border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;padding:1.25rem;font-size:1.1rem;font-weight:600;transition:all .2s;display:flex}.btn-difficulty--easy{border-color:#3ecf8e44}.btn-difficulty--easy:hover{background:#3ecf8e15;border-color:#3ecf8e}.btn-difficulty--normal{border-color:#6c8cff44}.btn-difficulty--normal:hover{background:#6c8cff15;border-color:#6c8cff}.btn-difficulty--hard{border-color:#e74c6a44}.btn-difficulty--hard:hover{background:#e74c6a15;border-color:#e74c6a}.diff-best{color:var(--text-muted);font-size:.85rem;font-weight:400}.btn-primary,.btn-secondary,.btn-back,.btn-icon{cursor:pointer;border:none;font-family:inherit;transition:all .2s}.btn-primary{background:var(--accent);color:#fff;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);background:0 0;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text)}.btn-back{color:var(--text-muted);background:0 0;margin-bottom:1rem;padding:.5rem 0;font-size:.95rem}.btn-back:hover{color:var(--text)}.btn-icon{background:var(--bg-elevated);color:var(--text);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:flex}.btn-icon:hover{background:var(--border)}.game-header{margin-bottom:1rem}.game-header-top{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.game-header-title{font-size:1.1rem;font-weight:600}.game-header-stats{color:var(--text-muted);flex-wrap:wrap;gap:.75rem;font-size:.85rem;display:flex}.stat--urgent{color:var(--danger);font-weight:600}.game-screen{width:100%;max-width:560px;margin:0 auto}.tutorial-overlay{z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.tutorial-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-width:420px;box-shadow:var(--shadow);padding:1.5rem}.tutorial-card h3{margin-bottom:1rem;font-size:1.25rem}.tutorial-steps{color:var(--text-muted);margin:0 0 1.5rem 1.25rem}.tutorial-steps li{margin-bottom:.5rem}.result-screen{justify-content:center;align-items:center;min-height:80vh;display:flex}.result-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:100%;max-width:400px;box-shadow:var(--shadow);padding:2rem}.result-card--win{border-color:#3ecf8e55}.result-card--lose{border-color:#e74c6a55}.result-icon{margin-bottom:.5rem;font-size:3rem;display:block}.result-game{color:var(--text-muted);margin:.5rem 0 1rem}.result-score{margin:1rem 0}.score-value{color:var(--accent);font-size:3rem;font-weight:800}.score-label{color:var(--text-muted);font-size:.9rem;display:block}.result-stats{text-align:left;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.5rem 0;font-size:.9rem;display:grid}.result-stats dt{color:var(--text-muted);font-size:.8rem}.result-stats dd{font-weight:600}.result-actions{flex-direction:column;gap:.5rem;display:flex}.palette-target{text-align:center;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.95rem;display:flex}.color-swatch{vertical-align:middle;border-radius:4px;width:20px;height:20px;display:inline-block}.palette-board{aspect-ratio:1;gap:3px;margin-bottom:1.5rem;display:grid}.palette-cell{border:2px solid #0000;border-radius:4px;transition:transform .15s}.palette-cell--owned{border-color:#fff;box-shadow:0 0 8px #fff6}.palette-cell--pulse{animation:.45s palettePulse}@keyframes palettePulse{0%{transform:scale(1)}40%{transform:scale(1.08);box-shadow:0 0 16px #ffffffb3}to{transform:scale(1)}}.palette-colors{justify-content:center;gap:.75rem;display:flex}.palette-color-btn{border:3px solid var(--border);cursor:pointer;border-radius:50%;width:48px;height:48px;transition:transform .15s,border-color .15s}.palette-color-btn:hover{border-color:#fff;transform:scale(1.1)}.signal-grid{aspect-ratio:1;background:var(--border);border-radius:var(--radius);touch-action:none;-webkit-user-select:none;user-select:none;gap:2px;display:grid;overflow:hidden}.signal-cell{aspect-ratio:1;cursor:crosshair;justify-content:center;align-items:center;display:flex}.signal-node{background:#ffffff59;border:2px solid #fff9;border-radius:50%;width:60%;height:60%;animation:2s ease-in-out infinite nodePulse}.signal-cell--path{animation:.2s pathDraw}@keyframes nodePulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes pathDraw{0%{opacity:.5;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.signal-win-hint{animation:.3s fadeIn}.signal-hint-btn{width:fit-content;margin:0 auto .75rem;display:block}.signal-cell--target-ep{box-shadow:inset 0 0 0 2px #fff9}.signal-cell--hint-endpoint{animation:1s ease-in-out infinite hintEndpointPulse;box-shadow:inset 0 0 0 3px #ffffffd9}.signal-cell--hint{box-shadow:inset 0 0 0 3px var(--hint-color,var(--warning));animation:1.4s ease-in-out infinite hintCellPulse;position:relative}.signal-cell--hint:after{content:"";background:color-mix(in srgb, var(--hint-color,var(--warning)) 45%, transparent);border:2px dashed color-mix(in srgb, var(--hint-color,var(--warning)) 85%, white);pointer-events:none;border-radius:4px;position:absolute;inset:18%}.signal-hint-label{max-width:520px;margin-left:auto;margin-right:auto}@keyframes hintCellPulse{0%,to{filter:brightness()}50%{filter:brightness(1.25)}}@keyframes hintEndpointPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.game-hint{text-align:center;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.9rem}.game-hint--bonus{color:var(--success);background:#3ecf8e12;border-color:#3ecf8e44}.game-hint--success{color:var(--success);border-color:#3ecf8e55}.game-hint--action{color:var(--warning);border-color:#f5c54244;animation:2s ease-in-out infinite hintBounce}.game-hint--warn{color:var(--danger);border-color:#e74c6a44}@keyframes hintBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.matrix-board{aspect-ratio:1;background:var(--border);border-radius:var(--radius);gap:2px;margin-bottom:1rem;display:grid;overflow:hidden}.matrix-cell{aspect-ratio:1;background:var(--cell-empty);cursor:pointer;border:none;transition:opacity .15s}.matrix-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:.75rem;font-size:.8rem;display:flex}.matrix-legend-item{align-items:center;gap:.35rem;display:flex}.matrix-legend-target{border:2px solid var(--warning);background:#f5c54233;border-radius:3px;width:16px;height:16px;animation:1.5s ease-in-out infinite targetPulse;display:inline-block}.matrix-legend-preview{border:2px dashed var(--accent);background:#6c8cff44;border-radius:3px;width:16px;height:16px;display:inline-block}@keyframes targetPulse{0%,to{box-shadow:0 0 #f5c54266}50%{box-shadow:0 0 8px 2px #f5c54280}}.matrix-cell{justify-content:center;align-items:center;display:flex;position:relative}.matrix-cell--target{box-shadow:inset 0 0 0 2px var(--warning);background:#3a3520;animation:2s ease-in-out infinite targetPulse}.matrix-cell--target-covered{box-shadow:none;animation:none}.matrix-cell--placed{animation:.3s piecePlace}.matrix-target-icon{opacity:.9;pointer-events:none;font-size:.85rem}.matrix-cell--preview-ok{box-shadow:inset 0 0 0 2px var(--accent);background:#6c8cff55!important}.matrix-cell--preview-bad{box-shadow:inset 0 0 0 2px var(--danger);background:#e74c6a44!important}@keyframes piecePlace{0%{opacity:.5;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.matrix-preview--animated{animation:.2s fadeIn}.matrix-pieces{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.matrix-piece-btn{background:var(--bg-card);border:2px solid var(--border);cursor:pointer;border-radius:8px;padding:.5rem}.matrix-piece-btn--selected{border-color:var(--accent)}.matrix-rotate-btn{padding:.5rem 1rem;font-size:.9rem}.matrix-preview{text-align:center;color:var(--text-muted);justify-content:center;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.9rem;display:flex}.mini-piece{gap:1px;display:grid}.mini-piece-cell{border-radius:2px;width:12px;height:12px}.breach-screen{max-width:520px}.breach-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;padding:1rem}.breach-panel--animated{border-color:#56cfe144}.breach-panel-title{color:#56cfe1;margin-bottom:.75rem;font-size:.95rem}.breach-flow{background:var(--bg-elevated);border-left:3px solid var(--border);animation:.4s backwards flowSlideIn;animation-delay:var(--flow-delay,0s);border-radius:8px;margin-bottom:.5rem;padding:.75rem}.breach-flow--done{border-left-color:var(--success);background:#3ecf8e10}@keyframes flowSlideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.breach-flow-viewport{border:1px solid var(--border);background:#060810;border-radius:6px;min-height:2.6rem;margin-bottom:.35rem;padding-left:52px;position:relative;overflow:hidden}.breach-flow-scanner{z-index:3;pointer-events:none;background:linear-gradient(90deg,#56cfe118,#0000);border-right:2px solid #56cfe1;justify-content:center;align-items:center;width:52px;display:flex;position:absolute;top:0;bottom:0;left:0}.breach-flow-scanner-label{letter-spacing:.08em;color:#56cfe1;writing-mode:vertical-rl;font-size:.55rem;font-weight:800;transform:rotate(180deg)}.breach-flow-cover{z-index:1;border-right:2px solid var(--success);pointer-events:none;background:linear-gradient(90deg,#3ecf8e28,#3ecf8e08);transition:width .35s;position:absolute;top:0;bottom:0;left:52px}.breach-flow-track{z-index:2;flex-wrap:nowrap;align-items:center;gap:.15rem;margin-bottom:0;padding:.35rem .5rem .35rem 0;display:flex;position:relative}.breach-flow-track--sliding{will-change:transform;transition:transform .35s}.breach-flow-segments{gap:4px;margin-bottom:.5rem;padding:0 .25rem;display:flex}.breach-flow-segment{background:var(--bg-card);border:1px solid var(--border);border-radius:2px;flex:1;height:5px;transition:background .35s,box-shadow .35s}.breach-flow-segment--filled{background:linear-gradient(90deg, var(--success), #56cfe1);border-color:var(--success);box-shadow:0 0 6px #3ecf8e44}.breach-flow-step{align-items:center;display:flex}.breach-flow-node{border:2px solid var(--border);color:var(--node-color);animation:.35s backwards nodeAppear;animation-delay:var(--step-delay,0s);background:#0a0c12;border-radius:6px;padding:.35rem .65rem;font-family:Consolas,monospace;font-size:.9rem;font-weight:800;position:relative}.breach-flow-node--matched{border-color:var(--success);background:#3ecf8e18;box-shadow:0 0 10px #3ecf8e33}.breach-flow-node--next{border-color:var(--warning);animation:1s ease-in-out infinite nodePulseNext}@keyframes nodeAppear{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes nodePulseNext{0%,to{box-shadow:0 0 #f5c54266}50%{box-shadow:0 0 12px 3px #f5c54280}}.breach-flow-check{background:var(--success);color:#000;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:.65rem;display:flex;position:absolute;top:-6px;right:-6px}.breach-flow-connector{align-items:center;width:28px;margin:0 2px;display:flex;position:relative}.breach-flow-connector-line{background:var(--border);flex:1;height:2px}.breach-flow-connector--active .breach-flow-connector-line{background:linear-gradient(90deg, var(--success), #56cfe1);animation:1.2s linear infinite connectorFlow}.breach-flow-connector--active .breach-flow-connector-arrow{color:var(--success);animation:1.2s linear infinite arrowMove}@keyframes connectorFlow{0%{background-position:0%}to{background-position:200%}}@keyframes arrowMove{0%,to{opacity:.5;transform:translate(0)}50%{opacity:1;transform:translate(4px)}}.breach-flow-connector-arrow{color:var(--text-muted);margin-left:2px;font-size:.7rem}.breach-flow-progress-bar{background:var(--bg-card);border-radius:3px;height:6px;position:relative;overflow:hidden}.breach-flow-progress-bar span{color:var(--text-muted);font-size:.75rem;position:absolute;top:-18px;right:0}.breach-flow-progress-fill{background:linear-gradient(90deg, #56cfe1, var(--success));border-radius:3px;height:100%;transition:width .4s}.breach-flow-done{color:var(--success);font-size:.8rem;animation:.3s fadeIn}.breach-buffer-flow{flex-wrap:wrap;align-items:center;gap:.15rem;display:flex}.breach-buffer-slot-wrap{align-items:center;display:flex}.breach-buffer-arrow{color:var(--text-muted);opacity:.3;margin:0 .15rem;font-size:.85rem;transition:all .3s}.breach-buffer-arrow--active{opacity:1;color:#56cfe1;animation:1s linear infinite arrowMove}.breach-code--useful{box-shadow:0 0 10px #f5c54255}.breach-matrix-wrap{position:relative}.breach-path-svg{pointer-events:none;z-index:2;width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;inset:4px}.breach-path-line--glow{opacity:.35;filter:blur(2px)}.breach-path-line--dash{animation:1.5s linear infinite pathDash}@keyframes pathDash{to{stroke-dashoffset:-10px}}.breach-path-dot{fill:#56cfe1;animation:1s ease-in-out infinite pathDotPulse}@keyframes pathDotPulse{0%,to{r:1.5;opacity:.7}50%{r:2.2;opacity:1}}.breach-sequences h4{margin-bottom:.5rem;font-size:.9rem}.breach-seq{background:var(--bg-elevated);border-left:3px solid var(--border);border-radius:6px;margin-bottom:.4rem;padding:.5rem .65rem;font-family:Consolas,Courier New,monospace;font-size:.95rem;transition:all .3s}.breach-seq--done{border-left-color:var(--success);background:#3ecf8e15}.breach-seq-codes{margin-bottom:.25rem}.breach-seq-code--matched{text-underline-offset:3px;text-decoration:underline}.breach-seq-status{font-size:.8rem}.breach-progress-badge{color:var(--warning)}.breach-code-index{color:var(--text-muted);font-size:.6rem;line-height:1;display:block}.breach-cell--on-path{background:#6c8cff22;border-color:#6c8cff66}.breach-path-step{color:var(--accent);font-size:.6rem;font-weight:700;position:absolute;top:2px;left:4px}.breach-legend-dot--path{background:#6c8cff44;border:1px solid #6c8cff}.breach-seq-code{font-weight:700}.breach-arrow{color:var(--text-muted);font-weight:400}.breach-done-badge{color:var(--success);font-size:.8rem}.breach-next-code{text-align:center;background:#ffe66d15;border:1px solid #ffe66d44;border-radius:6px;margin-top:.75rem;padding:.5rem;font-size:.9rem}.breach-next-code span{font-family:Consolas,monospace;font-size:1.1rem;font-weight:800}.breach-buffer--enhanced{border-radius:var(--radius);background:#0a0c12;border:1px solid #56cfe144;margin-bottom:.75rem;padding:.75rem}.breach-buffer-label{color:#56cfe1;letter-spacing:.1em;margin-bottom:.5rem;font-family:Consolas,monospace;font-size:.75rem;display:block}.breach-buffer-codes{flex-wrap:wrap;gap:.4rem;display:flex}.breach-code{background:var(--bg-elevated);border:2px solid var(--border);text-align:center;min-width:44px;color:var(--text-muted);border-radius:6px;padding:.4rem .6rem;font-family:Consolas,monospace;font-weight:700;transition:all .2s}.breach-code--filled{background:#0f111788}.breach-code--pop{animation:.35s codePop}@keyframes codePop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.breach-hint{color:#56cfe1;text-align:center;background:#56cfe112;border:1px solid #56cfe133;border-radius:8px;margin-bottom:.75rem;padding:.5rem;font-size:.9rem}.breach-hint--animated{animation:2s ease-in-out infinite hintGlow}@keyframes hintGlow{0%,to{border-color:#56cfe133}50%{border-color:#56cfe188}}.breach-matrix--enhanced{border-radius:var(--radius);background:#0a0c12;border:1px solid #56cfe133;gap:3px;padding:4px;display:grid}.breach-cell{background:var(--bg-card);border:2px solid var(--border);cursor:default;border-radius:4px;padding:.65rem .2rem;font-family:Consolas,monospace;font-size:clamp(.8rem,3vw,1rem);transition:all .2s;position:relative;overflow:visible}.breach-cell-code{font-weight:800}.breach-cell--active-line{background:#56cfe10a;box-shadow:inset 0 0 0 1px #56cfe144}.breach-cell--selectable{cursor:pointer;background:#6c8cff18;border-color:#6c8cff;animation:1.2s ease-in-out infinite selectablePulse}.breach-cell--selectable:hover{z-index:1;background:#6c8cff35;transform:scale(1.05)}.breach-cell--matches-next{border-color:var(--warning);box-shadow:0 0 10px #f5c54255}.breach-cell--selected{background:var(--accent);border-color:#fff}.breach-cell--selected .breach-cell-code{color:#fff!important}.breach-cell--just-picked{animation:.4s breachPick}@keyframes selectablePulse{0%,to{box-shadow:0 0 #6c8cff4d}50%{box-shadow:0 0 8px 2px #6c8cff66}}@keyframes breachPick{0%{transform:scale(1)}30%{background:#fff;transform:scale(1.2)}to{transform:scale(1)}}.breach-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.75rem;font-size:.75rem;display:flex}.breach-legend-dot{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:.25rem;display:inline-block}.breach-legend-dot--line{background:#56cfe144;border:1px solid #56cfe1}.breach-legend-dot--select{background:#6c8cff44;border:1px solid #6c8cff}.breach-legend-dot--next{border:1px solid var(--warning);background:#f5c54244}.cube-board-wrapper{margin-bottom:1rem;position:relative}.cube-board{aspect-ratio:1;background:var(--border);border-radius:var(--radius);gap:2px;display:grid;overflow:hidden}.cube-block{z-index:2;pointer-events:none;padding:2px;position:absolute}.cube-block-inner{width:100%;height:100%;transform-style:preserve-3d;background:linear-gradient(145deg,#6c8cff,#a78bfa);border:2px solid #fff6;border-radius:6px;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 12px #6c8cff80,inset 0 -4px #00000040}.cube-block--standing .cube-block-inner{background:linear-gradient(160deg,#7a9cff,#b89cfa);box-shadow:0 6px 14px #6c8cff8c,inset 0 -5px #0000004d}.cube-block-glyph{color:#ffffffeb;text-shadow:0 1px 3px #00000073;font-size:1.1rem}.cube-orientation-badge{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;display:flex}.cube-tumble--fall-h-right .cube-block-inner{animation:.3s tumbleFallHRight}.cube-tumble--fall-h-left .cube-block-inner{animation:.3s tumbleFallHLeft}.cube-tumble--fall-v-up .cube-block-inner{animation:.3s tumbleFallVUp}.cube-tumble--fall-v-down .cube-block-inner{animation:.3s tumbleFallVDown}.cube-tumble--rise-h-left .cube-block-inner{animation:.3s tumbleRiseHLeft}.cube-tumble--rise-h-right .cube-block-inner{animation:.3s tumbleRiseHRight}.cube-tumble--rise-v-up .cube-block-inner{animation:.3s tumbleRiseVUp}.cube-tumble--rise-v-down .cube-block-inner{animation:.3s tumbleRiseVDown}.cube-tumble--roll-up .cube-block-inner{animation:.28s tumbleRollUp}.cube-tumble--roll-down .cube-block-inner{animation:.28s tumbleRollDown}.cube-tumble--roll-left .cube-block-inner{animation:.28s tumbleRollLeft}.cube-tumble--roll-right .cube-block-inner{animation:.28s tumbleRollRight}@keyframes tumbleFallHRight{0%{transform:perspective(280px)rotateY(0)}50%{transform:perspective(280px)rotateY(75deg)scaleX(1.15)}to{transform:perspective(280px)rotateY(0)}}@keyframes tumbleFallHLeft{0%{transform:perspective(280px)rotateY(0)}50%{transform:perspective(280px)rotateY(-75deg)scaleX(1.15)}to{transform:perspective(280px)rotateY(0)}}@keyframes tumbleFallVUp{0%{transform:perspective(280px)rotateX(0)}50%{transform:perspective(280px)rotateX(-75deg)scaleY(1.15)}to{transform:perspective(280px)rotateX(0)}}@keyframes tumbleFallVDown{0%{transform:perspective(280px)rotateX(0)}50%{transform:perspective(280px)rotateX(75deg)scaleY(1.15)}to{transform:perspective(280px)rotateX(0)}}@keyframes tumbleRiseHLeft{0%{transform:perspective(280px)rotateY(0)scaleX(1.05)}50%{transform:perspective(280px)rotateY(60deg)scaleX(.85)}to{transform:perspective(280px)rotateY(0)}}@keyframes tumbleRiseHRight{0%{transform:perspective(280px)rotateY(0)scaleX(1.05)}50%{transform:perspective(280px)rotateY(-60deg)scaleX(.85)}to{transform:perspective(280px)rotateY(0)}}@keyframes tumbleRiseVUp{0%{transform:perspective(280px)rotateX(0)scaleY(1.05)}50%{transform:perspective(280px)rotateX(-60deg)scaleY(.85)}to{transform:perspective(280px)rotateX(0)}}@keyframes tumbleRiseVDown{0%{transform:perspective(280px)rotateX(0)scaleY(1.05)}50%{transform:perspective(280px)rotateX(60deg)scaleY(.85)}to{transform:perspective(280px)rotateX(0)}}@keyframes tumbleRollUp{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes tumbleRollDown{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes tumbleRollLeft{0%,to{transform:translate(0)}50%{transform:translate(-4px)}}@keyframes tumbleRollRight{0%,to{transform:translate(0)}50%{transform:translate(4px)}}.cube-block-orient{color:#ffffffe6;text-shadow:0 1px 3px #00000080;font-size:1.25rem}.cube-orientation-badge{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.5rem;padding:.4rem .75rem;font-size:.9rem}.cube-feedback{animation:.2s fadeIn}.cube-btn:disabled{opacity:.4;cursor:not-allowed}.cube-cell{aspect-ratio:1}.cube-cell--empty{background:var(--cell-empty)}.cube-cell--wall{background:#4a5068}.cube-cell--hole{background:#0a0c12;box-shadow:inset 0 0 8px #000}.cube-cell--goal{box-shadow:inset 0 0 0 2px var(--success);background:#3ecf8e33}.cube-cell--breakable{background:#f5c54244}.cube-cell--laser{background:#e74c6a33;animation:1.5s infinite laserPulse;box-shadow:inset 0 0 8px #e74c6a55}@keyframes laserPulse{0%,to{opacity:1}50%{opacity:.6}}.cube-cell--block{background:linear-gradient(135deg,#6c8cff,#a78bfa);box-shadow:inset 0 -3px #0000004d}.cube-controls{flex-direction:column;align-items:center;gap:.35rem;display:flex}.cube-controls-row{gap:.35rem;display:flex}.cube-btn{background:var(--bg-card);border:2px solid var(--border);width:52px;height:52px;color:var(--text);cursor:pointer;border-radius:10px;font-size:1.25rem;transition:all .15s}.cube-btn:hover{border-color:var(--accent);background:#6c8cff15}.cube-btn:active{transform:scale(.95)}@media (width<=480px){.app{padding:.5rem}.game-card{padding:.85rem 1rem}.palette-color-btn{width:42px;height:42px}.result-stats{grid-template-columns:1fr}}@media (width>=768px){.game-screen{max-width:600px}}
