{"version":3,"file":"static/css/main.7fb28991.css","mappings":"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","sources":["style.css"],"sourcesContent":["body {\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n      'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n      sans-serif;\n    margin: 0;\n    padding: 0;\n    background-color: #1a1a1a;\n    color: #e0e0e0;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    min-height: 100vh;\n    text-align: center;\n}\n\n#app-container {\n    padding: 20px;\n    border-radius: 10px;\n    background-color: #282c34;\n}\n\nh1 {\n    color: #61dafb;\n}\n\ncanvas {\n    border: 2px solid #61dafb;\n    border-radius: 8px;\n    margin-top: 20px;\n    cursor: crosshair;\n}\n\n.controls {\n    margin-top: 20px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 15px;\n}\n\n.control-group {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n}\n\nlabel {\n    font-size: 16px;\n    width: 120px;\n    text-align: right;\n}\n\ninput[type=\"range\"] {\n    width: 250px;\n}\n\ninput[type=\"checkbox\"] {\n    width: 20px;\n    height: 20px;\n}\n\nselect, button {\n    font-size: 16px;\n    padding: 8px;\n    border-radius: 5px;\n    border: 1px solid #61dafb;\n    background-color: #20232a;\n    color: #e0e0e0;\n    cursor: pointer;\n}\n\n/* Palette UI Overlay Styles */\n.ui-overlay {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100vw;\n    height: 100vh;\n    background-color: rgba(0, 0, 0, 0.7);\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    z-index: 1000;\n    pointer-events: none;\n    backdrop-filter: blur(4px);\n    opacity: 1;\n    transition: opacity 0.3s ease, backdrop-filter 0.3s ease, visibility 0.3s;\n}\n\n.ui-overlay.hidden {\n    opacity: 0;\n    visibility: hidden;\n    backdrop-filter: blur(0px);\n    pointer-events: none;\n}\n\n.ui-overlay.visible {\n    opacity: 1;\n    visibility: visible;\n    backdrop-filter: blur(4px);\n}\n\n.ui-card {\n    pointer-events: auto;\n    background: rgba(20, 20, 20, 0.9);\n    border: 1px solid #444;\n    padding: 40px 60px;\n    border-radius: 4px;\n    color: #e0e0e0;\n    text-align: center;\n    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);\n    font-family: 'Courier New', Courier, monospace;\n    letter-spacing: 1px;\n}\n\n.ui-card h1 {\n    font-size: 2.5rem;\n    margin: 0 0 10px 0;\n    color: #ffffff;\n    text-transform: uppercase;\n    letter-spacing: 4px;\n}\n\n.start-prompt {\n    font-size: 1.2rem;\n    color: #61dafb;\n    text-transform: uppercase;\n    animation: pulse 2s infinite;\n}\n\n.button-group {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 20px;\n    margin-bottom: 40px;\n}\n\n.restart-button {\n    pointer-events: auto;\n    background: transparent;\n    border: 1px solid #555;\n    color: #888;\n    padding: 8px 16px;\n    font-size: 0.8rem;\n    cursor: pointer;\n    font-family: inherit;\n    transition: all 0.2s ease;\n    text-transform: uppercase;\n    letter-spacing: 2px;\n}\n\n.restart-button:hover {\n    border-color: #e17055;\n    color: #e17055;\n    background: rgba(225, 112, 85, 0.1);\n}\n\n.restart-button:focus-visible {\n    outline: none;\n    border-color: #e17055;\n    background: rgba(225, 112, 85, 0.1);\n}\n\nbutton.start-button {\n    background: transparent;\n    border: 2px solid transparent;\n    font-family: inherit;\n    padding: 10px 20px;\n    cursor: pointer;\n    pointer-events: auto;\n    transition: all 0.2s ease;\n}\n\nbutton.start-button:hover {\n    text-shadow: 0 0 10px rgba(97, 218, 251, 0.5);\n    background: rgba(97, 218, 251, 0.05);\n    border-radius: 4px;\n}\n\nbutton.start-button:focus-visible {\n    outline: none;\n    border-color: #61dafb;\n    border-radius: 4px;\n    background: rgba(97, 218, 251, 0.1);\n}\n\n.controls-section {\n    display: flex;\n    flex-direction: column;\n    gap: 15px;\n    align-items: center;\n    width: 100%;\n}\n\n.control-row {\n    display: flex;\n    align-items: center;\n    gap: 20px;\n    width: 100%;\n    justify-content: space-between;\n}\n\n.keys {\n    display: flex;\n    gap: 5px;\n}\n\n.key {\n    background: linear-gradient(to bottom, #444, #333);\n    border: 1px solid #222;\n    border-bottom: 4px solid #111;\n    border-radius: 4px;\n    padding: 6px 12px;\n    font-size: 1rem;\n    font-weight: bold;\n    color: #e0e0e0;\n    min-width: 20px;\n    display: inline-block;\n    transition: all 0.05s ease;\n    box-shadow: 0 4px 0 rgba(0,0,0,0.4);\n    text-shadow: 0 1px 1px rgba(0,0,0,0.5);\n    position: relative;\n    top: 0;\n}\n\n.key.pressed {\n    border-bottom: 1px solid #111;\n    transform: translateY(3px);\n    box-shadow: 0 1px 0 rgba(0,0,0,0.4);\n    background: #333;\n    color: #61dafb;\n    border-color: #61dafb;\n}\n\n.key-wide {\n    padding: 6px 20px;\n}\n\n.action {\n    font-size: 0.9rem;\n    color: #aaa;\n    text-transform: uppercase;\n}\n\n@keyframes pulse {\n    0% { opacity: 0.6; }\n    50% { opacity: 1; }\n    100% { opacity: 0.6; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n    .start-prompt {\n        animation: none;\n    }\n}\n\n/* Loader Styles */\n.loader-overlay {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100vw;\n    height: 100vh;\n    background-color: #0f0f0f;\n    z-index: 2000;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    font-family: 'Courier New', Courier, monospace;\n    color: #e0e0e0;\n    opacity: 1;\n    transition: opacity 0.5s ease-out;\n}\n\n.loader-overlay.fade-out {\n    opacity: 0;\n    pointer-events: none;\n}\n\n.loader-content {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    width: 400px;\n    max-width: 90%;\n}\n\n.loader-header {\n    font-size: 0.8rem;\n    color: #666;\n    letter-spacing: 2px;\n    margin-bottom: 10px;\n    border-bottom: 1px solid #333;\n    width: 100%;\n    padding-bottom: 5px;\n}\n\n.loader-text {\n    font-size: 1.2rem;\n    font-weight: bold;\n    color: #61dafb;\n    margin-bottom: 15px;\n    letter-spacing: 1px;\n}\n\n.loader-bar {\n    width: 100%;\n    height: 4px;\n    background: #333;\n    margin-bottom: 10px;\n    position: relative;\n    overflow: hidden;\n}\n\n.loader-bar-fill {\n    height: 100%;\n    background: #61dafb;\n    transition: width 0.2s ease-out;\n    box-shadow: 0 0 10px rgba(97, 218, 251, 0.5);\n}\n\n.loader-item {\n    font-size: 0.7rem;\n    color: #888;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    width: 100%;\n    font-style: italic;\n}\n\n/* Crosshair - Palette UX Improvement */\n.crosshair {\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    width: 6px;\n    height: 6px;\n    background-color: rgba(255, 255, 255, 0.8);\n    border-radius: 50%;\n    transform: translate(-50%, -50%);\n    pointer-events: none;\n    z-index: 100;\n    box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);\n    transition: width 0.2s, height 0.2s, background-color 0.2s, opacity 0.2s, visibility 0.2s;\n    opacity: 1;\n    visibility: visible;\n}\n\n.crosshair.hidden {\n    opacity: 0;\n    visibility: hidden;\n}\n\n/* Confirmation Dialog Styles */\n.confirm-group {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 15px;\n    animation: fadeIn 0.3s ease;\n}\n\n.confirm-text {\n    font-size: 1.2rem;\n    color: #e17055;\n    font-weight: bold;\n    letter-spacing: 2px;\n}\n\n.confirm-subtext {\n    font-size: 0.8rem;\n    color: #888;\n    margin-bottom: 5px;\n}\n\n.confirm-buttons {\n    display: flex;\n    gap: 15px;\n}\n\n.confirm-yes, .confirm-no {\n    pointer-events: auto;\n    padding: 8px 20px;\n    font-family: inherit;\n    font-weight: bold;\n    font-size: 0.9rem;\n    cursor: pointer;\n    border: 1px solid transparent;\n    transition: all 0.2s ease;\n    text-transform: uppercase;\n}\n\n.confirm-yes {\n    background: rgba(225, 112, 85, 0.2);\n    border-color: #e17055;\n    color: #e17055;\n}\n\n.confirm-yes:hover, .confirm-yes:focus-visible {\n    background: #e17055;\n    color: #fff;\n    outline: none;\n}\n\n.confirm-no {\n    background: transparent;\n    border-color: #666;\n    color: #888;\n}\n\n.confirm-no:hover, .confirm-no:focus-visible {\n    border-color: #aaa;\n    color: #e0e0e0;\n    outline: none;\n}\n\n@keyframes fadeIn {\n    from { opacity: 0; transform: translateY(-5px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n"],"names":[],"ignoreList":[],"sourceRoot":""}