*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;height:100dvh;overflow:hidden}
body{font-family:'Trebuchet MS','Lucida Grande',sans-serif;-webkit-user-select:none;user-select:none;position:fixed;width:100%;top:0;left:0}
input,button{font-family:inherit;-webkit-appearance:none}
input{-webkit-user-select:text;user-select:text}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:rgba(128,128,128,0.3);border-radius:2px}
.cube{display:flex;align-items:center;justify-content:center;font-weight:900;border-radius:8px;cursor:pointer;transition:background 0.15s, box-shadow 0.15s, border-color 0.15s;position:relative;touch-action:none}
.board-wrap{transition:transform 0.35s cubic-bezier(.4,0,.2,1)}
.wshake{animation:shk 0.3s}
@keyframes shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.wflash{animation:flash 0.5s}
@keyframes flash{0%{background:rgba(60,180,90,0.3)}100%{background:transparent}}
.pulse{animation:puls 0.6s ease-out infinite alternate}
@keyframes puls{0%{box-shadow:0 0 0 0 rgba(138,74,74,0.5)}100%{box-shadow:0 0 0 6px rgba(138,74,74,0)}}
.chal-dim{filter:blur(3px);opacity:0.5;pointer-events:none;transition:filter 0.25s ease, opacity 0.25s ease}
.chal-clear{transition:filter 0.25s ease, opacity 0.25s ease}
.pathPulse{animation:pp 0.9s ease-out}
@keyframes pp{0%{filter:drop-shadow(0 0 0 rgba(107,93,138,0))}50%{filter:drop-shadow(0 0 8px rgba(107,93,138,0.7))}100%{filter:drop-shadow(0 0 0 rgba(107,93,138,0))}}
