@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;600&display=swap";.music-notation{margin:12px 0;text-align:center}.music-notation h4{margin-bottom:15px;color:#333;font-size:18px}.notation-container{border:2px solid #ddd;border-radius:12px;padding:15px;background:white;overflow-x:auto;min-height:320px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:900px}.notation-container svg{max-width:100%;height:auto}.device-info{background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 100%);border:2px solid #2196f3;border-radius:10px;padding:15px;margin:20px 0;text-align:center;box-shadow:0 2px 10px #2196f333}.device-info p{margin:5px 0;color:#1565c0;font-weight:500}.device-info small{color:#1976d2;opacity:.8}.song-selection{margin:20px 0;text-align:center}.song-selection h3{margin-bottom:15px;color:#333}.song-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px}.song-buttons button{padding:12px 20px;font-size:14px;border:2px solid #007bff;border-radius:8px;cursor:pointer;background:white;color:#007bff;transition:all .2s ease;font-weight:500}.song-buttons button:hover{background:#f8f9fa;transform:translateY(-2px)}.song-buttons button.selected{background:#007bff;color:#fff;box-shadow:0 4px 8px #007bff4d}.current-song{text-align:center;margin:15px 0;padding:10px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.current-song h4{margin:0 0 10px;font-size:18px}.song-info{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.difficulty{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.difficulty.beginner{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.difficulty.intermediate{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.difficulty.advanced{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.song-info p{margin:0;font-size:14px;opacity:.9;font-style:italic}.controls{margin:20px 0;text-align:center}.controls button{margin:0 10px;padding:12px 24px;font-size:16px;border:none;border-radius:8px;cursor:pointer;background:#28a745;color:#fff;font-weight:600;transition:all .2s ease}.controls button:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.control-buttons-top{display:flex;justify-content:center;gap:15px;margin:20px 0;padding:15px}.top-control-btn{padding:8px 16px;font-size:14px;border:1px solid #6c757d;border-radius:6px;cursor:pointer;background:white;color:#495057;font-weight:500;transition:all .2s ease;min-width:80px}.top-control-btn:hover:not(:disabled){background:#f8f9fa;border-color:#495057;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.top-control-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;border-color:#dee2e6;opacity:.7}.learning-info{margin:20px 0;padding:20px;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:10px;text-align:center;border:2px solid #dee2e6}.learning-info p{margin:10px 0;font-size:16px;font-weight:500}.learning-info .feedback{font-weight:700;color:#28a745;font-size:18px;text-shadow:1px 1px 2px rgba(0,0,0,.1)}.wake-lock-status{font-size:14px;color:#17a2b8;font-weight:500;margin:5px 0!important;opacity:.9}.progress-bar{width:100%;height:10px;background:#dee2e6;border-radius:5px;margin-top:15px;overflow:hidden}.progress{height:100%;background:linear-gradient(90deg,#28a745,#20c997);transition:width .3s ease;border-radius:5px}.keyboard-container{margin:30px 0;padding:20px;background:#f8f9fa;border-radius:15px;border:2px solid #dee2e6;display:flex;flex-direction:column;align-items:center;width:100%;box-sizing:border-box}@media (max-width: 600px) and (orientation: portrait){.keyboard-container{margin:8px 0;padding:0;min-height:auto;background:transparent;border:none;height:auto}}.keyboard-labels{display:flex;justify-content:space-around;margin-bottom:15px}.octave-label{text-align:center;font-weight:700;color:#495057;font-size:14px;text-transform:uppercase;letter-spacing:1px;padding:8px 16px;border-radius:8px;flex:1;margin:0 5px}.octave-label.left-hand{background:linear-gradient(135deg,#e1f5fe 0%,#b3e5fc 100%);border:2px solid #03a9f4;color:#0277bd}.octave-label.right-hand{background:linear-gradient(135deg,#f3e5f5 0%,#e1bee7 100%);border:2px solid #9c27b0;color:#7b1fa2}.horizontal-keyboard{display:flex;justify-content:center;gap:0;overflow-x:auto;overflow-y:visible;padding:10px 0;width:100%;box-sizing:border-box}@media (max-width: 600px) and (orientation: portrait){.horizontal-keyboard{padding:0!important;gap:0!important;justify-content:flex-start;margin:0!important;height:auto;overflow:visible}.keyboard{margin:0!important;padding:0!important;height:auto}}.keyboard{display:flex;gap:2px;margin:0;position:relative;align-items:flex-start;height:220px;overflow:visible}.key{width:27px;height:180px;border:2px solid #333;margin:1px;display:flex;align-items:flex-end;justify-content:center;background:white;cursor:pointer;transition:all .2s ease;font-weight:700;font-size:10px;padding-bottom:8px;border-radius:0 0 8px 8px;box-shadow:0 2px 5px #0000001a;color:#333;position:relative}.key.left-hand{background:white;border-color:#333;color:#333}.key.left-hand:hover{background:#f5f5f5;border-color:#333}.key.right-hand{background:white;border-color:#333;color:#333}.key.right-hand:hover{background:#f5f5f5;border-color:#333}.key.black-key{position:absolute!important;display:flex!important;width:17px!important;height:110px!important;background:#1a1a1a!important;border:2px solid #000!important;color:#fff!important;top:0!important;margin:0!important;z-index:10;border-radius:0 0 6px 6px!important;box-shadow:0 2px 8px #0006,inset 0 1px 3px #ffffff1a!important;flex:none!important;padding:0!important;align-items:flex-end;justify-content:center;font-weight:700;font-size:10px;padding-bottom:8px}.key.black-key:hover{background:#2a2a2a!important;box-shadow:0 4px 12px #00000080,inset 0 1px 3px #ffffff1a!important}.key:hover{background:linear-gradient(180deg,#f8f9fa 0%,#e9ecef 100%);transform:translateY(-2px);box-shadow:0 4px 10px #00000026}.key.active{background:linear-gradient(180deg,#ffeb3b 0%,#ffc107 100%);transform:translateY(3px);box-shadow:0 1px 3px #0003;border-color:#f57c00}.key.expected{background:linear-gradient(180deg,#e3f2fd 0%,#bbdefb 100%);border-color:#2196f3;animation:pulse 1.5s infinite;box-shadow:0 0 15px #2196f366}.key.playing{background:linear-gradient(180deg,#e8f5e8 0%,#c8e6c8 100%);border-color:#4caf50;animation:playing-pulse .5s ease-in-out;box-shadow:0 0 20px #4caf5099}@keyframes pulse{0%{opacity:1;box-shadow:0 0 15px #2196f366}50%{opacity:.8;box-shadow:0 0 25px #2196f399}to{opacity:1;box-shadow:0 0 15px #2196f366}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes rotatePhone{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}@keyframes playing-pulse{0%{transform:scale(1);box-shadow:0 0 20px #4caf5099}50%{transform:scale(1.05);box-shadow:0 0 30px #4caf50cc}to{transform:scale(1);box-shadow:0 0 20px #4caf5099}}.home-page{display:flex;flex-direction:column;min-height:100vh;background:#f8f9fa}.home-main-content{flex:1;display:flex;gap:40px;padding:60px 40px;max-width:1200px;margin:0 auto;width:100%}.home-logo-section{flex:1;display:flex;justify-content:center;align-items:center}.home-piano-card{cursor:pointer;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.home-piano-card:hover{transform:translateY(-8px)}.home-piano-heading{font-size:2.5rem;color:#001a4d;margin:0 0 30px;font-weight:300;font-family:Cormorant Garamond,serif;letter-spacing:1px}.home-piano-cta-btn{background:#001a4d;color:#fff;border:none;padding:14px 40px;font-size:1.1rem;font-weight:400;border-radius:6px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #001a4d4d;font-family:Cormorant Garamond,serif}.home-piano-cta-btn:hover{background:#002d7a;box-shadow:0 6px 25px #001a4d80;transform:translateY(-2px)}.home-platforms-section{flex:1;display:flex;flex-direction:column;justify-content:center}.platforms-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.platform-box{background:linear-gradient(135deg,rgba(255,255,255,.7) 0%,rgba(248,249,250,.5) 100%);padding:30px;border-radius:12px;border:1px solid rgba(0,26,77,.1);text-align:center;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.platform-box:hover{background:linear-gradient(135deg,rgba(255,255,255,.85) 0%,rgba(248,249,250,.7) 100%);border-color:#001a4d33;transform:translateY(-4px)}.platform-box.ios-platform{display:flex;flex-direction:column;align-items:center;justify-content:center}.platform-box.web-platform{display:flex;align-items:center;justify-content:center}.platform-text{margin:12px 0;color:#001a4d;font-size:.95rem;line-height:1.5;font-family:Cormorant Garamond,serif;font-weight:400}.qr-code{width:120px;height:120px;margin:15px auto;border-radius:8px;border:2px solid #001a4d}.home-getting-started{border-top:1px solid rgba(0,26,77,.1);padding:20px 40px;background:linear-gradient(135deg,rgba(248,249,250,.5) 0%,rgba(255,255,255,.7) 100%)}.home-getting-started h3{margin:0;font-size:1rem;color:#001a4d;cursor:pointer;transition:color .3s ease;font-family:Cormorant Garamond,serif;font-weight:400}.home-getting-started h3:hover{color:#002d7a}.getting-started-content{margin-top:20px;padding:20px;background:linear-gradient(135deg,rgba(248,249,250,.7) 0%,rgba(240,243,248,.5) 100%);border-radius:8px;border:1px solid rgba(0,26,77,.1)}.getting-started-content h2{font-family:Cormorant Garamond,serif;font-size:1.5rem;color:#001a4d;margin:15px 0 10px;font-weight:400}.getting-started-content h3{font-family:Cormorant Garamond,serif;font-size:1.2rem;color:#001a4d;margin:12px 0 8px;font-weight:400}.getting-started-content h4{font-family:Cormorant Garamond,serif;font-size:1rem;color:#001a4d;margin:10px 0 6px;font-weight:400}.getting-started-content p{color:#333;font-size:.95rem;line-height:1.6;margin:8px 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.getting-started-content li{color:#333;font-size:.95rem;line-height:1.6;margin:5px 0 5px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.getting-started-content a{color:#001a4d;text-decoration:underline;font-weight:500}.getting-started-content a:hover{color:#002d7a}.getting-started-img{max-width:100%;height:auto;border-radius:6px;margin:15px 0;display:block}.navigation-icons{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:800px;width:100%}.nav-card{background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);border:2px solid #dee2e6;border-radius:20px;padding:40px 30px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0000001a;text-align:center}.nav-card:hover{transform:translateY(-10px);box-shadow:0 10px 30px #0003;border-color:#007bff}.nav-card:hover .nav-icon{transform:scale(1.1)}.nav-icon{font-size:4rem;margin-bottom:20px;transition:transform .3s ease}.nav-card h3{font-size:1.5rem;margin-bottom:15px;color:#333;font-weight:600}.nav-card p{font-size:1rem;color:#6c757d;margin:0;line-height:1.5}.back-button-container{position:sticky;top:0;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:15px 20px;border-bottom:1px solid #dee2e6;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:20px}.back-button{padding:8px 12px;height:36px;display:flex;align-items:center;justify-content:center;background:white;color:#000;border:2px solid black;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.back-button:hover{background:#f5f5f5;transform:translate(-5px)}.fullscreen-button{padding:8px 12px;height:36px;display:flex;align-items:center;justify-content:center;background:white;color:#000;border:2px solid black;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease}.piano-controls-header .fullscreen-button{padding:10px 12px;margin:0}.fullscreen-button:hover{background:#f5f5f5;transform:scale(1.05)}.piano-controls-header{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:6px 20px;border-bottom:1px solid #e0e0e0;width:100%;position:relative;z-index:100;overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important}.play-dropdown-container{position:relative!important;display:inline-block!important;overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important}.dropdown-btn{background:white;color:#000;border:2px solid black;border-radius:6px;padding:10px 12px;cursor:pointer;font-size:18px;font-weight:700;transition:all .2s ease;line-height:1;min-width:40px;margin-right:8px}.dropdown-btn:hover{background:#f5f5f5;transform:translateY(-2px)}.dropdown-btn:disabled{background:#e9ecef;color:#6c757d;border-color:#6c757d;cursor:not-allowed;transform:none}.play-dropdown-menu{position:absolute;top:100%;right:0;background:white;border:2px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:150px;margin-top:5px}.play-dropdown-menu{position:absolute!important;top:100%!important;right:0!important;left:auto!important;background:white;border:2px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:10000!important;min-width:150px;margin-top:5px}.play-dropdown-container.mobile-portrait-dropdown{position:relative!important;z-index:1001!important;display:inline-block!important;overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important}.play-dropdown-container.mobile-portrait-dropdown .dropdown-btn{padding:8px!important;min-width:40px!important;font-size:20px!important;height:auto!important;min-height:40px;display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer!important;pointer-events:auto!important;border:2px solid black!important;background:white!important;color:#000!important;border-radius:6px!important;margin-right:8px!important}.play-dropdown-container.mobile-portrait-dropdown .dropdown-btn:hover{background:#f5f5f5!important}.play-dropdown-container.mobile-portrait-dropdown .play-dropdown-menu{position:fixed!important;top:50px!important;right:8px!important;left:auto!important;max-width:calc(100vw - 16px)!important;min-width:200px!important;max-height:70vh!important;overflow-y:auto!important;z-index:99999!important;margin-top:0!important;box-shadow:0 8px 16px #0003!important;background:white!important;border:2px solid #ddd!important;border-radius:8px!important;display:block!important;visibility:visible!important;opacity:1!important}.piano-controls-header.mobile-portrait-header{padding:8px 12px;gap:4px}@media (max-width: 600px) and (orientation: portrait){.piano-container{padding-bottom:0}.piano-container>div:not(.feedback-button):not(.screen-awake-button):not(.sheet-button){padding-bottom:70px}.horizontal-keyboard{margin-bottom:10px}*{max-width:100%;overflow-x:hidden}.keyboard-container{padding:12px;margin-bottom:10px}}.dropdown-item{display:block;width:100%;padding:12px 16px;background:white;border:none;text-align:left;cursor:pointer;transition:background-color .2s ease;font-size:14px;color:#000}.dropdown-item:hover{background-color:#f5f5f5}.dropdown-item:disabled{color:#6c757d;cursor:not-allowed;background-color:#e9ecef}.header-control-btn{padding:8px 16px;height:36px;font-size:14px;border:2px solid black;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;background:white;color:#000}.header-control-btn.play-btn{background:white;color:#000;border:2px solid black}.header-control-btn.play-btn:hover:not(:disabled){background:#f5f5f5;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.header-control-btn.practice-btn{background:white;color:#000;border:2px solid black}.header-control-btn.practice-btn:hover:not(:disabled){background:#f5f5f5;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.header-control-btn.reset-btn{background:white;color:#000;border:2px solid black}.header-control-btn.reset-btn:hover:not(:disabled){background:#f5f5f5;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.header-control-btn:disabled{background:#e9ecef!important;color:#6c757d!important;border-color:#6c757d!important;cursor:not-allowed!important;opacity:.7;transform:none!important;box-shadow:none!important}.law-placeholder{text-align:center;padding:40px 20px;max-width:800px;margin:0 auto}.law-placeholder h2{font-size:2.5rem;color:#333;margin-bottom:20px}.planned-features{background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:15px;padding:30px;margin:30px 0;text-align:left}.planned-features h3{color:#495057;margin-bottom:20px;text-align:center}.planned-features ul{list-style:none;padding:0}.planned-features li{background:white;margin:10px 0;padding:15px;border-radius:8px;border-left:4px solid #007bff;box-shadow:0 2px 5px #0000000d}.placeholder-note{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:20px;margin-top:30px}.placeholder-note em{color:#856404;font-style:italic}.home-footer{border-top:1px solid rgba(0,26,77,.1);padding:20px 40px;background:linear-gradient(135deg,rgba(248,249,250,.6) 0%,rgba(240,243,248,.5) 100%)}.footer-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;gap:20px}.footer-content p{margin:0;color:#001a4d;font-size:.8rem;font-family:Cormorant Garamond,serif;font-weight:300;opacity:.7}.footer-buttons{display:flex;gap:15px}.footer-btn{padding:8px 16px;background:rgba(0,26,77,.05);color:#001a4d;border:1px solid rgba(0,26,77,.2);border-radius:4px;cursor:pointer;font-size:.8rem;font-family:Cormorant Garamond,serif;font-weight:400;transition:all .3s ease}.footer-btn:hover{background:#001a4d;color:#fff;border-color:#001a4d}.contact-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;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.contact-modal{background:white;border-radius:15px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.contact-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px 15px;border-bottom:1px solid #dee2e6;background:linear-gradient(135deg,#007bff 0%,#0056b3 100%);color:#fff;border-radius:15px 15px 0 0}.contact-header h2{margin:0;font-size:1.5rem}.close-button{background:transparent;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:5px;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.close-button:hover{background:rgba(255,255,255,.2)}.contact-form{padding:25px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-group input,.form-group textarea{width:100%;padding:12px;border:2px solid #dee2e6;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:15px;margin-bottom:20px}.send-button{flex:1;padding:12px 20px;background:#28a745;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:all .2s ease}.send-button:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.cancel-button{flex:1;padding:12px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease}.cancel-button:hover{background:#545b62;transform:translateY(-2px)}.contact-info{text-align:center;padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.contact-info small{color:#6c757d;line-height:1.4}.canadian-law-container{padding:20px;max-width:1200px;margin:0 auto}.canadian-law-container h1{text-align:center;margin-bottom:30px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.course-overview{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:40px;padding:20px;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:15px;border:2px solid #dee2e6}.progress-overview h3,.week-navigation h3{margin-bottom:15px;color:#495057;text-align:center}.overall-progress{text-align:center}.overall-progress p{margin-top:10px;font-weight:600;color:#495057}.week-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.week-button{padding:10px 20px;background:white;border:2px solid #007bff;border-radius:8px;color:#007bff;cursor:pointer;font-weight:500;transition:all .2s ease}.week-button:hover{background:#f8f9fa;transform:translateY(-2px)}.week-button.active{background:#007bff;color:#fff;box-shadow:0 4px 8px #007bff4d}.learning-plan{background:white;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a}.learning-plan h2{text-align:center;margin-bottom:30px;color:#495057;font-size:1.5rem}.days-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.day-card{background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);border:2px solid #dee2e6;border-radius:12px;padding:20px;transition:all .3s ease;box-shadow:0 2px 8px #0000001a}.day-card:hover{transform:translateY(-5px);box-shadow:0 6px 20px #00000026}.day-card.completed{border-color:#28a745;background:linear-gradient(135deg,#d4edda 0%,#c3e6cb 100%)}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.day-number{font-weight:700;color:#007bff;font-size:14px;background:white;padding:5px 12px;border-radius:20px;border:1px solid #007bff}.day-card.completed .day-number{color:#28a745;border-color:#28a745}.complete-button{background:none;border:none;font-size:1.5rem;cursor:pointer;transition:transform .2s ease}.complete-button:hover{transform:scale(1.2)}.day-card h4{margin:0 0 15px;color:#333;font-size:1.1rem;line-height:1.4}.resource-link{display:inline-block;padding:8px 16px;background:#007bff;color:#fff;text-decoration:none;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s ease}.resource-link:hover{background:#0056b3;transform:translateY(-2px);text-decoration:none;color:#fff}.exercise-label{display:inline-block;padding:8px 16px;background:#ffc107;color:#856404;border-radius:8px;font-size:14px;font-weight:500;border:1px solid #ffeb3b}.resource-placeholder{background:linear-gradient(135deg,#fff3cd 0%,#ffeaa7 100%);border:2px solid #ffc107;border-radius:8px;padding:15px;text-align:center}.placeholder-label{display:block;font-weight:600;color:#856404;margin-bottom:8px;font-size:14px}.search-hint{font-size:12px;color:#6c757d;margin:8px 0;font-style:italic;line-height:1.3}.search-button{padding:6px 14px;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:not-allowed;opacity:.7;margin-top:5px}.search-button:disabled{background:#6c757d;cursor:not-allowed}.day-card .resource-placeholder{border-left:4px solid #ffc107}.day-card .exercise-label{border-left:4px solid #17a2b8}@media (max-width: 768px){.home-page{width:100vw;overflow-x:hidden}.home-main-content{flex-direction:column;gap:20px;padding:12px 10px;width:100vw;max-width:100vw;box-sizing:border-box}.home-logo-section{width:100%;box-sizing:border-box}.home-piano-heading{font-size:1.8rem;margin-bottom:15px}.home-piano-cta-btn{padding:12px 20px;font-size:.95rem}.home-platforms-section{justify-content:flex-start;width:calc(100vw - 20px);max-width:calc(100vw - 20px);box-sizing:border-box}.platforms-grid{grid-template-columns:1fr;gap:10px;width:100%;max-width:100%;box-sizing:border-box}.platform-box{padding:8px;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.platform-text{font-size:.8rem;word-wrap:break-word;overflow-wrap:break-word;white-space:normal;margin:0}.qr-code{max-width:75px;width:75px;height:75px;display:block}.home-getting-started{padding:12px;width:100%;box-sizing:border-box}.getting-started-content{margin-top:15px;padding:12px}.getting-started-content h2{font-size:1.3rem;margin:12px 0 8px}.getting-started-content h3{font-size:1rem;margin:10px 0 6px}.getting-started-content p,.getting-started-content li{font-size:.85rem}.home-footer{padding:12px;width:100%;box-sizing:border-box}.footer-content{flex-direction:column;text-align:center;gap:6px;width:100%}.footer-content p{font-size:.7rem}.footer-buttons{flex-direction:column;width:100%;gap:6px}.footer-btn{width:100%;padding:6px 10px;font-size:.7rem}.navigation-icons{grid-template-columns:1fr;gap:20px}.nav-card{padding:30px 20px}.nav-icon{font-size:3rem}.song-buttons{flex-direction:column;align-items:center}.song-buttons button{width:200px}.controls button{margin:5px;padding:10px 16px}.keyboard-labels{flex-direction:column;gap:5px}.octave-label{font-size:12px;padding:6px 12px}.horizontal-keyboard{flex-direction:column;align-items:center;gap:10px}.keyboard{justify-content:center}.key{width:19px;height:120px;font-size:7px}.law-placeholder h2{font-size:2rem}.planned-features{padding:20px;text-align:center}.footer-content{flex-direction:column;text-align:center;gap:10px}.back-button-container{flex-direction:column;gap:10px;padding:10px 15px}.piano-controls-header .fullscreen-button{margin:0;padding:8px 10px}.piano-controls-header{gap:8px;justify-content:center;flex-wrap:wrap}.dropdown-btn{padding:8px 10px;font-size:16px}.play-dropdown-menu{min-width:120px}.header-control-btn{padding:10px 16px;font-size:14px;min-width:70px}.contact-modal{width:95%;margin:10px}.contact-header{padding:15px 20px 10px}.contact-form{padding:20px}.form-actions{flex-direction:column;gap:10px}.canadian-law-container{padding:15px}.course-overview{grid-template-columns:1fr;gap:20px;padding:15px}.week-buttons{flex-direction:column;align-items:center}.week-button{width:120px}.learning-plan{padding:20px}.days-grid{grid-template-columns:1fr;gap:15px}.day-card{padding:15px}}.piano-container{display:flex;min-height:100vh;gap:0}.side-panel{width:350px;min-width:350px;background:white;color:#333;padding:20px;overflow-y:auto;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;gap:20px;position:relative;transition:all .3s ease}.side-panel.collapsed{width:50px;min-width:50px;padding:0;overflow:hidden;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-right:3px solid #007bff}.panel-toggle-btn{position:fixed;top:20px;left:330px;width:40px;height:40px;background:white;border:2px solid #e0e0e0;border-radius:0 8px 8px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:#495057;z-index:100;transition:all .3s ease;box-shadow:2px 2px 8px #0000001a}.panel-toggle-btn:hover{background:#f8f9fa;color:#007bff;border-color:#007bff;transform:translate(2px)}.side-panel.collapsed .panel-toggle-btn{left:5px;border-radius:8px}.side-panel h3{margin:0 0 20px;text-align:center;font-size:1.5rem;font-weight:600;color:#333}.main-content{flex:1;padding:20px;background:#f8f9fa;min-height:100vh;overflow-y:auto}.difficulties{flex:1;display:flex;flex-direction:column;gap:8px}.difficulty-section{margin-bottom:5px}.difficulty-button{width:100%;padding:12px 16px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;color:#333;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:space-between;text-align:left}.difficulty-button:hover{background:#e9ecef}.difficulty-button.expanded{background:#e9ecef;border-color:#ced4da}.difficulty-name{flex:1}.song-count{font-size:12px;color:#6c757d;margin-right:8px}.expand-arrow{font-size:12px;color:#6c757d;transition:transform .2s ease}.difficulty-button.expanded .expand-arrow{transform:rotate(90deg)}.songs-list{margin-top:8px;margin-left:20px;display:flex;flex-direction:column;gap:4px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.song-item-container{display:flex;gap:4px;align-items:center;margin-bottom:4px}.song-button{padding:8px 12px;background:white;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:12px;cursor:pointer;transition:background-color .2s ease;text-align:left;flex:1}.song-button:hover{background:#f8f9fa}.song-button.selected{background:#007bff;border-color:#007bff;color:#fff;font-weight:500}.share-song-btn{padding:6px 10px;background:white;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:34px}.share-song-btn:hover{background:#007bff;border-color:#007bff;transform:scale(1.05)}.current-song-info{background:#f8f9fa;border-radius:4px;padding:16px;border:1px solid #e0e0e0}.current-song-info h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.song-title{font-size:16px;font-weight:600;margin-bottom:8px;line-height:1.3;color:#212529}.song-details{display:flex;flex-direction:column;gap:8px}.difficulty{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;align-self:flex-start;background:#e9ecef;color:#495057;border:1px solid #ced4da}.song-description{font-size:12px;line-height:1.4;color:#6c757d;margin:0}.controls{display:flex;flex-direction:column;gap:10px;margin-top:auto}.control-btn{padding:12px 16px;border:1px solid #ced4da;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease;text-align:center;width:100%;background:white;color:#495057}.control-btn:hover:not(:disabled){background:#f8f9fa}.control-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;border-color:#dee2e6}@media (max-width: 1200px){.side-panel{width:300px;min-width:300px}}@media (max-width: 900px){.piano-container{flex-direction:column;min-height:auto}.side-panel{width:100%;min-width:100%;order:2;max-height:50vh}.main-content{order:1;min-height:50vh}}@media (max-width: 600px){.side-panel{padding:15px;max-height:40vh}.main-content{padding:15px}.control-btn{padding:10px 14px;font-size:13px}}.recording-section{background:#fff;border-radius:8px;padding:20px;border:2px solid #e0e0e0;box-shadow:0 2px 8px #0000000d}.recording-section h4{margin:0 0 16px;font-size:16px;font-weight:600;color:#333;text-align:center}.recording-button{width:100%;padding:12px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;margin:6px 0}.recording-button.start-recording{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;box-shadow:0 2px 8px #28a7454d}.recording-button.start-recording:hover:not(:disabled){background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.recording-button.stop-recording{background:linear-gradient(135deg,#dc3545 0%,#e73c7e 100%);color:#fff;box-shadow:0 2px 8px #dc35454d}.recording-button.stop-recording:hover:not(:disabled){background:linear-gradient(135deg,#c82333 0%,#dc2f6e 100%);transform:translateY(-2px);box-shadow:0 4px 12px #dc354566}.recording-button.playback{background:linear-gradient(135deg,#007bff 0%,#6610f2 100%);color:#fff;box-shadow:0 2px 8px #007bff4d}.recording-button.playback:hover:not(:disabled){background:linear-gradient(135deg,#0056b3 0%,#520dc2 100%);transform:translateY(-2px);box-shadow:0 4px 12px #007bff66}.recording-button.new-recording{background:linear-gradient(135deg,#ffc107 0%,#fd7e14 100%);color:#212529;box-shadow:0 2px 8px #ffc1074d}.recording-button.new-recording:hover:not(:disabled){background:linear-gradient(135deg,#e0a800 0%,#ea6100 100%);transform:translateY(-2px);box-shadow:0 4px 12px #ffc10766}.recording-button.request-song{background:linear-gradient(135deg,#6f42c1 0%,#e83e8c 100%);color:#fff;font-size:12px;padding:10px 14px;margin-top:10px;box-shadow:0 2px 8px #6f42c14d}.recording-button.request-song:hover:not(:disabled){background:linear-gradient(135deg,#5a2d91 0%,#d21f7c 100%);transform:translateY(-2px);box-shadow:0 4px 12px #6f42c166}.recording-button:disabled{background:#e9ecef!important;color:#6c757d!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}.recording-active{text-align:center;padding:10px 0}.recording-message{font-size:14px;color:#495057;margin:0 0 12px;font-weight:500}.recorded-song-controls{display:flex;flex-direction:column;gap:8px}.recorded-info{font-size:12px;color:#28a745;margin:0 0 8px;text-align:center;font-weight:500}@media (max-width: 600px){.recording-section{padding:15px}.recording-button{padding:10px 14px;font-size:13px}.recording-button.request-song{font-size:11px;padding:8px 12px}}.practice-instructions{font-size:16px;color:#495057;margin:0 0 15px;text-align:center;line-height:1.4}.practice-instructions strong{color:#007bff;font-weight:600}.practice-controls{display:flex;justify-content:center;margin:15px 0}.practice-check-btn{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #28a7454d}.practice-check-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.practice-check-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.practice-popup-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;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.practice-popup{background:white;border-radius:15px;width:90%;max-width:600px;height:95vh;max-height:95vh;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease-out;display:flex;flex-direction:column;overflow:hidden}.practice-popup-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:2px solid #000;background:white;color:navy;border-radius:15px 15px 0 0}.practice-popup-header h3{margin:0;font-size:18px;color:navy}.practice-close-btn{background:white;border:2px solid #000;color:navy;font-size:28px;cursor:pointer;padding:0;border-radius:4px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.practice-close-btn:hover{background:#f0f0f0;transform:scale(1.1)}.practice-popup-content{padding:25px;text-align:center;flex:1;overflow-y:auto;overflow-x:hidden}.save-form{text-align:left;margin-bottom:15px}.save-form label{display:block;margin-bottom:8px;color:#495057;font-size:15px}.song-input{width:100%;padding:10px 12px;border:2px solid #ddd;border-radius:6px;font-size:15px;box-sizing:border-box;transition:border-color .2s ease;font-family:inherit}.song-input:focus{outline:none;border-color:#4caf50}.song-input::placeholder{color:#aaa}.delete-popup{max-width:600px;max-height:80vh}.delete-songs-list{max-height:400px;overflow-y:auto;border:2px solid #ddd;border-radius:8px;padding:10px;background:#f9f9f9}.delete-song-item{padding:8px;border-bottom:1px solid #e0e0e0}.delete-song-item:last-child{border-bottom:none}.delete-song-label{display:flex;align-items:center;cursor:pointer;gap:12px}.delete-checkbox{width:20px;height:20px;cursor:pointer}.song-name-delete{flex:1;font-weight:500;color:#333;display:flex;align-items:center;gap:8px}.song-difficulty-delete{font-size:13px;color:#666;padding:4px 8px;background:#e0e0e0;border-radius:4px}.custom-badge{background:linear-gradient(135deg,#4CAF50 0%,#45a049 100%);color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.original-badge{background:linear-gradient(135deg,#2196F3 0%,#1976D2 100%);color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.close-recording-btn{background:rgba(220,53,69,.1);border:2px solid #dc3545;color:#dc3545;width:32px;height:32px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.close-recording-btn:hover{background:#dc3545;color:#fff;transform:scale(1.1)}.practice-popup-content p{margin:0 0 15px;color:#495057;font-size:16px;line-height:1.4}.practice-popup-actions{display:flex;gap:15px;margin-top:25px}.practice-start-btn{flex:1;padding:12px 20px;background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 8px #28a7454d}.practice-start-btn:hover{background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.practice-start-btn.reset-btn{background:linear-gradient(135deg,#ff9800 0%,#f57c00 100%);box-shadow:0 2px 8px #ff98004d;font-size:16px;font-weight:600}.practice-start-btn.reset-btn:hover{background:linear-gradient(135deg,#f57c00 0%,#ef6c00 100%);transform:translateY(-2px);box-shadow:0 4px 12px #ff980066}.practice-dismiss-btn{flex:1;padding:12px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease}.practice-dismiss-btn:hover{background:#545b62;transform:translateY(-2px)}.practice-info{background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 100%);border:1px solid #2196f3;border-radius:8px;padding:12px 16px;font-size:14px;color:#1565c0;margin:15px 0!important;font-weight:500;text-align:center}.practice-button-container{display:flex;justify-content:center;margin:20px 0}.practice-main-btn{background:linear-gradient(135deg,#f3e5f5 0%,#e1bee7 100%);color:#7b1fa2;border:2px solid #9c27b0;border-radius:8px;padding:12px 48px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #9c27b04d;min-width:200px}.practice-main-btn:hover:not(:disabled){background:linear-gradient(135deg,#e1bee7 0%,#ce93d8 100%);transform:translateY(-2px);box-shadow:0 4px 12px #9c27b066}.practice-main-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;border-color:#dee2e6;transform:none;box-shadow:none}.check-order-btn{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #28a7454d;min-width:200px}.check-order-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.check-order-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.sheet-button{position:fixed;right:20px;top:calc(50% - 60px);transform:translateY(-50%) rotate(-90deg);transform-origin:right center;background:linear-gradient(135deg,#28a745 0%,#1e7e34 100%);color:#fff;border:none;border-radius:8px 8px 0 0;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:-2px -2px 8px #28a7454d;transition:all .3s ease;z-index:1000;letter-spacing:1px}.sheet-button:hover{background:linear-gradient(135deg,#1e7e34 0%,#155724 100%);box-shadow:-4px -4px 12px #28a74566;transform:translateY(-50%) rotate(-90deg) translateY(-5px)}.feedback-button{position:fixed;right:20px;top:calc(50% + 60px);transform:translateY(-50%) rotate(-90deg);transform-origin:right center;background:linear-gradient(135deg,#007bff 0%,#0056b3 100%);color:#fff;border:none;border-radius:8px 8px 0 0;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:-2px -2px 8px #007bff4d;transition:all .3s ease;z-index:1000;letter-spacing:1px}.feedback-button:hover{background:linear-gradient(135deg,#0056b3 0%,#003d82 100%);box-shadow:-4px -4px 12px #007bff66;transform:translateY(-50%) rotate(-90deg) translateY(-5px)}.screen-awake-button{position:fixed;right:20px;top:calc(50% - 120px);transform:translateY(-50%) rotate(-90deg);transform-origin:right center;background:linear-gradient(135deg,#1e3a8a 0%,#1e40af 100%);color:#fff;border:none;border-radius:8px 8px 0 0;padding:10px 20px;font-size:12px;font-weight:500;cursor:pointer;box-shadow:-2px -2px 8px #1e3a8a4d;transition:all .3s ease;z-index:1000;letter-spacing:.5px}.screen-awake-button.active{background:linear-gradient(135deg,#4CAF50 0%,#45a049 100%);color:#fff;box-shadow:-2px -2px 8px #4caf504d}.screen-awake-button:hover{background:linear-gradient(135deg,#1e40af 0%,#2563eb 100%);box-shadow:-4px -4px 12px #1e3a8a66;transform:translateY(-50%) rotate(-90deg) translateY(-5px)}.screen-awake-button.active:hover{background:linear-gradient(135deg,#45a049 0%,#3d8b40 100%);box-shadow:-4px -4px 12px #4caf5066}@media (max-width: 600px){.practice-instructions{font-size:14px}.practice-check-btn{padding:10px 20px;font-size:14px}.practice-popup{width:95%;margin:10px}.practice-popup-header{padding:15px 20px 10px}.practice-popup-content{padding:20px}.practice-popup-actions{flex-direction:column;gap:10px}.practice-main-btn,.check-order-btn{padding:10px 20px;font-size:14px;min-width:150px}.feedback-button{font-size:12px;padding:10px 18px}.screen-awake-button{font-size:10px;padding:8px 16px}}@keyframes beatPulse{0%{transform:scale(1);box-shadow:0 4px 8px #0003}50%{transform:scale(1.15);box-shadow:0 6px 16px #0000004d}to{transform:scale(1);box-shadow:0 4px 8px #0003}}.metronome-toggle-switch{position:relative;display:inline-block;width:44px;height:24px;margin:0}.metronome-toggle-switch input{opacity:0;width:0;height:0}.metronome-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.metronome-toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.metronome-toggle-switch input:checked+.metronome-toggle-slider{background-color:#28a745}.metronome-toggle-switch input:checked+.metronome-toggle-slider:before{transform:translate(20px)}.sheet-view-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.85);display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sheet-view-container{width:95vw;height:95vh;background:white;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;overflow:hidden}.sheet-view-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:white;color:navy;border-bottom:2px solid #000}.sheet-view-header h2{margin:0;font-size:18px;font-weight:600;color:navy}.sheet-view-close-btn{background:white;border:2px solid #000;color:navy;font-size:28px;width:40px;height:40px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;line-height:1;padding:0}.sheet-view-close-btn:hover{background:#f0f0f0;transform:scale(1.1)}.sheet-view-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;background:#f8f9fa}.sheet-view-content canvas{display:block;margin:0 auto;background:white;border-radius:8px;box-shadow:0 2px 8px #0000001a}.song-library-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.85);display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.song-library-container{width:95vw;height:95vh;background:white;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;overflow:hidden}.song-library-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:white;color:navy;border-bottom:2px solid #000}.song-library-header h2{margin:0;font-size:18px;font-weight:600;color:navy}.song-library-close-btn{background:white;border:2px solid #000;color:navy;font-size:28px;width:40px;height:40px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;line-height:1;padding:0}.song-library-close-btn:hover{background:#f0f0f0;transform:scale(1.1)}.song-library-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:30px;background:#f8f9fa}@keyframes highlightPulse{0%{border-color:#4caf50;box-shadow:0 0 #4caf50b3;background-color:#e8f5e9}50%{border-color:#2e7d32;box-shadow:0 0 15px 5px #4caf5066;background-color:#c8e6c9}to{border-color:#4caf50;box-shadow:0 0 #4caf5000;background-color:#e8f5e9}}.current-song-highlight{animation:highlightPulse 2s ease-in-out forwards;border:3px solid #4CAF50!important}@media (max-width: 600px){.main-content{padding:10px!important}.weather-canvas-container{margin-bottom:10px}.key{width:16px!important;height:100px!important;font-size:6px!important}.key.black-key{width:12px!important;height:70px!important}button{white-space:normal;line-height:1.3}.recording-section{padding:12px!important}.main-content h3,.main-content h4{font-size:13px!important}.main-content p{font-size:12px!important}.controls-toggle{width:100%!important;padding:8px 12px!important;font-size:12px!important;margin-bottom:6px!important}button{min-height:44px;padding:10px 14px!important}}@media (min-width: 600px) and (max-width: 900px){.weather-canvas-container{max-width:700px;margin:0 auto}.main-content{padding:15px!important}}@media (max-width: 900px) and (orientation: landscape){.keyboard-container{margin-top:12px;margin-bottom:12px}.key{width:22px!important;height:140px!important;font-size:8px!important}.key.black-key{width:15px!important;height:90px!important}}@media (max-width: 600px) and (orientation: portrait){.main-content{min-height:calc(100vh - 100px)}.keyboard{height:auto;gap:0;margin:0!important;padding:0!important;position:relative}.key{width:32px!important;height:150px!important;font-size:10px!important;margin:0!important;padding:0 0 2px!important;border-width:1px!important;border-radius:0!important;box-shadow:none!important}.key:hover{box-shadow:none!important}.key.black-key{width:19px!important;height:95px!important;top:0!important;margin:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}.key.black-key:hover{box-shadow:none!important}}@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px){.home-page{min-height:100vh;width:100vw;overflow-x:hidden;display:flex;flex-direction:column}.home-main-content{flex:1;flex-direction:row;gap:10px;padding:10px 12px;width:100%;max-width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.home-logo-section{flex:0 0 auto;min-width:150px;width:150px;display:flex;align-items:center;justify-content:center}.home-piano-heading{font-size:1.2rem;margin-bottom:8px}.home-piano-cta-btn{padding:8px 15px;font-size:.8rem}.home-platforms-section{flex:1;width:auto;display:flex;align-items:center;justify-content:center}.platforms-grid{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.platform-box{padding:8px;width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center}.platform-text{font-size:.75rem;margin:3px 0;text-align:center}.qr-code{width:70px;height:70px;margin:5px auto}.home-getting-started{padding:8px 12px;width:100%;box-sizing:border-box;text-align:center}.home-getting-started h3{font-size:.8rem;margin:0}.getting-started-content{margin-top:8px;padding:6px;max-height:200px;overflow-y:auto}.getting-started-content h2{font-size:.95rem;margin:6px 0 3px}.getting-started-content h3{font-size:.8rem;margin:5px 0 2px}.getting-started-content p,.getting-started-content li{font-size:.65rem}.home-footer{padding:8px 12px;width:100%;box-sizing:border-box;margin-top:auto}.footer-content{flex-wrap:wrap;gap:5px;width:100%;justify-content:center;align-items:center}.footer-content p{font-size:.65rem;margin:0}.footer-buttons{gap:4px;display:flex}.footer-btn{padding:4px 8px;font-size:.65rem}}@media (max-width: 900px){.piano-container{padding:8px}button{min-height:40px}.current-song-highlight p{font-size:11px;line-height:1.4}}@media (max-width: 480px){.piano-controls-header{gap:6px!important;padding:6px 10px!important}.header-control-btn{padding:8px 10px!important;min-width:40px!important;font-size:16px!important;height:auto!important}.button-text{display:none}.fullscreen-button,.clear-storage-btn{display:none!important}.back-button{padding:8px 10px!important;min-width:36px!important;height:auto!important}.dropdown-btn{padding:8px!important;min-width:36px!important;height:auto!important;font-size:18px!important}.logo-component{max-width:60px;font-size:12px}}@media (max-width: 360px){.piano-controls-header{gap:4px!important;padding:6px 8px!important}.header-control-btn{padding:6px 8px!important;min-width:36px!important;font-size:14px!important}.back-button{padding:6px 8px!important;min-width:32px!important}.reset-btn{display:none!important}.logo-component{max-width:50px;font-size:11px}}.mobile-landscape-canvas-fullscreen{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;z-index:0!important;margin:0!important;padding:0!important;border:none!important;display:block!important;background:#87CEEB!important;overflow:hidden!important}.mobile-landscape-canvas-fullscreen .weather-canvas-container{width:100vw!important;height:100vh!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important;overflow:hidden!important}.mobile-landscape-canvas-fullscreen canvas{width:100%!important;height:100%!important;display:block!important;border:none!important;border-radius:0!important}.mobile-landscape-hud-header{position:fixed;top:0;left:0;right:0;height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(255,255,255,.7);font-family:Cormorant Garamond,serif}.hud-icon-btn{width:36px;height:36px;border-radius:50%;border:none;background-color:#ffffff4d;color:#000;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s ease}.hud-icon-btn:hover{background-color:#ffffff80}.hud-menu-btn{width:36px;height:36px;border-radius:4px;border:none;background-color:#ffffff4d;color:#000;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;font-family:Cormorant Garamond,serif;transition:all .2s ease}.hud-menu-btn:hover{background-color:#ffffff80}.hud-song-title{color:#000;font-size:14px;font-weight:600;font-family:Cormorant Garamond,serif;text-shadow:none;margin:0}.hud-bpm{color:#000;font-size:12px;font-family:Cormorant Garamond,serif;text-shadow:none;margin:0 0 0 8px}.mobile-landscape-keyboard-wrapper{position:fixed!important;bottom:0!important;left:0!important;right:0!important;height:auto!important;padding:8px 0!important;background-color:#fffffff2!important;z-index:150!important;border-top:1px solid rgba(0,0,0,.1)!important;width:100vw!important;display:flex!important;justify-content:center!important;overflow-x:auto!important}.mobile-landscape-keyboard-wrapper .key{background:rgba(255,255,255,.9)!important;width:28px!important;min-height:120px!important}.hud-octave-arrow{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:100%;display:flex;align-items:center;justify-content:center;color:#00000040;font-size:20px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.hud-octave-arrow:hover{color:#0006}.hud-octave-arrow.left{left:0}.hud-octave-arrow.right{right:0}.mobile-landscape-container{background:transparent!important;padding:0!important}.mobile-landscape-main{background:transparent!important;padding:0!important;margin-top:50px!important;margin-bottom:0!important}.mobile-landscape-hide{display:none!important}.play-dropdown-container.mobile-landscape-dropdown{position:relative!important;z-index:1001!important;display:inline-block!important;overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important}.play-dropdown-container.mobile-landscape-dropdown .dropdown-btn{padding:8px!important;min-width:40px!important;font-size:20px!important;height:auto!important;min-height:40px;display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer!important;pointer-events:auto!important}.play-dropdown-container.mobile-landscape-dropdown .play-dropdown-menu{position:fixed!important;top:50px!important;left:auto!important;right:12px!important;max-width:calc(100vw - 24px)!important;min-width:200px!important;max-height:calc(100vh - 100px)!important;overflow-y:auto!important;z-index:99999!important;margin-top:0!important;box-shadow:0 8px 16px #0003!important;background:white!important;border:2px solid #ddd!important;border-radius:8px!important;display:block!important;visibility:visible!important;opacity:1!important}.microphone-control-button{position:fixed;right:20px;top:calc(50% + 200px);transform:translateY(-50%) rotate(-90deg);transform-origin:right center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:8px 8px 0 0;padding:10px 20px;font-size:12px;font-weight:600;cursor:pointer;box-shadow:-2px -2px 8px #667eea4d;transition:all .3s ease;z-index:200;letter-spacing:1px}.microphone-control-button:hover:not(:disabled){background:linear-gradient(135deg,#764ba2 0%,#667eea 100%);box-shadow:-4px -4px 12px #667eea66;transform:translateY(-50%) rotate(-90deg) translateY(-5px)}.microphone-control-button.paused{background:linear-gradient(135deg,#6c757d 0%,#5a6268 100%);box-shadow:-2px -2px 8px #6c757d4d}.microphone-control-button.paused:hover{background:linear-gradient(135deg,#5a6268 0%,#495057 100%);box-shadow:-4px -4px 12px #6c757d66;transform:translateY(-50%) rotate(-90deg) translateY(-5px)}.microphone-control-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px){.microphone-control-button{right:8px;top:50%;padding:8px 16px;font-size:11px;z-index:1002}}body.mobile-landscape,body.mobile-landscape html{overflow:hidden!important}body.mobile-landscape #root{overflow:hidden!important;height:100vh!important}
