:root{--bg-color:#f7f9fc;--text-color:#2c3e50;--primary-color:#3498db;--accent-color:#e74c3c;--card-bg:#ffffff;--shadow:0 4px 6px rgba(0, 0, 0, 0.05);--radius:16px}body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-color);align-items:center;overflow:hidden;user-select:none;-webkit-user-select:none;-ms-user-select:none}.main-slider{width:100%;height:100vh;height:100dvh;transition:transform .5s cubic-bezier(.25, .46, .45, .94)}.main-slider.show-info{transform:translateY(-100vh);transform:translateY(-100dvh)}.page-section{width:100%;height:100vh;height:100dvh;overflow:hidden;position:relative;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color)}.info-section{align-items:flex-start;justify-content:flex-start;background-color:#fff;overflow-y:auto;padding-bottom:50px}.info-container{max-width:600px;margin:0 auto;padding:30px 20px}.content-body{line-height:1.6;color:#34495e}.content-body h1{color:#2c3e50;margin-top:30px}.content-body h2{color:#3498db;margin-top:25px;border-bottom:2px solid #ecf0f1;padding-bottom:10px}.content-body ul{padding-left:20px}.content-body li{margin-bottom:10px}.back-btn{display:block;width:100%;padding:12px;background:#fff;border:2px solid #ecf0f1;border-radius:12px;color:#2c3e50;font-weight:700;font-size:1rem;cursor:pointer;margin-bottom:20px;position:sticky;top:0;z-index:10;box-shadow:0 4px 0 #bdc3c7;transition:all .1s;text-align:center}.back-btn:hover{border-color:#3498db;color:#3498db;transform:translateY(-2px);box-shadow:0 6px 0 #bdc3c7}.back-btn:active{transform:translateY(4px);box-shadow:0 0 0 #bdc3c7;border-color:#bdc3c7}.game-container{width:100%;max-width:500px;height:100%;display:flex;flex-direction:column;background:var(--card-bg);box-shadow:0 0 20px rgba(0,0,0,.05);position:relative}.game-header{padding:10px 20px;display:flex;justify-content:space-between;align-items:center}.game-header h2{margin:0;font-size:1.2rem;font-weight:600;letter-spacing:1px;color:#7f8c8d;cursor:pointer}.score-board{font-size:1.5rem;font-weight:700;color:var(--text-color)}.canvas-wrapper{flex:1;display:flex;justify-content:center;align-items:center;padding:5px;min-height:0}.controls-area{padding:15px 15px calc(15px + env(safe-area-inset-bottom)) 15px;display:flex;flex-direction:column;align-items:center;gap:12px;background-color:#fff;border-top-left-radius:30px;border-top-right-radius:30px;box-shadow:0 -4px 20px rgba(0,0,0,.03)}.palette{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.palette-btn{width:48px;height:48px;border-radius:50%;border:4px solid #fff;box-shadow:0 4px 8px rgba(0,0,0,.1);cursor:pointer;transition:transform .2s,border-color .2s}.palette-btn:active{transform:scale(.9)}.palette-btn.selected{transform:scale(1.1);border-color:var(--text-color)}@keyframes hintPulse{0%{box-shadow:0 0 0 0 rgba(255,230,0,.7);transform:scale(1)}50%{box-shadow:0 0 0 10px rgba(255,230,0,0);transform:scale(1.2)}100%{box-shadow:0 0 0 0 rgba(255,230,0,0);transform:scale(1)}}.palette-btn.hint-anim,.palette-btn.hint-highlight{animation:hintPulse 1s ease-out infinite;border-color:#f1c40f;box-shadow:0 0 15px rgba(241,196,15,.6)}.action-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;padding:5px}.icon-btn{background:#fff;border:2px solid #ecf0f1;font-size:1rem;padding:8px 4px;border-radius:12px;cursor:pointer;opacity:1;transition:all .1s;display:flex;align-items:center;justify-content:center;color:#2c3e50;font-weight:700;white-space:nowrap;width:calc((100% - 16px)/ 3);box-shadow:0 4px 0 #bdc3c7;margin-bottom:4px}.icon-btn span{font-size:.85rem;margin-left:4px;font-weight:700;color:#7f8c8d}.icon-btn:hover{border-color:#3498db;color:#3498db;transform:translateY(-2px);box-shadow:0 6px 0 #bdc3c7}.icon-btn:hover span{color:#3498db}.icon-btn:active{transform:translateY(4px);box-shadow:0 0 0 #bdc3c7;border-color:#bdc3c7}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-area span{animation:fadeIn .5s ease-out;color:#2ecc71;font-size:1.2rem;margin-right:15px}.next-btn{border:none;background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;padding:8px 24px;border-radius:20px;font-size:1rem;font-weight:600;cursor:pointer;display:none;font-weight:600;box-shadow:0 4px 15px rgba(108,92,231,.3);transition:transform .2s,box-shadow .2s;animation:fadeIn .8s ease-out}.next-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(108,92,231,.4)}.next-btn:active{transform:translateY(0)}.next-btn.visible{display:block}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-content{background:#fff;width:90%;max-width:400px;max-height:80vh;border-radius:20px;padding:20px;display:flex;flex-direction:column;box-shadow:0 10px 25px rgba(0,0,0,.1)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3{margin:0}.close-btn{background:0 0;border:none;font-size:1.5rem;cursor:pointer}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:10px;overflow-y:auto;padding:5px}.level-item{aspect-ratio:1;display:flex;justify-content:center;align-items:center;background:#f0f0f0;border-radius:10px;cursor:pointer;font-weight:700;color:#bdc3c7}.level-item.unlocked{background-color:#fff;border:2px solid var(--primary-color);color:var(--text-color)}.level-item.completed{background-color:var(--primary-color);color:#fff;border:none}@media (max-width:480px){.palette-btn{width:40px;height:40px}}.popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:2000;opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.4, 0, .2, 1);backdrop-filter:blur(4px)}.popup-overlay.open{opacity:1;pointer-events:auto}.popup-content{background:#fff;padding:30px 40px;border-radius:24px;text-align:center;transform:scale(.8) translateY(20px);transition:transform .3s cubic-bezier(.34, 1.56, .64, 1);box-shadow:0 20px 60px rgba(0,0,0,.2);min-width:280px}.popup-overlay.open .popup-content{transform:scale(1) translateY(0)}.popup-content h2{margin:0 0 10px 0;font-size:2rem;color:var(--text-color)}#popupTitle.win{color:#2ecc71}#popupTitle.lose{color:#e74c3c}#popupMessage{font-size:1.1rem;color:#7f8c8d;margin-bottom:25px}.popup-actions{display:flex;flex-direction:column;gap:12px}.primary-btn,.secondary-btn{border:none;padding:12px 24px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.primary-btn{background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;box-shadow:0 4px 15px rgba(108,92,231,.3)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(108,92,231,.4)}.secondary-btn{background:#f1f2f6;color:#2c3e50}.secondary-btn:hover{background:#dfe4ea}.tutorial-step{background:#f8f9fa;border-radius:12px;padding:20px;margin-bottom:20px;border:1px solid #e9ecef}.step-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.step-num{background:var(--primary-color);color:#fff;width:24px;height:24px;border-radius:50%;display:flex;justify-content:center;align-items:center;font-weight:700;font-size:.9rem}.step-header h3{margin:0;color:var(--text-color);font-size:1.1rem}.mini-demo{display:flex;justify-content:center;align-items:center;margin-top:15px;position:relative;height:80px;background:#fff;border-radius:8px;box-shadow:inset 0 2px 4px rgba(0,0,0,.05)}.mini-palette{display:flex;gap:8px}.dot{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}.dot.red{background:#e74c3c}.dot.blue{background:#3498db}.dot.green{background:#2ecc71}.dot.active{border-color:#2c3e50;transform:scale(1.1)}.pointer-hand-step1{position:absolute;font-size:24px;bottom:5px;left:70%;animation:tapAnim 1s infinite alternate}.pointer-hand-step2{position:absolute;font-size:24px;top:30%;left:45%;animation:tapAnim 1s infinite alternate}.mini-header-demo{font-size:1.2rem;font-weight:600;letter-spacing:1px;color:#7f8c8d;border:2px dashed #bdc3c7;padding:5px 10px;border-radius:8px}.pointer-hand-step-level{position:absolute;font-size:24px;top:40%;left:60%;animation:tapAnim 1s infinite alternate}@keyframes tapAnim{from{transform:translateY(0)}to{transform:translateY(5px)}}.mini-grid{display:grid;grid-template-columns:repeat(3,15px);gap:2px}.cell{width:15px;height:15px;background:#bdc3c7;border-radius:2px}.cell.red{background:#e74c3c}.cell.blue{background:#3498db}.cell.green{background:#2ecc71}.mini-grid.completed .cell{background:#3498db;transition:background .5s}.check-mark{position:absolute;font-size:40px;color:#2ecc71;text-shadow:0 2px 4px rgba(0,0,0,.1);opacity:0;animation:checkFadeIn .5s forwards .5s}@keyframes checkFadeIn{to{opacity:1;transform:scale(1.2)}}.button-legend{display:grid;grid-template-columns:1fr 1fr;gap:15px}.legend-item{display:flex;align-items:center;gap:10px;background:#fff;padding:10px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05)}.legend-item .icon{font-size:1.2rem;width:32px;height:32px;background:#f1f2f6;display:flex;justify-content:center;align-items:center;border-radius:6px}.legend-item .text{color:#34495e;line-height:1.3}.footer{text-align:center;margin-top:30px;padding-top:20px;border-top:1px solid #ecf0f1;color:#95a5a6;font-size:.8rem}