:root{font-family:Fredoka,sans-serif;color:#fff;background:#121212;font-synthesis:none;text-rendering:optimizeLegibility;font-smooth:always;--background: #121212;--panel: #1c1c1c;--text: #ffffff;--muted: #c3c3c3;--line: #4a4a4a;--cell: #4a5568;--cell-hover: #5a6578;--grid-bg: #1a202c;--accent: #2697c5;--success: #286341;--success-border: #61ad7c;--revealed: #505050;--error: #ed7777}*{box-sizing:border-box}html{min-width:320px;background:var(--background)}body{min-width:320px;min-height:100vh;margin:0;background:var(--background);color:var(--text);font-family:Fredoka,sans-serif}button,input{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{display:flex;min-height:100vh;flex-direction:column;overflow:hidden}.site-header{width:100%;border-bottom:1px solid var(--line)}.header-inner{display:flex;width:100%;max-width:100%;min-height:68px;align-items:center;justify-content:space-between;padding:12px 32px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{display:inline-flex;align-items:center;justify-content:center}.brand-name{color:var(--text);font-size:1.7rem;font-weight:600;letter-spacing:.01em}.header-actions{display:flex;align-items:center;gap:14px}.icon-button{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:transparent;color:#dedede;cursor:pointer}.icon-button:hover{background:#292929;color:#fff}.main-content{display:flex;width:100%;max-width:960px;flex:1;flex-direction:column;align-items:center;margin:0 auto;padding:34px 20px 36px}.puzzle-heading{margin-bottom:16px;text-align:center}.puzzle-heading h1{margin:0 0 4px;color:var(--text);font-size:clamp(1.6rem,4vw,2rem);font-weight:500}.puzzle-heading p{margin:0;color:#e5e5e5;font-size:1.1rem}.puzzle-area{display:flex;width:100%;align-items:center;justify-content:center;gap:28px}.puzzle-grid{display:grid;flex:1;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--grid-bg);border-radius:14px;overflow:hidden;padding:3px}.grid-wrapper{display:flex;flex-direction:column;gap:8px;width:min(100%,530px)}.grid-labels-top{display:flex;align-items:flex-start;gap:8px}.grid-corner-spacer{flex:0 0 94px}.grid-column-label{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:0 2px 4px}.grid-body{display:flex;gap:8px;align-items:stretch}.grid-row-labels{display:flex;flex-direction:column;flex:0 0 94px;gap:3px}.grid-row-label{flex:1;display:flex;align-items:center;justify-content:center;padding:0 4px}.tournament-badge{display:flex;align-items:center;gap:6px}.tournament-badge--column{flex-direction:column;text-align:center;width:100%}.tournament-badge--column .tournament-court{width:100px}.tournament-badge--row{flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%}.tournament-badge--row .tournament-court{width:100px}.tournament-court{display:block;height:auto;flex-shrink:0;border-radius:4px;overflow:hidden;box-shadow:0 2px 5px #0006}.tournament-name{color:#fff;font-size:clamp(.66rem,4vw,.82rem);font-weight:500;line-height:1.15;min-height:2.3em;display:flex;align-items:flex-start;justify-content:center;text-align:center;overflow-wrap:anywhere}.grid-cell{display:flex;width:100%;min-width:0;aspect-ratio:1;align-items:center;justify-content:center;padding:7px;border:none;border-radius:0;background:var(--cell);color:#fff;font-size:clamp(.65rem,2.2vw,.9rem);font-weight:500;line-height:1.15;overflow-wrap:anywhere;text-align:center;cursor:pointer}.grid-cell:not(:disabled):hover{background:var(--cell-hover)}.grid-cell:disabled{cursor:default}.grid-cell--solved{border-color:var(--success-border);background:var(--success)}.grid-cell--revealed{border-color:#696969;background:var(--revealed)}.attempts-counter{min-width:76px;text-align:center}.attempts-label{display:block;margin-bottom:2px;color:var(--muted);font-size:.85rem}.attempts-value{display:block;color:#fff;font-size:2rem;font-weight:500}.game-message{display:flex;min-height:42px;align-items:center;justify-content:center;padding:0 12px;text-align:center}.game-feedback{margin:8px 0;font-size:.98rem}.game-feedback--success{color:#9bdaa9}.game-feedback--error{color:var(--error)}.game-feedback--neutral{color:var(--muted)}.action-buttons-section,.give-up-section{display:flex;width:100%;justify-content:center;align-items:center;padding:8px 0 0}.game-controls{display:flex;align-items:center;gap:12px}.give-up-button{min-width:120px;padding:10px 20px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.give-up-button:hover{background:#2a2a2a;color:#fff;border-color:#666}.new-game-button{min-width:120px;padding:10px 20px;border:0;border-radius:8px;background:#2697c5;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s ease}.new-game-button:hover{background:#1e7ba2}.new-game-main-button{min-width:190px;padding:12px 28px;border:0;border-radius:8px;background:#2697c5;color:#fff;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s ease}.new-game-main-button:hover{background:#1e7ba2}.site-footer{border-top:1px solid var(--line);display:flex;width:100%;flex-direction:column;align-items:center;gap:12px;padding:22px 16px 28px;color:var(--muted);font-size:.92rem}.footer-socials{display:flex;align-items:center;gap:24px}.footer-socials a{display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,transform .15s ease;color:var(--muted);text-decoration:none}.footer-socials a:hover{transform:translateY(-1px);color:#fff}.footer-privacy{color:var(--muted)}.modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:18px;background:#080808}.modal-panel{width:min(100%,470px);max-height:calc(100vh - 36px);overflow-y:auto;padding:21px 22px 24px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 18px 44px #000}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-header h2{margin:0;font-size:1.55rem;font-weight:500}.modal-close{display:inline-flex;width:36px;height:36px;flex:0 0 auto;align-items:center;justify-content:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.modal-close:hover{background:#303030;color:#fff}.modal-content{color:#eee}.how-to-preview{display:flex;flex-direction:column;align-items:center;margin:0 0 1.2rem;background:transparent}.preview-grid-wrapper{display:flex;flex-direction:column;gap:6px;width:min(100%,310px);background:transparent}.preview-labels-top{display:flex;align-items:flex-start;gap:6px}.preview-corner-spacer{flex:0 0 68px}.preview-column-label{flex:1;display:flex;align-items:flex-start;justify-content:center}.preview-column-label .tournament-court,.preview-row-label .tournament-court{width:52px}.preview-column-label .tournament-name,.preview-row-label .tournament-name{font-size:.65rem;min-height:auto}.preview-body{display:flex;gap:6px;align-items:stretch}.preview-row-labels{display:flex;flex-direction:column;flex:0 0 68px;gap:4px}.preview-row-label{flex:1;display:flex;align-items:center;justify-content:center}.preview-cells{flex:1;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:4px;background:transparent}.preview-cell{aspect-ratio:1;font-size:.72rem;font-weight:600;padding:4px;text-align:center;border-radius:4px}.preview-cell--target{font-size:1.15rem;font-weight:700;color:#a0aec0;border:1px dashed #718096}.preview-caption{margin:10px 0 0;font-size:.82rem;color:var(--muted);text-align:center}.how-to-rules{display:flex;flex-direction:column;gap:12px;margin:16px 0 6px;padding-left:20px;color:#d6d6d6;font-size:.92rem;line-height:1.48}.how-to-rules li{margin:0}.how-to-rules strong{color:#fff;font-weight:600}.how-to-rules em{font-style:normal;color:#fff;text-decoration:underline;text-underline-offset:2px}.player-search{width:100%;margin:2px 0 12px;padding:11px 12px;border:1px solid #5a5a5a;border-radius:7px;background:#292929;color:#fff}.player-search::placeholder{color:#b7b7b7}.player-list{max-height:260px;overflow-y:auto}.player-option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:11px 8px;border:0;border-bottom:1px solid #3c3c3c;background:transparent;color:#fff;text-align:left;cursor:pointer}.player-country-tag{color:var(--muted);font-size:.8rem;font-weight:400;margin-left:10px;opacity:.8}.player-option:hover{background:#303030}.player-option:last-child{border-bottom:0}.empty-search{margin:16px 0;color:var(--muted)}.stats-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:4px 0 28px;text-align:center}.stats-summary>div{display:flex;flex-direction:column;gap:3px}.summary-value{color:#fff;font-size:1.7rem;font-weight:500}.summary-label{color:var(--muted);font-size:.82rem}.distribution-heading{margin:0 0 10px;color:#fff;font-size:1.05rem;font-weight:500}.distribution-chart{display:flex;height:174px;align-items:stretch;gap:5px;padding-top:8px;border-bottom:1px solid var(--line)}.distribution-column{display:flex;min-width:0;flex:1;flex-direction:column;align-items:center}.distribution-count{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:4px;color:#fff;font-size:.78rem;font-weight:500;line-height:1;white-space:nowrap}.distribution-bar-space{display:flex;width:100%;height:120px;align-items:flex-end;justify-content:center}.distribution-bar{position:relative;width:min(70%,28px);border-radius:4px 4px 0 0;background:var(--accent)}.distribution-label{padding-top:6px;color:var(--muted);font-size:.8rem}.chart-empty{margin:13px 0 0;color:var(--muted);font-size:.9rem}.best-streak{text-align:center;margin:16px 0 0;color:var(--muted)}.best-streak strong{color:#fff;font-weight:500}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.mode-selector{display:inline-flex;align-items:center;background:#1e222b;border:1px solid var(--line);border-radius:9999px;padding:4px;gap:4px;margin:0 auto 24px}.mode-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 20px;border:0;border-radius:9999px;background:transparent;color:var(--muted);font-size:.92rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-tab:hover{color:#fff}.mode-tab--active{background:#2697c5;color:#fff;font-weight:600}.mode-tab svg{display:block}.stats-footer-action{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.countdown-block{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.countdown-label{color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.06em}.countdown-timer{color:#fff;font-size:1.45rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em}.share-button{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border:0;border-radius:8px;background:#2697c5;color:#fff;font-size:.98rem;font-weight:600;cursor:pointer;transition:background .15s ease}.share-button:hover{background:#1e7ba2}.stats-reopen-button{min-width:190px;padding:12px 28px;border:0;border-radius:8px;background:#2697c5;color:#fff;font-size:1.02rem;font-weight:600;cursor:pointer;transition:background .15s ease}.stats-reopen-button:hover{background:#1e7ba2}@media(max-width:640px){.header-inner{min-height:62px;padding:10px 16px}.brand-name{font-size:1.35rem}.header-actions{gap:6px}.icon-button{width:40px;height:40px}.main-content{padding:26px 14px 28px}.puzzle-heading{margin-bottom:22px}.puzzle-area{flex-direction:column;gap:10px}.puzzle-grid{gap:2px}.grid-corner-spacer,.grid-row-labels{flex:0 0 76px}.tournament-badge--column .tournament-court,.tournament-badge--row .tournament-court{width:55px}.grid-cell{padding:5px}.attempts-counter{display:flex;align-items:baseline;justify-content:center;gap:7px}.attempts-label{margin:0}.attempts-value{font-size:1.55rem}.preview-grid-wrapper{width:270px}.preview-corner-spacer,.preview-row-labels{flex:0 0 58px}.preview-column-label .tournament-court,.preview-row-label .tournament-court{width:44px}.preview-cell{font-size:.64rem}.modal-panel{padding:18px 17px 21px}}.footer-privacy{background:none;border:none;padding:0;font:inherit;font-size:.75rem;color:var(--muted, #888);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.footer-privacy:hover{color:#fff}.footer-contact{font-size:.76rem;color:var(--muted, #888);margin:6px 0 0;text-align:center;line-height:1.45;max-width:480px}.footer-contact-link{color:#2697c5;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease}.footer-contact-link:hover{color:#fff}.privacy-body{font-size:.88rem;line-height:1.6;color:#ccc;max-height:60vh;overflow-y:auto;padding-right:4px}.privacy-updated{font-size:.75rem;color:#888;margin-bottom:1.2rem}.privacy-body h3{font-size:.95rem;color:#fff;margin:1.1rem 0 .3rem}.privacy-body p{margin:0 0 .5rem}.privacy-body code{background:#1e1e1e;border-radius:3px;padding:1px 5px;font-size:.82rem;color:#aef}.privacy-page{min-height:100vh;background:var(--bg, #1a1a1a);color:#ccc;display:flex;flex-direction:column}.privacy-page-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid #2a2a2a}.privacy-back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:#2697c5;font-size:.9rem;font-weight:500;cursor:pointer;padding:4px 0;transition:color .15s}.privacy-back-btn:hover{color:#fff}.privacy-page-brand{font-size:1rem;font-weight:600;color:#fff;letter-spacing:.01em;margin-left:auto}.privacy-page-main{max-width:640px;width:100%;margin:0 auto;padding:2.5rem 1.5rem 4rem}.privacy-page-title{font-size:1.75rem;font-weight:700;color:#fff;margin:0 0 .3rem}.privacy-page-updated{font-size:.78rem;color:#666;margin:0 0 2rem}.privacy-page-main section{margin-bottom:1.6rem}.privacy-page-main h2{font-size:1rem;font-weight:600;color:#fff;margin:0 0 .4rem}.privacy-page-main p{font-size:.9rem;line-height:1.65;margin:0;color:#bbb}.privacy-page-main strong{color:#fff}.privacy-page-main code{background:#252525;border-radius:3px;padding:1px 6px;font-size:.82rem;color:#aef}.privacy-page-socials{display:flex;gap:1rem;margin-top:.75rem}.lang-switcher{display:inline-flex;align-items:center;gap:3px;background:#191919;border:1px solid #333;border-radius:8px;padding:3px 4px}.lang-flag-btn{display:inline-flex;align-items:center;justify-content:center;padding:3px 5px;border:0;border-radius:5px;background:transparent;cursor:pointer;opacity:.42;transition:opacity .15s ease,background-color .15s ease,transform .1s ease}.lang-flag-btn:hover{opacity:.85}.lang-flag-btn:active{transform:scale(.95)}.lang-flag-btn--active{opacity:1;background:#2d2d2d;box-shadow:0 1px 2px #0006}.lang-flag-img{width:20px;height:14px;object-fit:cover;border-radius:2px;display:block}.grid-wrapper--game-over .grid-cell{cursor:pointer}.grid-wrapper--game-over .grid-cell:hover{filter:none;box-shadow:inset 0 0 0 2px #fff}.grid-wrapper--game-over .grid-cell--revealed:hover{background:var(--revealed)}.grid-wrapper--game-over .grid-cell--solved:hover{background:var(--success)}.cell-answers-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid #2d2d2d;margin-bottom:14px}.cell-answers-tournaments{font-size:.95rem;color:#fff}.cell-answers-count{font-size:.8rem;color:#2697c5;font-weight:500}.cell-user-pick{display:flex;align-items:center;gap:8px;padding:8px 0 12px;font-size:.88rem;border-bottom:1px solid #262626;margin-bottom:10px}.cell-user-pick-label{color:#888;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.cell-user-pick-name{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:600}.cell-check-icon{color:#3bb273}.cell-answers-list{display:flex;flex-direction:column;max-height:280px;overflow-y:auto;padding-right:4px}.cell-answer-item{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #232323;font-size:.9rem}.cell-answer-item--picked{color:#fff}.cell-answer-player{display:flex;align-items:center;gap:8px}.cell-answer-name{font-weight:500;color:#ddd}.cell-answer-item--picked .cell-answer-name{color:#fff;font-weight:600}.cell-answer-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;color:#3bb273;background:#172a1e;padding:2px 7px;border-radius:4px}.collection-page{min-height:100vh;background:var(--bg, #1a1a1a);color:#ccc;display:flex;flex-direction:column}.collection-page-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid #2a2a2a}.collection-back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:#2697c5;font-size:.9rem;font-weight:500;cursor:pointer;padding:4px 0;transition:color .15s}.collection-back-btn:hover{color:#fff}.collection-header-right{margin-left:auto;display:flex;align-items:center;gap:1rem}.collection-brand{font-size:1rem;font-weight:600;color:#fff}.collection-main{max-width:660px;width:100%;margin:0 auto;padding:2rem 1.5rem 4rem}.collection-hero{margin-bottom:1.8rem}.collection-title-row{display:flex;align-items:center;gap:10px;margin-bottom:.35rem}.collection-title-icon{color:#2697c5}.collection-title{font-size:1.6rem;font-weight:700;color:#fff;margin:0}.collection-subtitle{font-size:.88rem;color:#888;margin:0 0 1.2rem;line-height:1.5}.collection-progress-wrap{display:flex;flex-direction:column;gap:6px}.collection-progress-meta{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:#aaa}.collection-progress-count strong{color:#fff;font-size:.98rem}.collection-progress-percent{font-weight:600;color:#2697c5}.collection-progress-bar-bg{width:100%;height:6px;background:#282828;border-radius:4px;overflow:hidden}.collection-progress-bar-fill{height:100%;background:#2697c5;border-radius:4px;transition:width .3s ease}.collection-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:1.5rem}.collection-filters{display:flex;gap:6px;flex-wrap:wrap}.collection-tab{background:transparent;border:1px solid #333;color:#999;font-size:.8rem;font-weight:500;padding:5px 12px;border-radius:6px;cursor:pointer;transition:all .15s ease}.collection-tab:hover{color:#fff;border-color:#555}.collection-tab--active{background:#2697c5;border-color:#2697c5;color:#fff;font-weight:600}.collection-search-input{width:100%;padding:9px 12px;background:#202020;border:1px solid #333;border-radius:6px;color:#fff;font-size:.88rem;outline:none;transition:border-color .15s ease}.collection-search-input:focus{border-color:#2697c5}.collection-list{display:flex;flex-direction:column;border-top:1px solid #282828}.collection-item{border-bottom:1px solid #242424;padding:10px 0;transition:background .15s ease}.collection-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.collection-item-left{display:flex;align-items:center;gap:9px;min-width:0}.collection-status-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;flex-shrink:0}.icon-unlocked{color:#3bb273}.icon-locked{color:#555}.collection-player-name{font-size:.92rem;font-weight:500;color:#eee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-item--locked .collection-player-name{color:#666}.collection-item-right{flex-shrink:0}.collection-view-btn{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:#2697c5;font-weight:500;transition:color .15s ease}.collection-item-header:hover .collection-view-btn{color:#fff}.collection-locked-label{font-size:.75rem;color:#555}.collection-player-tournaments{margin-top:8px;padding-left:29px;display:flex;flex-direction:column;gap:6px}.collection-tournaments-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#777}.collection-tournaments-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:5px}.collection-tournament-pill{font-size:.74rem;color:#bbb;background:#252525;padding:2px 7px;border-radius:4px}.collection-empty{padding:2rem 0;text-align:center;color:#777;font-size:.9rem}.collection-load-more{padding-top:1.5rem;display:flex;justify-content:center}.collection-more-btn{background:#242424;border:1px solid #333;color:#ddd;font-size:.84rem;padding:8px 18px;border-radius:6px;cursor:pointer;transition:all .15s ease}.collection-more-btn:hover{background:#2c2c2c;border-color:#444;color:#fff}
