@import "https://fonts.googleapis.com/css2?family=Russo+One&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;margin:0;font-family:Russo One,sans-serif;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root,.App{width:100%;min-height:100vh}.tutorial-overlay{z-index:3000;touch-action:pan-y;width:100%;height:100%;position:fixed;top:0;left:0}.tutorial-backdrop{cursor:default;appearance:none;background:#000000b3;border:none;outline:none;width:100%;height:100%;margin:0;padding:0;position:fixed;top:0;left:0}.tutorial-spotlight{pointer-events:none;z-index:3001;border:2px solid #ffffff80;border-radius:8px;transition:top .35s,left .35s,width .35s,height .35s;position:fixed;box-shadow:0 0 0 9999px #000000b3}.tutorial-tooltip{z-index:3002;background:#fff;border:2px solid #333;border-radius:12px;width:320px;padding:20px;position:fixed;box-shadow:0 8px 32px #00000040}.tutorial-tooltip-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.tutorial-tooltip-title{color:#333;margin:0;font-family:Russo One,sans-serif;font-size:1.1rem;font-weight:400}.tutorial-close-btn{cursor:pointer;color:#999;background:0 0;border:none;padding:0 4px;font-family:Russo One,sans-serif;font-size:18px;line-height:1;transition:color .2s}.tutorial-close-btn:hover{color:#333}.tutorial-tooltip-desc{color:#555;margin:0 0 16px;font-family:Russo One,sans-serif;font-size:.9rem;font-weight:400;line-height:1.5}.tutorial-tooltip-footer{justify-content:space-between;align-items:center;display:flex}.tutorial-step-dots{align-items:center;gap:6px;display:flex}.tutorial-dot{background:#ddd;border-radius:50%;width:8px;height:8px;transition:all .3s}.tutorial-dot.active{background:#333;transform:scale(1.3)}.tutorial-dot.completed{background:#888}.tutorial-nav-buttons{gap:8px;display:flex}.tutorial-btn{cursor:pointer;border:none;border-radius:20px;padding:8px 16px;font-family:Russo One,sans-serif;font-size:.85rem;font-weight:400;transition:all .2s}.tutorial-btn-next{color:#fff;background:#333}.tutorial-btn-next:hover{background:#555}.tutorial-btn-back{color:#333;background:#e8e8e8}.tutorial-btn-back:hover{background:#d0d0d0}.tutorial-btn-skip{color:#999;background:0 0;padding:8px 12px}.tutorial-btn-skip:hover{color:#333}.tutorial-step-counter{text-align:center;color:#aaa;margin-top:12px;font-family:Russo One,sans-serif;font-size:.75rem;font-weight:400;display:block}.tutorial-swipe-hint{display:none}@media (width<=768px){.tutorial-tooltip{width:calc(100vw - 32px);max-width:none;padding:18px}.tutorial-tooltip-title{font-size:1rem}.tutorial-tooltip-desc{margin-bottom:14px;font-size:.85rem}.tutorial-btn{padding:7px 14px;font-size:.82rem}}@media (width<=600px){.tutorial-tooltip{border-bottom:none;border-radius:16px 16px 0 0;width:100%;max-width:none;padding:20px 20px 24px}.tutorial-spotlight{border-radius:6px}.tutorial-tooltip-footer{flex-direction:column;align-items:stretch;gap:12px}.tutorial-step-dots{justify-content:center;gap:8px}.tutorial-dot{width:8px;height:8px}.tutorial-nav-buttons{justify-content:center;gap:10px}.tutorial-btn{text-align:center;min-width:80px;padding:10px 20px;font-size:.9rem}.tutorial-step-counter{margin-top:8px}.tutorial-swipe-hint{text-align:center;color:#bbb;margin-top:6px;font-family:Russo One,sans-serif;font-size:.7rem;font-weight:400;display:block}}@media (width<=380px){.tutorial-tooltip{padding:16px 14px 20px}.tutorial-tooltip-title{font-size:.95rem}.tutorial-tooltip-desc{margin-bottom:12px;font-size:.8rem;line-height:1.4}.tutorial-btn{min-width:70px;padding:8px 14px;font-size:.82rem}.tutorial-dot{width:6px;height:6px}.tutorial-step-dots{gap:5px}}.geometric-assembly-container{justify-content:center;align-items:center;display:flex;position:relative}.geometric-assembly-loading{background:radial-gradient(#0000000d 0%,#0000 70%);border-radius:20px;width:200px;height:150px;animation:1.5s ease-in-out infinite loading-pulse}@keyframes loading-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.geometric-assembly-stage{position:relative;overflow:visible}.geometric-shape-wrapper{will-change:transform, opacity}.geometric-shape{will-change:transform, filter;cursor:pointer;transition:filter .2s}.geometric-shape:hover{filter:drop-shadow(0 0 20px #0006)}.assembly-completion-glow{pointer-events:none;z-index:-1}.geometric-shape-bar{will-change:transform, box-shadow;cursor:pointer;transition:box-shadow .3s,transform .2s;box-shadow:0 4px 15px #0003}.geometric-shape-bar:hover{transform:translateY(-1px);box-shadow:0 6px 25px #0006}@media (width<=768px){.geometric-assembly-loading{width:160px;height:120px}}@media (width<=480px){.geometric-assembly-loading{width:120px;height:90px}}@media (prefers-color-scheme:dark){.geometric-shape{filter:brightness(1.1)}.assembly-completion-glow{background:radial-gradient(circle,#ffffff1a 0%,#0000 70%)}}.spinner-container{background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 50%,#f1f3f4 100%);flex-direction:column;justify-content:center;align-items:center;height:100vh;display:flex;position:relative;overflow:hidden}.spinner-container:before{content:"";background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='0.03'%3E%3Ccircle cx='30' cy='30' r='1'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");animation:20s linear infinite background-drift;position:absolute;inset:0}@keyframes background-drift{0%{transform:translate(0)translateY(0)}to{transform:translate(-60px)translateY(-60px)}}.spinner-wrapper{justify-content:center;align-items:center;margin-bottom:30px;display:flex;position:relative}.spinner-image{z-index:2;filter:drop-shadow(0 0 20px #ffffff4d);border-radius:50%;width:100px;height:100px;position:relative;box-shadow:0 8px 32px #0000004d}.spinner-glow{z-index:1;background:radial-gradient(circle,#00000014 0%,#0000000a 50%,#0000 70%);border-radius:50%;width:140px;height:140px;animation:2s ease-in-out infinite pulse-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulse-glow{0%,to{opacity:.7;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}}.spinner-text-wrapper{text-align:center;color:#343a40}.spinner-title{-webkit-text-fill-color:transparent;text-shadow:none;letter-spacing:1px;background:linear-gradient(45deg,#343a40,#495057);-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:2.5rem;font-weight:700}.spinner-text{opacity:.8;color:#6c757d;text-shadow:none;margin:0 0 15px;font-size:1.2rem;font-weight:400}.loading-dots{justify-content:center;align-items:center;gap:8px;display:flex}.loading-dots span{color:#6c757d;font-size:2rem;display:inline-block}@media (width<=768px){.spinner-image{width:80px;height:80px}.spinner-glow{width:120px;height:120px}.spinner-title{font-size:2rem}.spinner-text{font-size:1rem}}@media (width<=480px){.spinner-image{width:70px;height:70px}.spinner-glow{width:100px;height:100px}.spinner-title{font-size:1.8rem}.spinner-text{font-size:.9rem}.loading-dots span{font-size:1.5rem}}.spinner-container{animation:.5s ease-out fade-in}@keyframes fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background:#f5f5f5;min-height:100vh;font-family:Russo One,sans-serif}.app-container{background:#f5f5f5;flex-direction:column;align-items:center;max-width:1200px;min-height:100vh;margin:0 auto;padding:30px 20px;display:flex}.app-footer{color:#888;text-align:center;margin-top:40px;font-size:.85rem}.app-header{margin-bottom:30px}.app-title{color:#333;text-align:center;letter-spacing:-2px;text-transform:lowercase;font-family:Russo One,sans-serif;font-size:5rem;font-weight:400}.stats-bar{align-items:center;gap:60px;margin-bottom:40px;display:flex}.stat-item{color:#333;align-items:center;gap:8px;font-family:Russo One,sans-serif;display:flex}.stat-label,.stat-value{font-size:1.1rem;font-weight:400}.controls-row{align-items:center;gap:15px;margin-bottom:40px;display:flex}.difficulty-select{appearance:none;color:#333;cursor:pointer;background-color:#f5f5f5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10' fill='%23333'%3E%3Cpath d='M7 10L0 3L1.4 1.6L7 7.2L12.6 1.6L14 3L7 10Z'/%3E%3C/svg%3E");background-position:right 20px center;background-repeat:no-repeat;background-size:12px 9px;border:2px solid #666;border-radius:25px;outline:none;min-width:140px;padding:12px 48px 12px 24px;font-family:Russo One,sans-serif;font-size:1rem;transition:all .3s}.difficulty-select:hover,.difficulty-select:focus{background-color:#e8e8e8;border-color:#333}.difficulty-select option{color:#333;background:#f5f5f5;font-family:Russo One,sans-serif}.control-button{cursor:pointer;color:#fff;border:none;border-radius:25px;outline:none;min-width:120px;padding:12px 24px;font-family:Russo One,sans-serif;font-size:1rem;font-weight:400;transition:all .3s}.control-button.primary{background:#333}.control-button.primary:hover{background:#555;transform:translateY(-1px)}.control-button.secondary{background:#666}.control-button.secondary:hover{background:#777;transform:translateY(-1px)}.image-selection-container{width:100%;max-width:600px;margin-bottom:40px}.game-main{flex-direction:column;flex:1;align-items:center;width:100%;display:flex}.game-board-container{flex-direction:column;align-items:center;gap:30px;display:flex;position:relative}.preview-panel{text-align:center;background:#fff;border:2px solid #ddd;border-radius:15px;padding:20px;box-shadow:0 4px 20px #0000001a}.preview-image{object-fit:cover;border:2px solid #ddd;border-radius:10px;width:150px;height:150px;margin-bottom:15px}.preview-label{color:#333;font-family:Russo One,sans-serif;font-size:.9rem;font-weight:400}.game-board{background:#ddd;border:3px solid #666;border-radius:15px;gap:6px;padding:20px;display:grid;box-shadow:0 6px 20px #00000026}.tile{box-sizing:border-box;border:2px solid #0000;border-radius:4px;transition:all .2s ease-in-out}.tile.movable{cursor:pointer}.tile.movable:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.tile.correct-position{border:2px solid #28a745!important}.tile.hint-tile{z-index:20;animation:1.5s infinite pulse-hint}.tile.non-pattern-tile{opacity:.85}.tile.non-pattern-correct{border:2px solid #95a5a6!important}@keyframes pulse-hint{0%,to{box-shadow:0 0 10px #f39c1266}50%{box-shadow:0 0 20px #f39c12cc}}.empty-tile{background-color:#f8f9fa;border:2px solid red;border-radius:4px}.puzzle-progress{text-align:center;background:#ffffffe6;border-radius:8px;margin-bottom:15px;padding:10px;box-shadow:0 2px 8px #0000001a}.progress-info{color:#2c3e50;justify-content:center;align-items:center;gap:20px;font-weight:600;display:flex}.almost-complete{color:#e67e22;font-weight:700;animation:2s infinite pulse}.game-controls{justify-content:center;gap:10px;margin-bottom:20px;display:flex}.hint-button{color:#fff;background:linear-gradient(135deg,#f39c12,#e67e22)}.hint-button:hover:not(:disabled){background:linear-gradient(135deg,#e67e22,#d35400);transform:translateY(-2px)}.hint-button:disabled{cursor:not-allowed;background:#bdc3c7}.new-game-button{color:#fff;background:linear-gradient(135deg,#3498db,#2980b9)}.new-game-button:hover{background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-2px)}.hint-overlay{color:#fff;z-index:1000;background:#000000e6;border-radius:25px;padding:15px 25px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.hint-content{align-items:center;gap:10px;font-weight:600;display:flex}.hint-icon{font-size:18px}.pattern-info{color:#7f8c8d;font-size:12px;font-style:italic}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.victory-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.victory-card{text-align:center;background:#fff;border:3px solid #333;border-radius:12px;width:90vw;max-width:400px;padding:32px;position:relative;box-shadow:0 8px 32px #0000004d}.victory-close-btn{cursor:pointer;color:#666;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:24px;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.victory-close-btn:hover{color:#333;background:#f0f0f0}.victory-icon{margin-bottom:20px;font-size:3rem}.victory-card h2{color:#333;margin-bottom:15px;font-family:Russo One,sans-serif;font-size:1.5rem;font-weight:400}.victory-card p{color:#666;margin-bottom:20px;font-family:Russo One,sans-serif;font-size:1rem}.victory-stats{color:#333;font-family:Russo One,sans-serif;font-size:1.1rem;font-weight:400}.victory-symbol-name{color:#4a5568;margin:8px 0 4px;font-size:1.1rem;font-weight:600}.victory-meaning{color:#6c757d;margin:0 0 16px;font-size:.9rem;font-style:italic}.victory-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.victory-btn{cursor:pointer;border:none;border-radius:8px;min-width:120px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .2s}.victory-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.victory-btn-primary{color:#fff;background:#007bff}.victory-btn-primary:hover{background:#0056b3}.victory-btn-secondary{color:#fff;background:#6c757d}.victory-btn-secondary:hover{background:#545b62}.no-image-state{text-align:center;color:#666;padding:80px 20px;font-family:Russo One,sans-serif}.placeholder-icon{color:#ccc;margin-bottom:20px;font-size:4rem}.no-image-state p{font-family:Russo One,sans-serif;font-size:1.1rem}.loading-container,.loading-game{color:#666;flex-direction:column;justify-content:center;align-items:center;min-height:200px;font-family:Russo One,sans-serif;display:flex}.loading-spinner{border:4px solid #ddd;border-top-color:#333;border-radius:50%;width:50px;height:50px;margin-bottom:20px}.loading-spinner.small{border-width:3px;width:30px;height:30px;margin-bottom:15px}.loading-container p,.loading-game p{font-family:Russo One,sans-serif;font-size:1rem}.celebration-banner{color:#fff;z-index:1001;background:#4caf50;border:2px solid #2e7d32;border-radius:25px;padding:15px 30px;font-family:Russo One,sans-serif;font-weight:400;position:fixed;top:30px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #4caf5066}.preview-panel{background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:20px;padding:20px;box-shadow:0 2px 8px #0000001a}.preview-content{align-items:flex-start;gap:20px;display:flex}.preview-info{flex:1;min-width:0}.preview-title{color:#333;border-bottom:2px solid #f0f0f0;margin:0 0 16px;padding-bottom:8px;font-size:1.4rem;font-weight:600}.symbol-details{margin-bottom:20px}.detail-section{margin-bottom:10px;line-height:1.5;display:block}.detail-label{color:#555;min-width:90px;font-weight:600;display:inline-block}.detail-text{color:#666;margin-left:8px}.cultural-context{background:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;padding:16px}.context-title{color:#333;margin:0 0 8px;font-size:1rem;font-weight:600}.context-text{color:#666;margin:0;font-size:.9rem;line-height:1.5}.control-button:focus,.difficulty-select:focus{outline-offset:2px;outline:2px solid #333}.app-container,.app-container *{font-family:Russo One,sans-serif!important}.app-container *{font-weight:400!important}@media (width<=768px){.app-container{padding:20px 15px}.app-title{font-size:3rem}.stats-bar{gap:40px}.stat-label,.stat-value{font-size:1rem}.controls-row{flex-wrap:wrap;justify-content:center;gap:10px}.control-button,.difficulty-select{background-position:right 16px center;min-width:100px;padding:10px 40px 10px 20px;font-size:.9rem}.game-board{gap:4px;padding:15px}.victory-card{margin:20px;padding:30px 20px}.preview-content{text-align:center;flex-direction:column}.preview-image{align-self:center;width:120px;height:120px}.preview-info{text-align:left}.detail-section{flex-direction:column;gap:4px;display:flex}.detail-label{min-width:auto;font-size:.9rem}.detail-text{margin-left:0;font-size:.9rem}}@media (width<=480px){.app-title{font-size:2.5rem}.stats-bar{gap:30px}.stat-label,.stat-value{font-size:.9rem}.game-board{gap:3px;padding:12px}.preview-image{width:120px;height:120px}.controls-row{gap:8px}.control-button,.difficulty-select{min-width:90px;padding:8px 16px;font-size:.8rem}.victory-card{padding:24px 16px}.victory-actions{flex-direction:column;gap:8px}.victory-btn{width:100%;min-width:unset}}.control-button:disabled:hover{background:inherit!important;transform:none!important}.pause-indicator{color:#e67e22;margin-left:8px;font-size:.9em;font-weight:700}select:disabled,button:disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}select:disabled:hover,button:disabled:hover{background:inherit!important;box-shadow:none!important;transform:none!important}.game-board.paused{opacity:.3;filter:blur(2px);pointer-events:none;transition:all .3s}.game-board.paused .tile{cursor:not-allowed!important}.game-board.paused .tile:hover{box-shadow:none!important;transform:none!important}.pause-game-overlay{z-index:100;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pause-game-content{text-align:center;background:#fff;border:3px solid #333;border-radius:12px;max-width:250px;padding:30px;box-shadow:0 8px 32px #0000004d}.pause-game-icon{margin-bottom:15px;font-size:2.5rem}.pause-game-content h3{color:#333;margin-bottom:10px;font-family:Russo One,sans-serif;font-size:1.3rem;font-weight:400}.pause-game-content p{color:#666;margin:0;font-family:Russo One,sans-serif;font-size:.9rem}.image-dropdown.disabled select{cursor:not-allowed;background-color:#f5f5f5}@media (width<=480px){.pause-game-content{max-width:200px;margin:0 20px;padding:20px}.pause-game-icon{margin-bottom:12px;font-size:2rem}.pause-game-content h3{margin-bottom:8px;font-size:1.1rem}.pause-game-content p{font-size:.8rem}}@keyframes pauseBlur{0%{opacity:1;filter:blur()}to{opacity:.3;filter:blur(2px)}}.game-board.paused{animation:.3s forwards pauseBlur}.image-dropdown-container{width:100%;position:relative}.big-dropdown{width:100%;max-width:100%}.image-dropdown-trigger{cursor:pointer;color:#333;background:#f5f5f5;border:2px solid #666;border-radius:25px;justify-content:space-between;align-items:center;min-height:50px;padding:12px 24px;font-family:Russo One,sans-serif;transition:all .3s;display:flex}.image-dropdown-trigger:hover{background:#e8e8e8;border-color:#333;transform:translateY(-1px)}.image-dropdown-trigger.open{background:#e8e8e8;border-color:#333;border-bottom-right-radius:8px;border-bottom-left-radius:8px}.selected-display{flex:1;align-items:center;gap:15px;display:flex}.selected-thumbnail{object-fit:cover;border:2px solid #666;border-radius:6px;width:35px;height:35px}.selected-info{flex-direction:column;min-width:0;display:flex}.selected-name{color:#333;margin-bottom:2px;font-family:Russo One,sans-serif;font-size:.9rem;font-weight:400;line-height:1.3}.selected-meta{align-items:center;gap:8px;display:flex}.selected-category{color:#666;text-transform:capitalize;font-family:Russo One,sans-serif;font-size:.8rem;font-weight:400}.selected-difficulty{color:#999;text-transform:uppercase;font-family:Russo One,sans-serif;font-size:.7rem;font-weight:400}.placeholder-content{color:#666;align-items:center;gap:15px;display:flex}.placeholder-icon{font-size:20px}.placeholder-text{flex-direction:column;display:flex}.placeholder-main{color:#666;font-family:Russo One,sans-serif;font-size:.9rem;font-weight:400}.placeholder-sub{color:#999;margin-top:2px;font-family:Russo One,sans-serif;font-size:.8rem;font-weight:400}.dropdown-arrow{color:#666;margin-left:15px;transition:all .3s}.dropdown-arrow.open{color:#333;transform:rotate(180deg)}.image-dropdown-menu{z-index:1000;background:#fff;border:2px solid #333;border-top:none;border-radius:0 0 15px 15px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 8px 25px #00000026}.big-aligned-menu{width:100%;max-height:500px;left:0;right:0;transform:none}.dropdown-header{background:#f8f8f8;border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;padding:15px 20px;display:flex}.big-header{padding:18px 25px}.header-left{flex-direction:column;gap:4px;display:flex}.header-text{color:#333;font-family:Russo One,sans-serif;font-size:.9rem;font-weight:400}.grid-info{color:#666;font-family:Russo One,sans-serif;font-size:.8rem;font-style:normal;font-weight:400}.close-button{color:#666;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:6px;transition:all .3s;display:flex}.close-button:hover{color:#333;background-color:#e8e8e8}.image-grid-container{background:#fff;gap:12px;max-height:350px;padding:20px;display:grid;overflow-y:auto}.big-grid-container{gap:15px;max-height:420px;padding:25px}.grid-image-option{cursor:pointer;background:#fff;border:2px solid #ddd;border-radius:8px;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000001a}.big-option{border:2px solid #666;width:90px;min-width:90px}.grid-image-option:hover{border-color:#333;transform:translateY(-2px);box-shadow:0 4px 15px #0003}.grid-image-option.selected{border:3px solid #333;transform:translateY(-2px)scale(1.05);box-shadow:0 6px 20px #00000040}.grid-image-wrapper{width:100%;padding-bottom:100%;position:relative;overflow:hidden}.big-wrapper{border-radius:8px}.grid-option-image{object-fit:cover;width:100%;height:100%;transition:transform .3s;position:absolute;top:0;left:0}.grid-image-option:hover .grid-option-image{transform:scale(1.1)}.selected-overlay{z-index:2;background:#333c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.selected-check{color:#333;background:#fff;border:2px solid #333;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:400;display:flex;box-shadow:0 2px 8px #0003}.big-check{width:32px;height:32px;font-size:16px}.image-hover-info{color:#fff;z-index:1;background:linear-gradient(#0000,#000c);padding:20px 8px 8px;transition:transform .3s;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.big-info{padding:25px 10px 10px}.grid-image-option:hover .image-hover-info{transform:translateY(0)}.hover-name{text-align:center;margin-bottom:2px;font-family:Russo One,sans-serif;font-size:.75rem;font-weight:400;line-height:1.2}.hover-category{opacity:.9;text-transform:capitalize;text-align:center;font-family:Russo One,sans-serif;font-size:.65rem;font-weight:400}.difficulty-indicator{color:#fff;z-index:3;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-family:Russo One,sans-serif;font-size:9px;font-weight:400;display:flex;position:absolute;top:4px;right:4px;box-shadow:0 2px 6px #0000004d}.big-indicator{width:20px;height:20px;font-size:10px}.empty-grid-state{text-align:center;color:#666;grid-column:1/-1;padding:60px 20px;font-family:Russo One,sans-serif}.big-empty{padding:80px 30px}.empty-icon{margin-bottom:15px;font-size:32px}.big-empty .empty-icon{font-size:40px}.empty-grid-state p{font-family:Russo One,sans-serif;font-weight:400}.big-grid-container::-webkit-scrollbar{width:8px}.big-grid-container::-webkit-scrollbar-track{background:#f5f5f5;border-radius:4px}.big-grid-container::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.big-grid-container::-webkit-scrollbar-thumb:hover{background:#aaa}@media (width<=768px){.image-dropdown-trigger{min-height:45px;padding:10px 20px}.selected-thumbnail{width:30px;height:30px}.selected-name{font-size:.8rem}.image-dropdown-menu{max-height:350px}.big-grid-container{gap:12px;max-height:300px;padding:20px;grid-template-columns:repeat(4,1fr)!important}.big-option{width:auto;min-width:unset}}@media (width<=480px){.image-dropdown-trigger{min-height:40px;padding:8px 16px}.selected-thumbnail{width:25px;height:25px}.selected-name{font-size:.75rem}.big-grid-container{gap:10px;max-height:280px;padding:15px;grid-template-columns:repeat(3,1fr)!important}.placeholder-icon{font-size:16px}.placeholder-main{font-size:.8rem}}.image-dropdown-trigger:focus,.grid-image-option:focus{outline-offset:2px;outline:2px solid #333}.image-dropdown-container,.image-dropdown-container *{font-family:Russo One,sans-serif!important}.image-dropdown-container *{font-weight:400!important}.image-dropdown.disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.image-dropdown.disabled select{cursor:not-allowed;color:#999;background-color:#f5f5f5;border-color:#ddd}.image-dropdown.disabled select:hover{background-color:#f5f5f5;border-color:#ddd;transform:none}.image-dropdown.disabled select:focus{box-shadow:none;outline:none}.image-dropdown.disabled:after{opacity:.5}.image-dropdown.disabled option{color:#999;background-color:#f5f5f5}.hint-modal-overlay{cursor:pointer;-webkit-backdrop-filter:blur(5px);background-color:#00000080;z-index:9999!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;display:flex!important;position:fixed!important;inset:0!important;transform:none!important}.hint-modal-content{cursor:default;box-sizing:border-box!important;background:#fff!important;border:1px solid #e0e0e0!important;border-radius:16px!important;width:min(90vw,600px)!important;max-width:90vw!important;max-height:min(85vh,700px)!important;margin:0!important;padding:24px!important;position:relative!important;overflow:auto!important;transform:none!important;box-shadow:0 8px 32px #00000026!important}.hint-modal-header{text-align:center;margin-bottom:24px}.hint-modal-header h3{color:#333;margin:0 0 8px;font-size:24px;font-style:normal;font-weight:600}.hint-modal-header p{color:#666;margin:0 0 16px;font-size:14px;font-style:normal}.content-wrapper{align-items:flex-start;gap:24px;display:flex}.puzzle-preview{flex-shrink:0}.hint-solution-board{box-sizing:border-box!important;background:#f0f0f0!important;border:2px solid #d0d0d0!important;border-radius:8px!important;gap:2px!important;width:fit-content!important;max-width:calc(100% - 20px)!important;margin:0 auto!important;padding:12px!important;display:grid!important}.hint-solution-board:hover{border-color:#4caf50;box-shadow:0 0 12px #4caf504d}.hint-solution-tile{transition:all .2s;box-sizing:border-box!important;background-repeat:no-repeat!important;border:1px solid #e0e0e0!important;border-radius:3px!important;box-shadow:0 1px 3px #0000001a!important}.hint-solution-tile:hover{transform:scale(1.02);box-shadow:0 2px 8px #00000026!important}.hint-solution-tile.hint-pattern-tile{opacity:1;border:2px solid #4caf50!important;box-shadow:0 1px 3px #0000001a,0 0 0 1px #4caf504d!important}.hint-solution-tile.hint-non-pattern-tile{opacity:.8;filter:grayscale(20%);border:1px solid #e0e0e0!important}.hint-solution-empty-tile{box-sizing:border-box!important;background:#fff!important;border:1px solid #e0e0e0!important;border-radius:3px!important;position:relative!important}.pattern-info{flex:1;min-width:200px}.pattern-name{color:#333;text-align:left;margin:0 0 16px;font-size:20px;font-style:normal;font-weight:600}.info-section{margin-bottom:16px}.info-label{color:#666;margin-bottom:4px;font-size:14px;font-style:normal;font-weight:600}.info-value{color:#333;font-size:14px;font-style:normal;line-height:1.4}.pattern-tiles-info{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;margin-top:8px;padding:16px}.hint-pattern-legend{border-top:1px solid #e0e0e0;flex-direction:column;gap:12px;margin-top:20px;padding-top:16px;font-size:13px;display:flex}.legend-item{align-items:center;gap:8px;display:flex}.hint-legend-item{border-radius:3px;flex-shrink:0;width:16px;height:16px;display:inline-block}.hint-legend-pattern-color{background:#4caf50;border:1px solid #4caf50}.hint-legend-non-pattern-color{background:#fff;border:1px solid #e0e0e0}.legend-text{color:#666;font-style:normal}.control-button.active{color:#fff!important;background-color:#4caf50!important;border-color:#4caf50!important;box-shadow:0 2px 8px #4caf504d!important}.control-button.active:hover{background-color:#45a049!important;box-shadow:0 4px 12px #4caf5066!important}.control-button:disabled{opacity:.5;cursor:not-allowed}.control-button.secondary:not(:disabled):not(.active){position:relative}.control-button.secondary:not(:disabled):not(.active):after{content:"";border-radius:inherit;opacity:0;z-index:-1;background:linear-gradient(45deg,#0000,#4caf504d,#0000);animation:3s ease-in-out infinite hint-available;position:absolute;inset:-2px}@keyframes hint-available{0%,to{opacity:0}50%{opacity:1}}@media (width<=768px){.hint-modal-content{width:95vw!important;max-width:95vw!important;max-height:90vh!important;padding:16px!important}.content-wrapper{gap:16px;flex-direction:column!important;align-items:center!important}.pattern-info{text-align:center;min-width:auto}.pattern-name{text-align:center}.hint-solution-board{margin-bottom:16px;gap:1px!important;max-width:calc(100% - 32px)!important;padding:10px!important}.hint-modal-header h3{font-size:20px}.hint-modal-header p{font-size:13px}}@media (width<=480px){.hint-modal-content{width:98vw!important;max-width:98vw!important;max-height:95vh!important;padding:12px!important}.content-wrapper{gap:12px}.hint-solution-board{gap:1px!important;max-width:calc(100% - 24px)!important;padding:8px!important}.hint-modal-header h3{font-size:18px}.hint-pattern-legend{gap:10px;font-size:12px}.hint-legend-item{width:14px;height:14px}}.App{flex-direction:column;width:100%;min-height:100vh;display:flex}.loading-screen{z-index:9999;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 50%,#f1f3f4 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.main-content{width:100%;min-height:100vh}.loading-progress{text-align:center;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.loading-status{color:#6c757d;opacity:.8;margin:0;font-size:.9rem}.hint-message{margin-bottom:16px}@media (width<=768px){.loading-progress{bottom:60px}}
