.puzzle-page{flex-direction:column;max-width:1200px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.controls{flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:clamp(3px,1.2vw,6px);padding:0 clamp(6px,2.5vw,12px) clamp(6px,1.5vw,8px);display:flex}.timer{background-color:var(--surface-2);border-radius:50px;align-items:center;gap:5px;height:clamp(32px,9vw,40px);padding:0 clamp(8px,2.5vw,14px);display:flex;box-shadow:0 2px 10px #0000000d}.timer-text{color:var(--text-color);text-align:center;min-width:clamp(40px,10vw,48px);font-size:clamp(.75rem,2vw,.9rem);font-weight:600}.control-btn{background-color:var(--surface-2);color:var(--text-color);cursor:pointer;border:2px solid #3a3a3a;border-radius:50px;justify-content:center;align-items:center;height:clamp(32px,9vw,40px);padding:0 clamp(8px,2.5vw,14px);font-size:clamp(.7rem,1.9vw,.85rem);font-weight:600;display:flex;position:relative}.control-btn.primary{background-color:var(--primary-color);color:var(--button-text)}.control-btn.disabled,.control-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.to-move-indicator{background-color:var(--surface-2);height:clamp(32px,9vw,40px);color:var(--text-color);border-radius:50px;align-items:center;gap:6px;padding:0 clamp(8px,2.5vw,14px);font-size:clamp(.7rem,1.9vw,.85rem);font-weight:600;display:flex;box-shadow:0 2px 10px #0000000d}.to-move-piece{font-size:1.2rem}.game-area{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;padding:0 8px;display:flex;overflow:hidden}.grid-container{background-color:var(--surface-2);border-radius:15px;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:calc(100vw - 16px);min-height:0;margin:0 auto;padding:10px;display:flex;position:relative;box-shadow:0 2px 10px #0000000d}.checkmate-inline-report-link-wrap{flex-shrink:0;justify-content:center;margin-top:8px;display:flex}.checkmate-inline-report-link{font-size:.82rem}@media (min-width:769px){.puzzle-page:not(.touch-device) .checkmate-inline-report-link-wrap{margin:0;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}}.chess-board{aspect-ratio:1;border:3px solid #3a3a3a;border-radius:8px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);gap:0;width:calc(100vw - 36px);max-width:min(100vw - 36px,600px);margin:0 auto;display:grid;overflow:hidden}.square{cursor:pointer;justify-content:center;align-items:center;width:100%;height:100%;font-size:clamp(1.5rem,10vw,3rem);transition:all .2s;display:flex;position:relative;overflow:hidden}.square.light{background-color:#f0d9b5}.square.dark{background-color:#b58863}.square.selected{background-color:#ffd071!important}.square.valid-move:after{content:"";background-color:#0003;border-radius:50%;width:30%;height:30%;position:absolute}.square.valid-move.has-piece:after{box-sizing:border-box;background-color:#0000;border:4px solid #0000004d;border-radius:50%;width:100%;height:100%}.square.last-move{background-color:#cdd26a!important}@keyframes vibrate-dot{0%,to{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(.9)}75%{transform:scale(1.2)}}@keyframes fade-to-grey{to{background-color:#0003}}.square.error:after{content:"";z-index:1;background-color:#ff0000b3;border-radius:50%;width:30%;height:30%;animation:.5s vibrate-dot,.3s .4s forwards fade-to-grey;position:absolute}.square.checkmate-move{background-color:#90ee90!important}.piece{font-size:inherit;-webkit-user-select:none;user-select:none;z-index:2;pointer-events:none}.square.has-white-piece{cursor:grab}.square.dragging{opacity:.4}body.piece-dragging,body.piece-dragging *{cursor:grabbing!important}.loading-overlay{z-index:10;background-color:#ffffffe6;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.puzzle-page .spinner{border:5px solid var(--border-color);border-top-color:var(--text-color);border-radius:50%;width:50px;height:50px;animation:1s linear infinite checkmate-spin}.loading-text{color:var(--text-muted);margin-top:16px;font-size:.9rem}@keyframes checkmate-spin{to{transform:rotate(360deg)}}.pause-overlay{z-index:20;background-color:#000c;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.pause-overlay.active{display:flex}.pause-content{background-color:var(--surface-2);text-align:center;border-radius:20px;padding:35px}.pause-content h2{color:var(--text-color);margin-bottom:10px;font-size:1.8rem}.pause-content p{color:var(--text-muted);margin-bottom:20px}.completion-modal{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.completion-modal.active{display:flex}.modal-content{background-color:var(--surface-2);text-align:center;border-radius:20px;max-width:400px;margin:0 20px;padding:35px;position:relative;box-shadow:0 5px 30px #0000004d}.modal-close{background-color:var(--surface-3);cursor:pointer;width:30px;height:30px;color:var(--text-muted);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:absolute;top:15px;right:15px}.modal-icon{margin-bottom:10px;font-size:4rem}.modal-title{color:var(--text-color);margin-bottom:15px;font-size:1.8rem;font-weight:700}.modal-time{color:var(--text-color);margin-bottom:20px;font-size:2rem;font-weight:700}.modal-btn{cursor:pointer;background-color:var(--primary-color);width:100%;color:var(--button-text);border:2px solid #3a3a3a;border-radius:50px;padding:12px;font-size:.95rem;font-weight:600}.settings-modal{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.settings-modal.active{display:flex}.settings-content{background-color:var(--surface-2);text-align:center;border-radius:20px;max-width:400px;margin:0 20px;padding:35px;position:relative;box-shadow:0 5px 30px #0000004d}.settings-title{color:var(--text-color);margin-bottom:20px;font-size:1.5rem;font-weight:700}.settings-option{margin-bottom:20px}.settings-label{color:var(--text-muted);margin-bottom:12px;font-size:.9rem;display:block}.color-buttons{justify-content:center;gap:12px;display:flex}.color-btn{border:2px solid var(--border-color);background-color:var(--surface-2);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 24px;transition:all .2s;display:flex}.color-btn:hover{border-color:var(--text-color)}.color-btn.selected{border-color:var(--text-color);background-color:var(--card-background)}.color-btn span:first-child{font-size:2rem}.color-label{color:var(--text-color);font-size:.85rem;font-weight:600}.settings-buttons{gap:12px;margin-top:20px;display:flex}.settings-btn{cursor:pointer;border:2px solid #3a3a3a;border-radius:50px;flex:1;padding:12px;font-size:.9rem;font-weight:600}.settings-btn.secondary{background-color:var(--surface-2);color:var(--text-color)}.settings-btn.primary{background-color:var(--primary-color);color:var(--button-text)}.landscape-overlay{z-index:10000;background-color:#000000f2;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:20px;display:none;position:fixed;inset:0}.landscape-overlay.active{display:flex}.landscape-icon{color:#fff;font-size:80px;animation:2s ease-in-out infinite rotatePhone}@keyframes rotatePhone{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}.landscape-message{color:#fff;text-align:center;max-width:300px;font-size:1.5rem;font-weight:600}.puzzle-page.touch-device .game-area{justify-content:flex-start;padding:0 4px}.puzzle-page.touch-device .grid-container{box-sizing:border-box;flex:1;width:100%;max-width:100%;min-height:0;padding:10px;overflow:hidden}.puzzle-page.touch-device .chess-board{width:min(100%,100dvh - 160px)!important;max-width:100%!important;max-height:none!important}.puzzle-page.touch-device .square{font-size:clamp(1.8rem,10vw,3.5rem)}@media (min-width:769px){.puzzle-page{padding:20px}.controls{gap:15px;padding:0 40px 20px}.control-btn{padding:0 20px;font-size:.9rem}.puzzle-page:not(.touch-device) .game-area{justify-content:flex-start;padding:0 40px}.puzzle-page:not(.touch-device) .grid-container{flex:1;max-width:600px;padding:30px}.puzzle-page:not(.touch-device) .chess-board{width:min(100%,600px);max-width:600px;max-height:70vh}.puzzle-page:not(.touch-device) .square{font-size:clamp(1.5rem,5vmin,3rem)}.landscape-overlay{display:none!important}}.puzzle-page.error-page{justify-content:center;align-items:center;padding:20px}.error-content{text-align:center;flex-direction:column;align-items:center;max-width:400px;display:flex}.puzzle-page .error-icon{color:#d32f2f;margin-bottom:20px}.error-title{color:var(--text-color);margin-bottom:10px;font-size:1.5rem;font-weight:600}.puzzle-page .error-message{color:var(--text-muted);margin-bottom:30px;font-size:1rem;line-height:1.5}.error-back-btn{background-color:var(--primary-color);color:var(--button-text);cursor:pointer;border:none;border-radius:50px;padding:14px 40px;font-size:1rem;font-weight:600;text-decoration:none;transition:background-color .3s}.error-back-btn:hover{background-color:var(--primary-hover)}.error-back-btn.primary{background-color:#4a7c59}.error-back-btn.primary:hover{background-color:#3d6749}.error-buttons{flex-direction:column;gap:12px;width:100%;display:flex}.error-submessage{color:#888;margin-bottom:25px;font-size:.9rem;line-height:1.4}.error-icon.premium-icon{color:#f0a500}