:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:fit-content}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.tile{display:flex;align-items:center;justify-content:center;border-radius:8px;border:2px solid #8B4513;background:linear-gradient(145deg,#deb887,peru);box-shadow:4px 4px 8px #0000004d,inset 2px 2px 4px #ffffff4d,inset -2px -2px 4px #0000001a;transition:all .2s ease;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;pointer-events:auto}.tile-empty{background:transparent;border:none;box-shadow:none;cursor:default;pointer-events:none}.tile-clickable:hover{transform:translateY(-3px);box-shadow:6px 6px 12px #0006,inset 2px 2px 4px #fff6,inset -2px -2px 4px #0000001a;border-color:#4caf50}.tile-clickable:active{transform:translateY(-1px);box-shadow:3px 3px 6px #0000004d,inset 2px 2px 4px #fff3,inset -2px -2px 4px #0003}.tile-blocked{cursor:not-allowed;filter:grayscale(.5) brightness(.7);opacity:.6;pointer-events:none}.tile-layer-0{z-index:30}.tile-layer-1{z-index:20}.tile-layer-2{z-index:10}.tile-emoji{font-size:1.5em;line-height:1}@media (max-width: 768px){.tile-emoji{font-size:1.2em}}.game-board{position:relative;display:inline-block;margin:10px auto;background:#ffffff1a;border-radius:15px;border:2px solid rgba(255,255,255,.2);max-width:95vw;box-sizing:border-box;flex-shrink:0;overflow:visible}.board-layer{transition:all .2s ease}.board-row{display:flex;gap:3px;margin-bottom:3px;pointer-events:none}.board-row:last-child{margin-bottom:0}@media (max-width: 768px){.game-board{padding:12px;margin:8px auto;max-width:95vw}.board-layer{top:12px;left:12px}.layer-1{transform:translate(5px,5px)}.layer-2{transform:translate(10px,10px)}.board-row{gap:2px;margin-bottom:2px}}@media (max-width: 480px){.game-board{padding:8px;margin:5px auto;max-width:98vw}.board-layer{top:8px;left:8px}.layer-1{transform:translate(3px,3px)}.layer-2{transform:translate(6px,6px)}.board-row{gap:1px;margin-bottom:1px}}.buffer-display{background:linear-gradient(145deg,#fff,#f0f0f0);border-radius:12px;padding:16px;margin:0;box-shadow:4px 4px 8px #0000001a,-2px -2px 4px #fffc}.buffer-title{margin:0 0 12px;font-size:1.2em;color:#333;text-align:center}.buffer-container{display:flex;flex-direction:column;gap:12px}.buffer-slots{display:flex;flex-wrap:nowrap;gap:6px;justify-content:center;overflow-x:auto;overflow-y:hidden;padding:4px 0}.buffer-slot{position:relative}.buffer-slot-empty{border:2px dashed #ccc;border-radius:6px;background:#0000000d}.last-three-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;background:#4caf501a;border-radius:8px;border:2px solid rgba(76,175,80,.3)}.indicator-text{font-size:.9em;font-weight:700;color:#4caf50}.last-three-tiles{display:flex;gap:4px}.set-aside-container{margin-top:16px;padding:12px;background:#ffc1071a;border-radius:8px;border:2px solid rgba(255,193,7,.3);text-align:center}.set-aside-title{margin:0 0 8px;font-size:1em;color:#ff9800}.set-aside-tile{display:inline-block;cursor:pointer;transition:transform .2s ease}.set-aside-tile:hover{transform:scale(1.1)}.set-aside-hint{margin:8px 0 0;font-size:.8em;color:#666;font-style:italic}@media (max-width: 768px){.buffer-display{padding:12px}.buffer-title{font-size:1.1em}.buffer-slots{gap:4px}.last-three-indicator{flex-direction:row;gap:6px;flex-wrap:nowrap}.indicator-text{font-size:.8em;white-space:nowrap}}@media (max-width: 480px){.buffer-display{padding:10px}.buffer-slots{gap:3px}.last-three-tiles{gap:2px}.last-three-indicator{gap:4px}.indicator-text{font-size:.7em}}.powers-panel{background:linear-gradient(145deg,#fff,#f0f0f0);border-radius:12px;padding:16px;margin:0;box-shadow:4px 4px 8px #0000001a,-2px -2px 4px #fffc}.powers-title{margin:0 0 16px;font-size:1.2em;color:#333;text-align:center}.powers-grid{display:flex;flex-wrap:nowrap;gap:12px;justify-content:center;margin-bottom:16px}.power-button{display:flex;flex-direction:column;align-items:center;padding:12px 16px;border:2px solid #ddd;border-radius:8px;background:linear-gradient(145deg,#fff,#f5f5f5);cursor:pointer;transition:all .2s ease;min-height:80px;min-width:100px;flex-shrink:0}.power-available{border-color:#4caf50;color:#2e7d32}.power-available:hover{transform:translateY(-2px);box-shadow:0 6px 12px #4caf504d,0 2px 4px #0000001a;border-color:#45a049}.power-available:active{transform:translateY(0);box-shadow:0 2px 4px #4caf5033,inset 0 2px 4px #0000001a}.power-disabled{border-color:#ccc;color:#999;cursor:not-allowed;opacity:.6}.power-icon{font-size:1.5em;margin-bottom:4px;line-height:1}.power-info{text-align:center;width:100%}.power-name{font-size:.9em;font-weight:700;margin-bottom:2px}.power-count{font-size:1.1em;font-weight:700;color:#ff9800}.power-available .power-count{color:#4caf50}.power-requirements{border-top:1px solid #eee;padding-top:12px}.requirement-text{margin:0;font-size:.8em;color:#666;text-align:center;display:flex;align-items:center;justify-content:center;gap:6px}.requirement-icon{font-size:1em}@media (max-width: 768px){.powers-panel{padding:12px}.powers-grid{gap:8px}.power-button{padding:10px 12px;min-height:70px;min-width:80px}.power-icon{font-size:1.3em}.power-name{font-size:.8em}.power-count{font-size:1em}}@media (max-width: 480px){.powers-grid{gap:6px}.power-button{padding:8px 10px;min-height:60px;min-width:70px}.power-icon{font-size:1.2em}.power-name{font-size:.7em}.requirement-text{font-size:.7em;flex-direction:column;gap:2px}}.game-status{position:relative;background:linear-gradient(145deg,#fff,#f0f0f0);border-radius:12px;padding:12px;margin:0;box-shadow:4px 4px 8px #0000001a,-2px -2px 4px #fffc}.status-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.score-display{display:flex;align-items:center;justify-content:center;gap:8px;font-size:1.1em;font-weight:600}.score-label{color:#666}.score-value{color:#2c5aa0;font-size:1.2em}.reset-button{padding:8px 16px;background:linear-gradient(135deg,#ff6b6b,#ff5252);color:#fff;border:none;border-radius:20px;font-size:.9em;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #ff6b6b4d;display:flex;align-items:center;gap:5px}.reset-button:hover{background:linear-gradient(135deg,#ff5252,#f44336);transform:translateY(-1px);box-shadow:0 4px 8px #ff6b6b66}.game-end-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-end-content{background:#fff;padding:32px;border-radius:16px;text-align:center;max-width:400px;margin:20px;box-shadow:0 20px 40px #0000004d,0 8px 16px #0003;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.game-end-icon{font-size:4em;margin-bottom:16px;line-height:1}.win-icon{animation:bounce .6s ease-in-out infinite alternate}.game-end-title{margin:0 0 16px;font-size:2em;line-height:1.2}.win-title{color:#4caf50}.lose-title{color:#f44336}.game-end-message{margin:0 0 16px;font-size:1.1em;color:#666;line-height:1.4}.final-score{margin:0 0 24px;font-size:1.2em;font-weight:700;color:#333}.new-game-button{background:linear-gradient(145deg,#4caf50,#45a049);color:#fff;border:none;padding:12px 24px;font-size:1.1em;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 8px #4caf504d,0 2px 4px #0000001a}.new-game-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #4caf5066,0 4px 8px #00000026}.new-game-button:active{transform:translateY(0);box-shadow:0 2px 4px #4caf504d,0 1px 2px #0000001a}@media (max-width: 768px){.game-status{padding:12px}.status-grid{gap:12px}.status-item{padding:10px}.status-value{font-size:1.2em}.game-end-content{padding:24px;margin:16px}.game-end-icon{font-size:3em}.game-end-title{font-size:1.6em}}@media (max-width: 480px){.status-grid{grid-template-columns:repeat(3,1fr);gap:8px}.status-item{padding:8px}.status-label{font-size:.8em}.status-value{font-size:1.1em}.game-end-content{padding:20px;margin:12px}.game-end-icon{font-size:2.5em}.game-end-title{font-size:1.4em}.game-end-message{font-size:1em}}.victory-popup-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.victory-popup{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:30px;max-width:400px;width:90%;position:relative;box-shadow:0 20px 40px #0000004d;border:2px solid rgba(255,255,255,.2);animation:slideIn .3s ease-out}.close-button{position:absolute;top:15px;right:15px;background:#fff3;border:none;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#fff;transition:background-color .2s ease}.close-button:hover{background:#ffffff4d}.victory-content{text-align:center;color:#fff}.victory-icon{font-size:4em;margin-bottom:15px;animation:bounce 1s ease-in-out infinite alternate}.victory-title{font-size:2em;margin:0 0 15px;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.victory-message{font-size:1.1em;margin:0 0 15px;opacity:.9;line-height:1.4}.victory-score{font-size:1.3em;margin:0 0 25px;font-weight:700;color:#ffeb3b;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.victory-buttons{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.new-game-button,.close-popup-button{padding:12px 24px;border:none;border-radius:25px;font-size:1em;font-weight:700;cursor:pointer;transition:all .2s ease;min-width:120px}.new-game-button{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;box-shadow:0 4px 8px #4caf504d}.new-game-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #4caf5066}.close-popup-button{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.close-popup-button:hover{background:#ffffff4d;transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-50px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-10px)}}@media (max-width: 480px){.victory-popup{padding:20px;margin:20px}.victory-title{font-size:1.5em}.victory-icon{font-size:3em}.victory-buttons{flex-direction:column}.new-game-button,.close-popup-button{width:100%}}.tile-match-game{min-height:100vh;width:100vw;background:linear-gradient(135deg,#667eea,#764ba2);color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;overflow-x:hidden}.game-header{text-align:center;padding:16px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.game-title{margin:0 0 8px;font-size:2em;font-weight:700;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.game-subtitle{margin:0;font-size:1em;color:#ffffffe6;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.game-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.game-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:15px;padding:15px;max-width:100%;width:100%;box-sizing:border-box;min-height:fit-content}.game-status{width:100%;max-width:500px}.game-board-container{display:flex;align-items:center;justify-content:center;width:100%;overflow:visible;flex-shrink:0}.buffer-container{width:100%;max-width:600px}.powers-container{width:100%;max-width:500px}.game-footer{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0;width:100%}.keyboard-shortcuts{text-align:center}.keyboard-shortcuts h4{margin:0 0 8px;color:#fff;font-size:1em;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.shortcuts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:400px;margin:0 auto}.shortcut{display:flex;align-items:center;justify-content:center;gap:6px;color:#ffffffe6;font-size:.9em}kbd{background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.9em;color:#fff;box-shadow:0 1px 3px #0000004d,inset 0 1px #fff3}@media (max-width: 768px){.game-content{gap:10px;padding:10px}.game-header{padding:10px}.game-title{font-size:1.6em}.game-subtitle{font-size:.9em}.game-footer{padding:8px}.shortcuts-grid{grid-template-columns:repeat(2,1fr);gap:4px}.shortcut{font-size:.8em}}@media (max-width: 480px){.game-content{gap:8px;padding:8px}.game-header{padding:8px}.game-title{font-size:1.4em}.game-subtitle{font-size:.8em}.game-footer{padding:6px}.keyboard-shortcuts h4{font-size:.8em;margin-bottom:4px}.shortcuts-grid{grid-template-columns:repeat(4,1fr);gap:2px}.shortcut{font-size:.7em}}*{box-sizing:border-box;margin:0;padding:0}html,body{margin:0;padding:0;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{min-height:100vh;width:100vw;display:flex;flex-direction:column}button{font-family:inherit;border:none;outline:none;cursor:pointer;transition:all .2s ease}button:focus{outline:2px solid #4CAF50;outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
